本機 PHP 安裝
./configure --prefix=/usr/local/php5 --with-gd --enable-gd-native-ttf
--enable-gd-jis-conv --with-mysql --with-pdo-mysql
--with-oci8=instantclient,/usr/lib/oracle/12.1/client64/lib --enable-soap
--enable-sockets --enable-zip --enable-xml --with-curl --enable-mbregex
--enable-sysvsem --enable-mbstring --enable-fpm
系統環境代碼
CentOS 5.5
Nginx 1.0.5
Php 5.5.8
1.先安裝Nginx
Nginx代碼
#tar -zxvf nginx-1.0.5.tar.gz
#cd nginx-1.0.5
#./configure
#make
#make install
2.安裝php,采用fastcgi的安裝方式,順道查了下fastcgi的優勢和劣勢,供參考(摘抄自網絡)
【注:我已經安裝好了Mysql,因為沒有太多特别的地方,是以就不做說明】
優勢
PHP腳本運作速度更快(3到30倍)。PHP解釋程式被載入記憶體而不用每次需要時從存儲器讀取,極大的提升了依靠腳本運作的站點的性能。
需要使用更少的系統資源。由于伺服器不用每次需要時都載入PHP解釋程式,你可以将站點的傳輸速度提升很高而不必增加cpu負擔。
不需要對現有的代碼作任何改變。現有的一切都适用于PHP的FastCGI
潛在問題
對所有的子目錄(/home/USERNAME/public_html/php.ini)你隻有一個可用的php.ini檔案。
這是優化網站代碼所必需的。如果你需要多個php.ini檔案以适應不同的腳本需要,你可以在任何子目錄禁用PHP的快速CGI,而其餘的地方則繼續有
效。如果你需要這樣做請聯系support。
你對PHP環境做的任何更新(如php.ini檔案的改變)都有幾分鐘的延遲。這是因為為了更快的速度
你的php.ini檔案已經被載入記憶體,而不是每次需要時再從存儲器重新讀取。
我在安裝的時候并沒有去考慮php.ini的問題,隻要考慮好php-fpm.conf就可以了
php的安裝的确是稍微不太一樣,簡單的說,就是作為一個單獨的服務啟動了
Linux-php代碼
#tar -zxvf php-5.3.8.tar.gz
#cd php-5.3.8
// 編譯的時候一定要加入參數--enable-fpm
#./configure --prefix=/usr/local/php --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-mysql=/usr/local/mysql/ --with-pdo-mysql=/usr/local/mysql --enable-soap --enable-sockets --enable-zip --enable-xml --with-curl --enable-mbregex --enable-sysvsem --enable-mbstring --with-mcrypt --enable-fpm
3.配置php和nginx
1.使用php-fpm啟動php
Php-fpm代碼
#cd /usr/local/php/etc/
#cp php-fpm.conf.default php-fpm.conf
#vi php-fpm.conf
// 找到如下幾行,確定如下幾行前沒有";"
pid = run/php-fpm.pid
error_log = log/php-fpm.log
listen = 127.0.0.1:9000
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
php5.5.8版本提供了php-fpm的管理工具,可以很友善的start,stop,restart
// 隻是我個人習慣把php相關指令丢在這
#cd /usr/local/php/sbin/
// 在安裝檔案中複制該檔案
#cp /downloads/php-5.3.8/sapi/fpm/init.d.php-fpm ./
#chmod 755 init.d.php-fpm
// start | stop | restart
#./init.d.php-fpm start
2.nginx的配置
Linux-nginx代碼
#vi /usr/local/nginx/conf/nginx.conf
// 去掉之前的"#"
// SCRIPT_FILENAME如果填錯,則顯示空白頁面
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#vi /usr/local/nginx/conf/fastcgi_params
// 注釋掉該行,暫時還不知道為啥
#fastcgi_param REDIRECT_STATUS 200;
啟動nginx
#cd /usr/local/nginx/sbin/
// 測試配置檔案是否正确
#./nginx -t
// 啟動
#./nginx
// 重新載入
#./nginx -s reload
// 重新開機
#./nginx -s reopen