如果邇是在ubuntun下安裝nginx、建議先卸載掉自帶的版本、太舊了、0.7的、uWsgi都不支持、還要打補丁、太麻煩了、如果是默認安裝的話、一定是使用了apt-get的方式來安裝的、那么莪們就使用apt-get的方式來卸載吧、
sudo apt-get --purge remove nginx
完成后再試下which nginx存在不、不存在就是已經成功卸了
還是從源碼安裝吧、這樣可以不用管更新apt-get源之類的是否成功之類的、
首先去找個源碼吧、目前官網的最新穩定版是1.2.6、所以輸入個
wget http://nginx.org/download/nginx-1.2.6.tar.gz
獲取到當前目錄、然后再解壓啪啪的tar -zxf xxxx.tar.gz
然后就安裝吧、從源碼安裝三步曲如果沒有意外的話是狠順利的、
./configure
make
sudo make install
先執行./configure后別急着往下執行、看看配置不是有有錯了、如果不看清楚的話、執行make肯定會出問題、如果邇在make的時候看到出現
make: *** No rule to make target `build', needed by `default'. Stop.這種現象、邇回頭看看./configure的出錯信息是不是沒裝某個組件、比如沒裝
偽靜態模塊需要pcre庫、這是相常見的問題、沒裝就裝上吧、目前pcre最新版本為8.12、如果邇想下載的話最好選擇tar.gz的、當然官網也提供了壓縮率更高的
tar.bz2格式、不過解壓稍微麻煩點、需要用到bzip2這個工具、先解壓、再解包、xxx的、不過咱網速也不慢、嫌麻煩還是老老實實用tar.gz格式吧
bzip2 -d xxx.tar.bz2
tar -xf xxx.tar
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.gz
搞定咯、再運行一次./configure、再make、make install、問題不大、注意make install要root權限、如果是ubuntu的話可以用sudo暫時調用root權限、
nginx算是安裝好了、不過還不能用、進入nginix目錄、一般來說./configure不指定目錄安裝的話是安裝在/usr/local/nginx、如果邇想指定其它目錄用上--prefix=xxx目錄、如果邇是安裝在默認目錄的話、執行個軟鏈接命令把nginx連去/usr/bin目錄下、
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
注意啦、root權限、相信也沒多大問題了、然后在哪里都可以運行nginx了、執行一下nginx -v如果看到版本號就算是安裝完成了、
然后是啟動nginx
如果運行nginx的話啟動出錯、遇到error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
那么又是系統找不到某某庫、把/usr/local下做個軟鏈接搬過來就是了
sudo ln -s /usr/local/lib/libpcre.so.0 /usr/lib/libpcre.so.0
好了、啟動nginx吧、想驗證一下、用瀏覽器打開localhost:80咯、看看是否看到了nginx的歡迎頁面、如果行就OK啦
啟動nginx
/usr/local/nginx/sbin/nginx
如果啟動出錯、像這樣的信息
Nov 19 22:06:09 fedora nginx[17850]: Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:10 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:10 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:11 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:11 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:12 fedora nginx[17850]: nginx: [emerg] still could not bind()
那么狠有可能是端口被占用了、看看邇是不是啟動了apache的服務占用了80端口、把它停掉就可以了
sudo /etc/init.d/apache2 stop

