LNMP配置

編譯安裝nginx

tar -zxvf nginx-1.0.9.tar.gz -C /usr/local/src

./configure --prefix=/usr/local/nginx109 --with-http_stub_status_module --with-http_ssl_module  --user=nginx --group=nginx

make && make install

/usr/local/nginx/sbin/nginx start

netstat -anplt | grep :80

elinks 127.0.0.1


編譯安裝mysql

tar –xzvf mysql-mysql-5.1.34.tar.gz –C /usr/local/src

如果不存在mysql 用戶,則建立之

./configure --prefix=/usr/local/mysql

make && make install

rm -rf /etc/my.cnf

/usr/local/mysql/bin/mysql_install_db

chown  -R  mysql:mysql /usr/local/mysql/

./mysqld_safe --user=mysql &啓動mysql服務器


/usr/local/mysql/bin/mysql 連接測試


編譯安裝php

tar -jxvf php-5.2.9.tar.bz2 -C /usr/local/src

cp php-5.2.8-fpm-0.5.10.diff.gz /usr/local/src

cd /usr/local/src

gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.9/ -p1

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --enable-fastcgi --enable-fpm

make && make install

cp php.ini-dist /usr/local/php/php.ini


vim /usr/local/php/etc/php-fpm.conf

           Unix user of processes

           <value name="user">nobody</value>


          Unix group of processes

          <value name="group">nobody</value>


取消註釋.標籤user和group用於設置運行FastCGI進程的用戶和用戶組。需要注意的是,這裏指定的用戶和用戶組要和Nginx配置文件中指定的用戶和用戶組一致。



其他選項的解釋

標籤listen_address是配置fastcgi進程監聽的IP地址以及端口,默認是127.0.0.1:9000。

<value name="listen_address">127.0.0.1:9000</value>


標籤display_errors用來設置是否顯示PHP錯誤信息,默認是0,不顯示錯誤信息,設置爲1可以顯示PHP錯誤信息。

<value name="display_errors">0</value>


標籤max_children用於設置FastCGI的進程數。根據官方建議,小於2GB內存的服務器,可以只開啓64個進程,4GB以上內存的服務器可以開啓200個進程。

<value name="max_children">5</value>


標籤request_terminate_timeout用於設置FastCGI執行腳本的時間。默認是0s,也就是無限執行下去,可以根據情況對其進行修改。

<value name="request_terminate_timeout">0s</value>


標籤rlimit_files用於設置PHP-FPM對打開文件描述符的限制,默認值爲1024。這個標籤的值必須和Linux內核打開文件數關聯起來,例如要將此值設置爲65535,就必須在Linux命令行執行'ulimit -HSn 65536'。

<value name="rlimit_files">1024</value>


標籤max_requests指明瞭每個children最多處理多少個請求後便會被關閉,默認的設置是500。

<value name="max_requests">500</value>


標籤allowed_clients用於設置允許訪問FastCGI進程解析器的IP地址。如果不在這裏指定IP地址,Nginx轉發過來的PHP解析請求將無法被接受。

<value name="allowed_clients">127.0.0.1</value>




管理FastCGI進程

在配置完php-fpm後,就可以啓動FastCGI進程了。啓動fastcgi進程有兩種方式:

/usr/local/php/bin/php-cgi --fpm  

或者  

/usr/local/php/sbin/php-fpm  start  

建議採用第二種方式啓動FastCGI進程。

/usr/local/php/sbin/php-fpm還有其他參數,具體爲start|stop|quit|restart|reload|logrotate。

每個啓動參數的含義如下:

? start,啓動PHP的FastCGI進程。  

? stop,強制終止PHP的FastCGI進程。  

? quit,平滑終止PHP的FastCGI進程。  

? restart, 重啓PHP的FastCGI進程。  

? reload, 重新加載PHP的php.ini。  

? logrotate, 重新啓用log文件。  

reload是個很重要的參數,它可以在PHP的FastCGI進程不中斷的情況下重新加載改動過的php.ini,因此通過php-fpm可以平滑變更FastCGI模式下的PHP設置。



在FastCGI進程啓動後,其監聽的IP地址和端口也隨即啓動,可以通過ps和netstat查看相關信息。


配置Nginx來支持PHP

Nginx的安裝特別簡單,前面已經對此進行了詳細介紹,這裏不再進行講述。下面重點介紹Nginx如何通過php-fpm的FastCGI進程對PHP進行解析處理。

由於Nginx本身不會對PHP進行解析,因此要實現Nginx對PHP的支持,其實是將對PHP頁面的請求交給fastCGI進程監聽的IP地址及端口。如果把php-fpm當做動態應用服務器,那麼Nginx其實就是一個反向代理服務器。Nginx通過反向代理功能實現對PHP的解析,這就是Nginx實現PHP動態解析的原理。

取消掉下端註釋

location ~ \.php$ {  

           root           html;  

           fastcgi_pass   127.0.0.1:9000;  

           fastcgi_index  index.php;  

           fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  

           include        fastcgi_params;  

       }  

}  


fastcgi_param指令指定放置PHP動態程序的主目錄,也就是$fastcgi_script_name前面指定的路徑

fastcgi_params文件是FastCGI進程的一個參數配置文件,在安裝Nginx後,會默認生成一個這樣的文件,這裏通過include指令將FastCGI參數配置文件包含了進來。

接下來,啓動nginx服務。

/usr/local/nginx/sbin/nginx

到此爲止,Nginx+PHP已經配置完成。



測試php

mkdir /scripts

touch /scripts/wdostest.php

vim /scripts/wdostest.php


<? phpinfo(); ?>


firefox 127.0.0.1/wdostest.php


測試php連接mysql

touch /scripts/testmysql.php

vim /scripts/testmysql.php


<?

$link=mysql_connect('localhost','root');

if(!$link)

       echo "sorry,faild";

       else

       echo "oh yes!!!!!";

mysql_close();

?>


firefox 127.0.0.1/testmysql.php





location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$

{

root /scripts;

if (-f $request_filename) {

expires 1d;

break;

}

}












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章