作業環境是一台拼湊而成的老機器,奔四2.8G的CPU,1.5G記憶體,40G希捷IDE硬碟,大致是04年的硬體水平。這次裝LNMP別的不為,只裝WordPress。
作業系統是我自己安裝的Ubuntu 10.10。案頭版的Ubuntu拿來做伺服器沒什麼問題,記得把語言環境設定成英文就好。
我之前用LNMP一鍵安裝包安裝過一次LNMP,結果沒成功又找不到錯誤,於是全部purge了從頭開始。這次選擇所有的軟體用apt安裝然後手動設定,結果一帆風順。
安裝nginx:
1.sudo apt-get install nginx
瞬間裝好。nginx的大致結構為
所有的設定檔在/etc/nginx/
虛擬機器主機在/etc/nginx/sites-available/,這裡我用“default”
在/etc/nginx/sites-enabled/下需要建立一個到/etc/nginx/sites-available/虛擬機器主機設定檔的連結,安裝的時候default的連結已經做好。
日誌在/var/log/nginx/
啟動指令碼已經在/etc/init.d/創立好,並且在/etc/rc2.d/也有了。
現在可以啟動nginx試試看
1.sudo /etc/init.d/nginx start
這裡不大可能有問題的。如果提示無法bind,可能是系統有其他進程(apache之類的)佔了80連接埠,停之。
安裝php:
1.sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl
這個是從別人那裡copy過來的。我用不上這麼多,不過多裝無所謂,少裝倒有可能出問題安裝spawn-fcgi:
1.sudo apt-get install spawn-fcgi
原先我是安裝php-fpm的,結果那個東西搞死就是設定不好,於是廢掉,改用spawn-fcgi. 這玩意原先是lighttpd的組件,後來獨立了,完全可以單獨安裝,並且配合nginx使用。
配置nginx和spawn-fcgi:修改/etc/nginx/fastcgi_params,加入下面這一行:
1.sudo apt-get install spawn-fcgi
在/etc/php5/cgi/php.ini中找到cgi.fix_pathinfo=1這一行,把前面的注釋去掉。這樣php-cgi才能正常使用SCRIPT_FILENAME這個變數
開啟/etc/nginx/sites-available/default檔案,稍做修改。我把我的貼在這裡:
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
root /var/www/nginx-default;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/nginx-default;
index index.php index.html index.html index.htm;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex on;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/nginx-default;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
#proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;#####注意這裡原先少一個空格!!!
}
# deny access to .htaccess files, if Apaches document root
# concurs with nginxs one
#
#location ~ /.ht {
#deny all;
#}
}啟動spawn-fcgi:
1.sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
應該不會出現不能bind的情況。如果真的出現了,可以找進程殺掉或者換連接埠。
我們可以將這行代碼加入到/etc/rc.local檔案底部,這樣系統啟動的時候也可以同時啟動PHP的FastCGI進程。
重新載入nginx:
1.sudo /etc/init.d/nginx reload
修改nginx設定檔之後一定要reload才會生效。當然也可以restart。此處如果提示設定檔不能通過,就去那個檔案仔細查看找錯誤。我遇到過一次,然後發現default檔案中少一個空格。
安裝PHP和MySQL:
1.sudo apt-get install mysql-server mysql-client
中間會提示輸入Root使用者密碼,不要弄太簡單。
啟動MySQ
1.Lsudo /etc/init.d/mysql start
我不會sql,就沒有用mysql的命令列進行設定,而是使用了phpmyadmin在瀏覽器版面設定。
安裝WordPress:
這是最輕鬆愉快的,五分鐘之內搞定。需要做的是建立一個使用者和一個資料庫,然後直接存取wordpress檔案夾,跟著它說的走