首選是安裝nginx,在./configure出錯的情況下,查看錯誤的報告,如果是缺少一些必要的庫,安裝這些庫,可能的有ssl pcre(這個庫我是使用源碼安裝的,線上安裝沒有成功,提示看不到這個庫)等 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 這個是這個庫的串連。下載源碼然後安裝即可!
然後make
make install
如果使用的是源碼安裝,安裝後的目錄在/usr/local/nginx.其中有所有的東西,源碼安裝的啟動方式:sbin/nginx,這個程式在/usr/local/nginx
如果是線上安裝,安裝後的預設目錄在/etc/init.d/nginx start
如果在安裝過程在瀏覽器中尋找嘗試!!
在ubuntu10.04上面安裝nginx,安裝完成之後嘗試啟動nginx,使用命令:
sudo /etc/init.d/nginxstart |
結果提示錯誤:
hankcs@ubuntu:~$ sudo /etc/init.d/nginxstart[sudo] passwordfor hankcs: * Starting nginx nginx nginx: [emerg] bind() to [::]:80 failed (98: Address alreadyin use)nginx: [emerg] bind() to [::]:80 failed (98: Address alreadyin use)nginx: [emerg] bind() to [::]:80 failed (98: Address alreadyin use)nginx: [emerg] bind() to [::]:80 failed (98: Address alreadyin use)nginx: [emerg] bind() to [::]:80 failed (98: Address alreadyin use)nginx: [emerg] still could not bind() |
我看了一下連接埠佔用情況,並且嘗試殺了進程:
hankcs@ubuntu:~$ netstat -ntpl(並非所有進程都能被檢測到,所有非本使用者的進程資訊將不會顯示,如果想看到所有資訊,則必須切換到 root 使用者)啟用Internet串連 (僅伺服器)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Programnametcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - hankcs@ubuntu:~$ killall -9 nginxnginx:沒有發現操作 |
遇到這種問題我先用中文搜尋了一下答案,發現大家都在裝逼地說要殺nginx重複的進程。我試了下發現是扯淡,於是看了Google搜到的第一個英文頁面,老外說是nginx先監聽了ipv4的80連接埠之後又監聽了ipv6的80連接埠,於是就重複佔用了。更加坑人的是你去看了連接埠佔用它又把80連接埠釋放了,是不是很囧。
解決方案是編輯nginx的設定檔
hankcs@ubuntu:~$ sudo gedit /etc/nginx/sites-available/default |
修改這一段:
listen 80;listen [::]:80 default_server; |
為
listen 80;listen [::]:80 ipv6only=on default_server; |
然後啟動nginx,完美解決!
還有一種可能的情況就是,如果你是在虛擬機器中安裝了nginx,那麼在虛擬機器中的firefox可能就是不能串連,但是在宿主機中的瀏覽器可以串連(前提是宿主機和虛擬機器是可以相通的!!!)