隨筆-179  評論-666  文章-29  trackbacks-0
           
               摘要: 關于IP Tables在初始化設置系統后,為了讓系統更安全,Ubuntu把Iptabls作為發行版的默認防火墻。起初,盡管Ubuntu防火墻已經被配置了,但是它設置為通過一個虛擬主機允許所有的進入與流出流量。要打開服務器上某些更強的保護功能,我們需要在IP Table山增加一些基礎的規則。IP Table 規則來自于一系列可以組合起來創建各自的特定的處理方法的選項。每一個通過防火墻的包被所有的規則...  閱讀全文
          posted @ 2015-10-31 15:51 Alpha 閱讀(2577) | 評論 (0)編輯 收藏
          我有一個阿里云推薦碼,分享給大家免費使用,購買云服務器ECS或云數據庫RDS可享受原價優惠,拿走不謝。
          購買可以用阿里云主機推薦碼

          點擊領取優惠券:
          https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&utm_source=dmb0rzcj

          馬上可享受優惠,購買阿里云主機馬上給你省錢!



          我有幾張阿里云幸運券分享給你,用券購買或者升級阿里云相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。
          點擊領取幸運券https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=dmb0rzcj&utm_source=dmb0rzcj


          posted @ 2015-10-28 14:25 Alpha 閱讀(715) | 評論 (0)編輯 收藏

          安裝 MySQL 5 數據庫

          安裝 MySQL 運行命令:

          sudo apt-get install mysql-server mysql-client

          將mysql的datadir從默認的/var/lib/mysql 移到/app/data/mysql下,操作如下:
          1.修改了/etc/mysql/my.cnf,改為:datadir = /app/data/mysql
          2.cp -a /var/lib/mysql /app/data/
          3./etc/init.d/mysql start


          如果出現系統報錯,無法啟動mysql,日志顯示為:Can't find file: "./mysql/plugin.frm'(errno:13)
          [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

          修改系統的chroot,需要修改/etc/apparmor.d下的相關文件,這里以mysql為例,需要修改:usr.sbin.mysqld和abstractions/mysql兩個文件。

          1.修改usr.sbin.mysqld里面的兩行內容:/var/lib/mysql/ r,改為:/app/data/mysql/ r,/var/lib/mysql/** rwk,改為:/app/data/mysql/** rwk,
          2.修改abstractions/mysql中一行:/var/lib/mysql/mysql.sock rw,改為:/app/data/mysql/mysql.sock rw,
          3.重新加載apparmor服務:/etc/init.d/apparmor reload

          安裝 Nginx

          在安裝 Nginx 之前,如果你已經安裝 Apache2 先刪除在安裝 nginx:

          service apache2 stop
          update-rc.d -f apache2 remove
          sudo apt-get remove apache2

          sudo apt-get install nginx

          安裝 PHP5

          我們必須通過 PHP-FPM 才能讓PHP5正常工作,安裝命令:

          sudo apt-get install php5-fpm

          php-fpm是一個守護進程。

          安裝mysql和GD擴展

          sudo apt-get install php5-gd libapache2-mod-auth-mysql php5-mysql openssl libssl-dev

          sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

          安裝 JDK8

          可以通過訪問Oracle官網下載,或者直接通過命令行下載。

          lxh@ubuntu:~$ wget -c http://download.oracle.com/otn-pub/java/jdk/8u11-b12/jdk-8u25-linux-x64.tar.gz

          解壓安裝

          lxh@ubuntu:~$ mkdir -p /usr/lib/jvm 
          lxh@ubuntu:~$ sudo mv jdk-8u25-linux-x64.tar.gz /usr/lib/jvm
          lxh@ubuntu:~$ cd /usr/lib/jvm
          lxh@ubuntu:~$ sudo tar xzvf jdk-8u25-linux-x64.tar.gz

          在系統中添加環境變量,主要是PATH、CLASSPATH和JAVA_HOME。

          lxh@ubuntu:~$ sudo vim ~/.profile

          在文件最后加入

          export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
          export JRE_HOME=/usr/lib/jvm/jdk1.8.0_25/jre
          export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
          export PATH=$JAVA_HOME/bin:$PATH

          保存退出,并通過命令使腳本生效:

          lxh@ubuntu:~$ $source ~/.profile

          配置默認JDK版本

          在有的系統中會預裝OpenJDK,系統默認使用的是這個,而不是剛才裝的。所以這一步是通知系統使用Oracle的JDK,非OpenJDK。

          sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_25/bin/java 300
          sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_25/bin/javac 300
          sudo update-alternatives --config java

          因為我是在虛擬機中安裝的Ubuntu 14.04,默認不安裝OpenJDK,所以沒有需要選擇的JDK版本。如果是在物理機上安裝的Ubuntu版本,會出現幾個候選項,可用于替換 java (提供 /usr/bin/java)。

          ====================================

          編譯安裝nginx 
          1. 下載最新版nginx
          2.解壓
          3. 安裝
          $ ./configure  #檢查編譯前置條件
          $ make  #編譯
          $ sudo make install  #使用sudo權限進行安裝
          安裝后路徑在 /usr/local/
          啟動nginx 
          /usr/local/nginx/sbin/nginx
          1)使用在 /etc/init.d/ 目錄下創建名為 nginx 文件,注意沒有后綴名,將以下內容復制到該文件中(感謝提供腳本的兄弟)。
           1 #! /bin/sh
           2 #用來將Nginx注冊為系統服務的腳本
           3 #Author CplusHua
           4 #http://www.219.me
           5 #chkconfig: - 85 15
           6 set -e
           7 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
           8 DESC="Nginx Daemon"
           9 NAME=nginx
          10 DAEMON=/usr/local/nginx/sbin/$NAME
          11 SCRIPTNAME=/etc/init.d/$NAME
          12 #守護進程不存在就退出
          13 test -x $DAEMON ||exit 0
          14 d_start(){
          15   $DAEMON ||echo -n "aready running"
          16 }
          17 d_stop(){
          18   $DAEMON -s quit || echo -n "not running"
          19 }
          20 d_reload(){
          21   $DAEMON -s reload || echo -n "could not reload"
          22 }
          23 case "$1" in
          24   start)
          25     echo -n "Starting $DESC: $NAME"
          26     d_start
          27     echo "."
          28   ;;
          29   stop)
          30     echo -n "Stopping $DESC: $NAME"
          31     d_stop
          32     echo "."
          33   ;;
          34   reload)
          35     echo -n "Reloading $DESC: configurationg.."
          36     d_reload
          37     echo "reloaded."
          38   ;;
          39   restart)
          40     echo -n "Restarting $DESC: $NAME"
          41     d_stop
          42     sleep 3
          43     d_start
          44     echo "."
          45   ;;
          46   *)
          47     echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
          48     exit 3
          49   ;;
          50 esac
          51 
          52 exit 0



          2)添加權限
              $ sudo chmod +x nginx
          3)服務方式啟動 如果配置服務前已啟動,執行以下命令停止Nginx。
              $ sudo service nginx stop
          4)啟動Nginx
              $ sudo service nginx start

          pastingnginx出現connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的錯誤

          處理方式是:編輯/etc/php5/fpm/pool.d/www.conf文件,

          將以下的注釋去掉:
              listen.owner = www-data
              listen.group = www-data
              listen.mode = 0660

          然后重啟php5-fpm
              $ sudo service php5-fpm restart


          Ubuntu 14.04快速搭建SVN服務器及日常使用

          SVN相關命令了解
          svn:命令行客戶端
              svnadmin:用來創建、調整或修復版本庫的工具
              svnserve:svn服務程序
              svndumpfilter:過濾svn版本庫轉儲數據流的工具
              svnsync:svn數據同步工具,實現另外存一份相同的
              svnlook:用來查看辦本科中不同的修訂版和事務

          直接安裝
              # apt-get install subversion
          創建版本庫
              # sudo mkdir /app/svn
              # sudo svnadmin create /app/svn/prj

          配置版本庫
            # sudo vi svnserve.conf  #將以下參數去掉注釋 
            [general] 
            anon-access = none    #匿名訪問權限,默認read,none為不允許訪問 
            auth-access = write  #認證用戶權限  
            password-db = passwd  #用戶信息存放文件,默認在版本庫/conf下面,也可以絕對路徑指定文件位置 
            authz-db = authz

            # sudo vi passwd    #格式是用戶名=密碼,采用明文密碼 
            [users] 
            xiaoming = 123 
            zhangsan = 123 
             lisi = 123

          # sudo vi authz  
            [groups]          #定義組的用戶 
            manager = xiaoming 
            core_dev = zhangsan,lisi 
            [repos:/]          #以根目錄起始的repos版本庫manager組為讀寫權限 
            @manager = rw 
            [repos:/media]    #core_dev對repos版本庫下media目錄為讀寫權限 
            @core_dev = rw

               
           啟動svn服務

            # sudo svnserve -d -r /app/svn
            # 查看是否啟動成功,可看的監聽3690端口
            # sudo netstat -antp |grep svnserve
            tcp    0      0 0.0.0.0:3690    0.0.0.0:*      LISTEN    28967/svnserve 
            # 如果想關閉服務,可使用pkill svnserve

          訪問svn
            # 訪問repos版本庫地址
            svn://192.168.1.100/prj


          備份與恢復
             svnadmin dump備份
            # 完整備份
            svnadmin dump /app/svn/prj > YYmmdd_fully_backup.svn
            # 完整壓縮備份
            svnadmin dump /app/svn/prj | gzip > YYmmdd_fully_backup.gz
            # 備份恢復
            svnadmin load /app/svn/prj < YYmmdd_fully_backup.svn
            zcat YYmmdd_fully_backup.gz | svnadmin load repos
            ### 增量備份 ###
            # 先完整備份
            svnadmin dump /app/svn/prj -r 0:100 > YYmmdd_incremental_backup.svn
            # 再增量備份
            svnadmin dump /app/svn/prj -r 101:200 --incremental > YYmmdd_incremental_backup.svn
            
          svnadmin hotcopy備份

            # 備份
            svnadmin hotcopy /app/svn/prj YYmmdd_fully_backup --clean-logs
            # 恢復
            svnadmin hotcopy YYmmdd_fully_backup /app/svn/prj


          Tomcat 內存優化

          Linux下修改JVM內存大小

          要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引號要帶上,紅色的為新添加的.

          # OS specific support. $var _must_ be set to either true or false.
          JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:PermSize=64M -XX:MaxPermSize=128m"
          cygwin=false

           


          posted @ 2015-10-07 15:28 Alpha 閱讀(1001) | 評論 (0)編輯 收藏
          我本身是 Java 工程師出身,寫代碼至今已超過 15 年,創業也超過 10 年,曾經外包過很多項目給別人,也接過很多外包的項目,現在不接了,只經營電子報發送平臺,在二年內累積超過 5000 家企業用戶使用。身處在創業圈,只要有創業朋友主動問過我的,我都會和他說如果你能不接就不要接 ( 當然我也知道,如果不是為了活下去,誰愿意接 ? ),因為這其中有太多陷阱,我分享如下給大家作個參考: 

          因為你寫代碼很快 

          通常會出來接私活的工程師大多是有些年資,也會有自己擅常的工具及 library,所以往往可以很快完成主管交代的工作,會認為客戶的需求只要能在很短的時間內完成,這個項目就賺錢了。 

          【BUT】項目完成的快慢取決于客戶的心情,只要他心情不好,就慢慢拖吧。你以為你的 Code 可以 reuse,最后你才發現真正被 reuse 的是你的肝。 

          因為你寫代碼很快,所以只要客戶比價、殺價、壓你結案時間,你就會心里想一下:嗯,只要我努力趕一下,應該沒問題。 

          【BUT】,無形中你就犧牲了你的利潤空間,只有賺到微利,你知道工程師估完成時間的準確率有多少嗎 ? 準確率有多高,賺到微利的機率就有多高。 

          因為你可以賺每年的維護費 

          接私活是這樣,只要你接了,之后的維護客戶也很難不找你維護,只要慢慢的累積,每年都會有可觀的維護費可以賺。 

          【BUT】,你知道大部份臺灣公司有個不成文規定,同一套系統的維護費預算是每年遞減的,客戶會想:系統每年調整也該穩定了吧,都穩定了你也沒作什么事為什么還要拿這么多錢 ? 接下來,你可能會想說如果客戶想加新功能第一個一定先找你,試想一下,叫你照著三年前自己寫的代碼架構來新增功能,如果沒有吐血,大概代表這三年你也沒什么長進。不接總行吧 ? 偏偏你就這么有責任感,你不接客戶也只能打掉重來請別人重新作一套,你忍心嗎 ? 所以你覺得這維護費好賺嗎? 

          因為你很能為客戶著想 

          你因為很為公司著想,常常在開發過程中發現缺了什么或是主管規劃錯了,你會主動的加班把這些缺的部份補上調好,公司對你贊譽有加,如果接私活的時候以這樣的態度來對待自己的客戶,那雙方合作的感覺一定很好。 

          【BUT】,你的客戶當然好啊,因為你主動幫他加功能把系統調的更好,都不用再花錢啊。加錢 ? 合約當初就簽好了,如何告訴客戶要加錢 ? 況且這是你自己主動要加功能的??梢圆患訂?? 可以啊,但你可以忍受你的作品明明可以更好的而不讓它更好嗎 ? 如果是當初規劃就錯了,不調整能驗收嗎 ? 

          因為你知道客戶要什么 

          因為在公司時主管常常也語無倫次,但你總是能分析出主管要的是什么,你也都能完成它,所以接私活時就算對方不懂技術,你也能完成他需要的功能。 

          【BUT】,你知道客戶要的是什么嗎 ? 不,你不知道,因為絕大部份客戶自己要什么都不知道,而且你知道客戶的上面還有老板嗎 ? 你知道客戶的老板要的是什么嗎 ? 不,你不會知道,因為連他老板自己都不知道,這是最可怕的嗎 ? 不,還有更可怕的,他們會告訴你他們知道想要的功能是什么,但你就是無法作出他們想要的。 

          因為你很能規劃 

          你是個邏輯觀念很好的人,只要主管告訴你他的需求,你可以很快畫出系統架構圖、代碼架構圖甚至是資料庫架構圖,準確率非常高,所以接私活的時候只要客戶告訴你需求,你很快腦中就會出現各種架構圖雛形。 

          【BUT】,你知道規格是誰開的嗎 ? 對,是客戶開的,因為他不開你就無法報價,如果他要你開,你也怕開完后報價他不接受就等于作白工了。那你覺得客戶的邏輯會有你好嗎 ? 所以通常你要作的是先了解客戶的邏輯,然后找出矛盾的地方,然后提出更好的解決方桉,這一段來來回回就要花不少時間了,喔對,這一段通常是收不到錢的,客戶會覺得你要接我的項目,你本來就要先來了解我的需求。 

          因為你有團隊 

          因為你在業界有一定的人脈了,自己會寫代碼,再找個業務高手、美編高手,這樣最小單位就好,大家可以分工,這樣接私活的問題就變少、進行更順利。 

          【BUT】,因為你有三個人,所以你只能接可以養活 >= 3 個人的項目,這種項目通常會稍大一點,因為以上所述種種原因會造成結案很慢,如果不結案人卡在這個項目拿不到錢,新的項目接不了,怎么辦 ? 對,加人,所以你的團隊變成了 4 個人,接下來你只能接可以養活 >= 4 個人的項目,這個時候如果來了個大項目呢 ? 對,你會陷入無限迴圈,直到你再也接不到更大的項目。 

          因為你想用客戶的項目來練兵 

          正如阿甘說的:人生就像一盒巧克力,你永遠不知道下一個會是什么口味。所以你永遠不知道下一個項目在那里,但當你開始有了團隊,每個月都要付薪水時,這時來一個不大不小的項目,反正也不知道下一個項目何時進來,這個剛好可以付團隊薪水又可以拿來練兵,這也蠻好的。 

          【BUT】,接私活有個特性是你接了這個項目就會降低接下個項目的能力,因為人力及時間總是有限,如果你因為接了一個小項目造成大項目沒人力接,你說大家氣不氣 ? 不幸這個小項目的業主特別麻煩 (基于上述原因,你知道這機率還不小),那你磨練團隊的可不是他們的技術,你磨練的可是大家的身心靈啊,慢慢的就會有一股將相無能,累死三軍的聲音傳出來了 … 你為何不自己開發個小產品來練兵呢 ? 

          因為你應對客戶有一套 

          你的個性很好,以前在公司的時候都可以和廠商或客戶相處很好,可以接的接,不可以接的也會擋,如果出來接私活和客戶應對對不會有問題。 

          【BUT】,客戶百百款,你對客戶有一套,客戶對你可是有好幾套,他可以議價、殺價、壓時間、加功能、拖驗收、會計不見、老板出國 …..,最后怪你為何拖這么久再扣你一筆錢,說了一句:你們不是專業的嗎 ? 開發階段你們是朋友,驗收階段你們就變甲乙雙方。 

          因為你從來不缺客戶 

          你從來不需要自己去陌生開發,客戶都是透過朋友介紹或是客戶轉介紹來的,這比一般公司好太多了,別人想要客戶都還沒有呢。 

          【BUT】,你有沒有想過,你有上面所述種種優點,重點是你還比別人便宜,別人不找你,我都想找你了。所以你賺到錢了嗎 ? 

          因為你都有簽合約 

          為了避免以上不必要的問題,每個項目你一定都會簽合約保護雙方,凡事照合約走就沒問題了。 

          【BUT】,對方有法務你有嗎 ? 對方有錢你有嗎 ? 真正要打官司你打的起嗎 ? 你真的有把握合作過程中你完全沒錯 ? 合約里有辦法規范到所有的功能細節、操作流程 ? 合約訂了一大本,你客戶會和你簽 ? 所以,你真的能照合約走嗎 ? 

          你最近一次開心寫代碼是什么時候 

          在我和你有一樣能力的時候,我曾經說過一句話:我希望我死前的最后一個動作是按下 【Enter】,我寫代碼的動力不是賺錢 ( 當然賺錢很重要,但如果只是賺錢,我大可去作直銷、賣保險、到大公司上班 … ),精準來說不只是賺錢,我的動力來源來自于我寫出來的代碼可以讓非常多人使用,真正幫助到很多人,而且很多人都說好。( 相信我,如果你真的作到這一點,其實你也賺到錢了 ) 

          但自從我接私活之后,我最多只能幫助到我有限的客戶,說精準一點也許就只有真正使用系統的某些人,也只有這些人會說我好,其它人也只會認為那是你該作的,但只要最后驗收時他離職了、他生氣了、一切努力就沒了。所以那時我只有二個時候點是開心的,一個是收到訂金、另一個是收到尾款,中間一大段時間是痛苦的,當同時多個項目進行,其實所有時間都是痛苦的。我還記得我那時常說的一句話:收到你冷冷的支票,我的心就覺得暖暖的。 

          當然一定有人接私活接的很好,只是別人的成功很難複制,但別人的失敗可以避免,如果你能避掉我以上所說的陷阱也無法保證你能成功,因為這也只是冰山一角,我已經離開接私活的狀態很久,很多事忘了也不想去想,只是希望你在決定接私活前,仔細想一下,你真的只有接私活這個選項嗎 ? 如果可以,我會建議你應該要開發自己的產品及服務。 

          來自:電子豹博客 

          posted @ 2015-06-10 14:28 Alpha 閱讀(2238) | 評論 (0)編輯 收藏
          阿里云服務器優惠券

          fn:contains 判斷字符串是否包含另外一個字符串 <c:if test="${fn:contains(name, searchString)}">
          fn:containsIgnoreCase 判斷字符串是否包含另外一個字符串(大小寫無關) <c:if test="${fn:containsIgnoreCase(name, searchString)}">
          fn:endsWith 判斷字符串是否以另外字符串結束 <c:if test="${fn:endsWith(filename, ".txt")}">
          fn:escapeXml 把一些字符轉成XML表示,例如 <字符應該轉為< ${fn:escapeXml(param:info)}
          fn:indexOf 子字符串在母字符串中出現的位置 ${fn:indexOf(name, "-")}
          fn:join 將數組中的數據聯合成一個新字符串,并使用指定字符格開 ${fn:join(array, ";")}
          fn:length 獲取字符串的長度,或者數組的大小 ${fn:length(shoppingCart.products)}
          fn:replace 替換字符串中指定的字符 ${fn:replace(text, "-", "?")}
          fn:split 把字符串按照指定字符切分 ${fn:split(customerNames, ";")}
          fn:startsWith 判斷字符串是否以某個子串開始 <c:if test="${fn:startsWith(product.id, "100-")}">
          fn:substring 獲取子串 ${fn:substring(zip, 6, -1)}
          fn:substringAfter 獲取從某個字符所在位置開始的子串  ${fn:substringAfter(zip, "-")}
          fn:substringBefore 獲取從開始到某個字符所在位置的子串 ${fn:substringBefore(zip, "-")}
          fn:toLowerCase 轉為小寫 ${fn.toLowerCase(product.name)}
          fn:toUpperCase 轉為大寫字符 ${fn.UpperCase(product.name)}
          fn:trim 去除字符串前后的空格 ${fn.trim(name)}

          函數 
          描述
          fn:contains(string, substring)
          如果參數string中包含參數substring,返回true

          fn:containsIgnoreCase(string, substring)
          如果參數string中包含參數substring(忽略大小寫),返回true

          fn:endsWith(string, suffix)
          如果參數 string 以參數suffix結尾,返回true

          fn:escapeXml(string)
          將有特殊意義的XML (和HTML)轉換為對應的XML character entity code,并返回

          fn:indexOf(string, substring)
          返回參數substring在參數string中第一次出現的位置

          fn:join(array, separator)
          將一個給定的數組array用給定的間隔符separator串在一起,組成一個新的字符串并返回。

          fn:length(item)
          返回參數item中包含元素的數量。參數Item類型是數組、collection或者String。如果是String類型,返回值是String中的字符數。

          fn:replace(string, before, after)
          返回一個String對象。用參數after字符串替換參數string中所有出現參數before字符串的地方,并返回替換后的結果 

          fn:split(string, separator)
          返回一個數組,以參數separator 為分割符分割參數string,分割后的每一部分就是數組的一個元素

          fn:startsWith(string, prefix)
          如果參數string以參數prefix開頭,返回true

          fn:substring(string, begin, end)
          返回參數string部分字符串, 從參數begin開始到參數end位置,包括end位置的字符

          fn:substringAfter(string, substring)
          返回參數substring在參數string中后面的那一部分字符串?? 

          fn:substringBefore(string, substring)
          返回參數substring在參數string中前面的那一部分字符串

          fn:toLowerCase(string)
          將參數string所有的字符變為小寫,并將其返回

          fn:toUpperCase(string)
          將參數string所有的字符變為大寫,并將其返回

          fn:trim(string)


          在jsp中 使用EL表達式時,不可以使用java提供的功能,比如indexOf()等。
          <c:if test="${Boolean.valueOf(requestScope.addresult)==false}"> 

          報錯 
          The function valueOf must be used with a prefix when a default namespace is not specified

          阿里云服務器優惠券
          posted @ 2014-08-05 15:24 Alpha 閱讀(15606) | 評論 (0)編輯 收藏

                  公司發布的SEO專員招聘有一段時間了,一直沒有找到合適的人選, 一方面專門從事這塊職業的人員比較少,另一方面對這個職位有一定了解的人也比較少.那么我們所說的seo專員是什么樣的一個職位呢? 今天我們來探討一下,在網上搜索了一個相關資料,找到這么一篇文章:http://seo.aizhan.com/qa/542.html,我們看看文章里面的表述:

                  其實seo專員的主要職責就是執行完成SEO主管制定的SEO策略和優化目標任務,通常需要做大量的內容編輯、軟文發布和外鏈建設等各種體力活。現在也有很多公司在發布招聘的時候也有專門招聘SEO外鏈專員這樣的職位,有一定規模的網站也會分為SEO網站優化、SEO網站編輯、SEO外鏈專員等這樣的細分崗位,每個崗位根據SEO優化工作的側重點不同,執行完成的工作重點也是不一樣的。那么今天我們要講的SEO專員的具體工作是什么?做好這個職位需要具備什么樣的素質?
                 SEO專員的具體工作,說到底核心工作就是研究搜索引擎,完成網站內容建設,豐富網站的內容,到各大網站平臺發布定量合適的外鏈,交換友情鏈接,幫助網站獲得關鍵詞排名,并做好數據分析與跟蹤。

                 在這篇文章里講述了什么是SEO專員, SEO專員的具體工作,說到底核心工作就是研究搜索引擎,完成網站內容建設,豐富網站的內容,到各大網站平臺發布定量合適的外鏈,交換友情鏈接,幫助網站獲得關鍵詞排名,并做好數據分析與跟蹤。 但是要找到一名有耐心,有良好的溝通能力,超強的執行力,有比較強的心里承受能力,受得了寂寞的SEO專員卻是一件不容易的事情。

          發布一則房民網SEO專員招聘要求:
          任職要求:
          1、男女不限,大專以上學歷,年齡在20-35歲之間;
          2、對互聯網有濃厚的興趣,熟悉網站的運作和推廣的各種方式,能夠根據公司的需求獨立策劃網站推廣方案并執行;會熟練打字操作常用辦公軟件;
          3、有一定的分析判斷能力,能根據推廣效果提出調整建議,具有敏銳的思維和創新能力,思維開闊;
          4、工作認真、細致、敬業,有較強的溝通能力和團隊合作精神;
          5、1年以上相關工作經歷或精通網站編輯及平面設計者或有一定的文字寫作能力者優先。

          崗位職責:
          1、負責完成網站內容建設,友鏈外鏈建設,關鍵字優化,提高網站排名、搜索引擎收錄量;
          2、執行在線推廣活動,收集推廣反饋數據,不斷改進推廣效果; 
          3、及時提出網絡推廣改進建議,給出實際可行的改進方案。

          快來加入吧:)
          posted @ 2013-11-24 10:04 Alpha 閱讀(1558) | 評論 (2)編輯 收藏
                一直從事于開發與運維相關技術的研究實踐,最近在做幾個房產網分站的SEO優化技術儲備, 緣于長沙房產網的百度快照陰情不定讓人很蛋疼,于是對此進行了深入的研究,發現SEO網站優化也是一門相當有技術含量的技術活,涉及的知識點和技術面都要廣才能掌握大局,同時也要調動團隊各環節,從網站的最初版面功能策劃到頁面的視覺設計和代碼編寫,再到程序開發時的架構設計,最后做內容時的內容編排等一系列的問題都得考慮到,且都要執行到位,否則任何一個環節沒做好都有可能影響到整個SEO優化的效果.因此,今天開辟一個新版塊,專門從事SEO優化技術的研究與實踐.

                目前在拿房產網的四個分站進行實戰研究,希望能從中找到一些答案,這四個站的主關鍵詞也是相當有競爭難度,比如東莞房產網這個關鍵詞的收錄量有250多萬,但是http://dg.fmw.cn/這個域名的百度收入占有量卻只有兩位數,而比東莞房產網遲了一個多月上線的昆明房產網,這個站域名是http://km.fmw.cn/,它收錄量都上三位數了,遠遠超過了東莞房產網的收入量,這讓人更是摸不著頭腦.表現最滿意的是佛山房產網,它同樣比東莞房產網上線遲了一個多月,但是收入量等各方面指數上升很明顯.同樣的網站架構,同樣每天都有堅持在做內容,但是卻有不一樣的表現,這是一個值得研究的課題.

          SEO既Search Engine Optimization,翻譯為搜索引擎優化,是一種利用技術手段提升網站在搜索引擎之中的排名的方式,讓搜索引擎更為信任網站,通過排在搜索引擎的前頁從而獲得更多的流量。

                希望在接下來的SEO優化研究和實踐工作中能找到這一系列的答案,屆時房民網與大家一起來分享. 
          posted @ 2013-10-09 00:12 Alpha 閱讀(1435) | 評論 (0)編輯 收藏

          給大家推薦一處php主機-wopus主機,專業的wordpress主機!還可以省錢購買php主機,永久免費使用.
                 購買可以用wopus主機優惠碼:alpha, 提交訂單時手動輸入 alpha
                 或者通過>>wopus主機優惠碼<<鏈接進入直接購買就可獲得優惠,可以省錢喲. http://idc.wopus.org/?f=alpha 
                (wopus主機推介優惠碼:alpha 永久有效)!打算買php主機的朋友請看以下介紹!

          他們自己是這樣介紹他們的產品的:

          專業博客主機服務商

          WopusIDC一直致力于為廣大獨立博客用戶提供優質實惠的專業博客主機服務,現已積累有超過四年的專業博客主機服務經驗,成為眾多獨立博客們的主機首選。

          國內、國外主機任選

          從國外主機到國內主機,WopusIDC給用戶帶來多種主機選擇,打破訪問速度的瓶頸,給廣大獨立博客用戶帶來更佳的主機體驗。

          快速搭建個性化博客

          依托于Wopus平臺上發布的數量眾多的主題、插件以及文章教程,WopusIDC用戶可以簡單快速的搭建屬于自己的個性化博客。

              買php主機用 wopus主機優惠碼:alpha , 提交訂單時手動輸入 alpha ,永久免費使用,長期有效.
                 或 點擊 http://idc.wopus.org/?f=alpha  購買主機立即省錢!


          posted @ 2013-08-19 01:04 Alpha 閱讀(1838) | 評論 (1)編輯 收藏
          1.首先確認服務器出于安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。
          因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出于沒有密碼保護的
          狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息??梢圆捎脤ySQL對
          外的端口封閉,并且停止Apache以及所有的用戶進程的方法實現服務器的準安全
          狀態。最安全的狀態是到服務器的Console上面操作,并且拔掉網線。
          2.修改MySQL的登錄設置:
          # vi /etc/my.cnf
          在[mysqld]的段中加上一句:skip-grant-tables
          例如:
          [mysqld]
          datadir=/var/lib/mysql
          socket=/var/lib/mysql/mysql.sock
          skip-grant-tables
          保存并且退出vi。
          3.重新啟動mysqld
          # /etc/init.d/mysqld restart
          Stopping MySQL: [ OK ]
          Starting MySQL: [ OK ]
          4.登錄并修改MySQL的root密碼
          # /usr/bin/mysql
          Welcome to the MySQL monitor. Commands end with ; or \g.
          Your MySQL connection id is 3 to server version: 3.23.56
          Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
          mysql> USE mysql ;
          Reading table information for completion of table and column names
          You can turn off this feature to get a quicker startup with -A
          Database changed
          mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
          Query OK, 0 rows affected (0.00 sec)
          Rows matched: 2 Changed: 0 Warnings: 0
          mysql> flush privileges ;
          Query OK, 0 rows affected (0.01 sec)
          mysql> quit
          Bye
          5.將MySQL的登錄設置修改回來
          # vi /etc/my.cnf
          將剛才在[mysqld]的段中加上的skip-grant-tables刪除
          保存并且退出vi。
          6.重新啟動mysqld
          # /etc/init.d/mysqld restart
          Stopping MySQL: [ OK ]
          Starting MySQL: [ OK ]
          posted @ 2013-04-19 11:39 Alpha 閱讀(1732) | 評論 (0)編輯 收藏
          阿里云服務器優惠券

          經常使用CentOS的朋友,可能會遇到和我一樣的問題。開啟了防火墻導致80端口無法訪問,剛開始學習centos的朋友可以參考下。

          經常使用CentOS的朋友,可能會遇到和我一樣的問題。最近在Linux CentOS防火墻下安裝配置 ORACLE 
          數據庫的時候,總顯示因為網絡端口而導致的EM安裝失敗,遂打算先關閉一下CentOS防火墻。偶然看到CentOS防火墻的配置操作說明,感覺不錯。執

          行”setup”命令啟動文字模式配置實用程序,在”選擇一種工具”中選擇”防火墻配置”,然后選擇”運行工具”按鈕,出現CentOS防火墻配置界面,
          將”安全級別”設為”禁用”,然后選擇”確定”即可.

          這樣重啟計算機后,CentOS防火墻默認已經開放了80和22端口

          簡介:CentOS是Linux家族的一個分支。

          CentOS防火墻在虛擬機的CENTOS裝好APACHE不能用,郁悶,解決方法如下

          /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
          /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

          然后保存:

          /etc/rc.d/init.d/iptables save
          centos 5.3,5.4以上的版本需要用
          service iptables save
          來實現保存到配置文件。
          這樣重啟計算機后,CentOS防火墻默認已經開放了80和22端口。

          這里應該也可以不重啟計算機:

          /etc/init.d/iptables restart

          CentOS防火墻的關閉,關閉其服務即可:

          查看CentOS防火墻信息:/etc/init.d/iptables status

          關閉CentOS防火墻服務:/etc/init.d/iptables stop

          永久關閉?不知道怎么個永久法:

          chkconfig –level 35 iptables off

          上面的內容是針對老版本的centos,下面的內容是基于新版本。

          iptables -P INPUT DROP

          這樣就拒絕所有訪問 CentOS 5.3 本系統數據,除了 Chain RH-Firewall-1-INPUT (2 references) 的規則外 , 呵呵。

          用命令配置了 iptables 一定還要 service iptables save 才能保存到配置文件。

          cat /etc/sysconfig/iptables 可以查看 防火墻 iptables 配置文件內容

          # Generated by iptables-save v1.3.5 on Sat Apr 14 07:51:07 2001
          *filter
          :INPUT DROP [0:0]
          :FORWARD ACCEPT [0:0]
          :OUTPUT ACCEPT [1513:149055]
          :RH-Firewall-1-INPUT - [0:0]
          -A INPUT -j RH-Firewall-1-INPUT
          -A FORWARD -j RH-Firewall-1-INPUT
          -A RH-Firewall-1-INPUT -i lo -j ACCEPT
          -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
          -A RH-Firewall-1-INPUT -p esp -j ACCEPT
          -A RH-Firewall-1-INPUT -p ah -j ACCEPT
          -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
          -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
          -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
          -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
          -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
          -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
          COMMIT
          # Completed on Sat Apr 14 07:51:07 2001

          另外補充:
          CentOS 防火墻配置 80端口
          看了好幾個頁面內容都有錯,下面是正確方法:
          #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
          #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

          然后保存:
          #/etc/rc.d/init.d/iptables save

          再查看是否已經有了:
          [root@vcentos ~]# /etc/init.d/iptables status
          Table: filter
          Chain INPUT (policy ACCEPT)
          num target prot opt source destination
          1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80
          2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
          3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

          Chain FORWARD (policy ACCEPT)
          num target prot opt source destination
          1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

          * 設置iptables為自動啟動
          chkconfig --level 2345 iptables on

          可能因為大家使用的版本不一,所有使用方法也略有不同。

          如果需要遠程管理mysql,則使用以下指令臨時打開,用完后關閉 

          * 打開指令 
          iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT 

          * 關閉指令 
          iptables -D INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT

          nginx 80 端口訪問不了?
          添加一個本地回路
           iptables -A INPUT -i lo -j ACCEPT 
          阿里云服務器優惠券
          posted @ 2012-09-17 23:59 Alpha 閱讀(32169) | 評論 (0)編輯 收藏
          僅列出標題
          共18頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
          主站蜘蛛池模板: 松江区| 元朗区| 江安县| 武夷山市| 襄樊市| 平乡县| 田林县| 密山市| 江陵县| 尉犁县| 海南省| 吴旗县| 博野县| 克山县| 岳西县| 梅州市| 博乐市| 尼木县| 祁连县| 马尔康县| 定州市| 南溪县| 沾化县| 新巴尔虎右旗| 霍城县| 济源市| 福建省| 民丰县| 民县| 长子县| 射洪县| 南安市| 开阳县| 伊金霍洛旗| 盘山县| 博白县| 哈巴河县| 新竹市| 尚义县| 铁力市| 天门市|