天天看點

redhat5.8下搭建lnmp完成ucenter home(提供全套軟體包)

                         LNMP配置文檔

LINUX +nginx+mysql + php

網上的論壇網上偷菜都是這種結構

編譯安裝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-5.1.34.tar.gz –C/usr/local/src

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

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

rm -rf /etc/my.cnf  删掉否則後面沒法成功

/usr/local/mysql/bin/mysql_install_db

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

在/usr/local/mysql/bin

./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

cd 到PHP下

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

enable-fpm    打開fastcgi功能;交給fpm處理PHP 功能

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。

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

标簽display_errors用來設定是否顯示PHP錯誤資訊,預設是0,不顯示錯誤資訊,設定為1可以顯示PHP錯

誤資訊。

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

标簽max_children用于設定FastCGI的程序數。根據官方建議,小于2GB記憶體的伺服器,可以隻開啟64個進

程,4GB以上記憶體的伺服器可以開啟200個程序。

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

标簽request_terminate_timeout用于設定FastCGI執行腳本的時間。預設是0s,也就是無限執行下去,可

以根據情況對其進行修改。

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

标簽rlimit_files用于設定PHP-FPM對打開檔案描述符的限制,預設值為1024。這個标簽的值必須和Linux

核心打開檔案數關聯起來,例如要将此值設定為65535,就必須在Linux指令行執行'ulimit -HSn 65536'

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

标簽max_requests指明了每個children最多處理多少個請求後便會被關閉,預設的設定是500。

<valuename="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動态解析的原理。

取消掉下端注釋把/usr/local/nginx/conf/nginx.conf  去掉注釋

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;  

      }  

}  

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

{

root /scripts;

if (-f $request_filename) {

expires 1d;

break;

}

第2個location  是因為在正和mysql和nginx 其他格式的不支援加上了後面安裝時就會顯示了

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 "ohyes!!!!!";

mysql_close();

?>

把LNMP文檔farm解壓會得到upload  把裡面的東西都考到nginx/html   和你建立的scripts下

把考過來的都加上777的權限

ln -s /scripts/home nginx109/html/home   做個軟連接配接

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

記得把mysql  和nginx 服務都重新開機下

浏覽器上現輸入

http://192.168.1.203/index.php   安裝資料庫的一些東西和設定

然後全都完成應該是直接輸入你的IP  你就可以進入我的家園網站資料庫名mysql  資料庫使用者

名root  密碼不用填

用下面的最好記得把有一行

      location / {

          root   html;

          index  index.php index.htm;

      }

記得把支援php的放在第一個位置

還可以這樣改

          root           html;

          fastcgi_param SCRIPT_FILENAME /usr/local/nginx109/html/$fastcgi_script_name;  

root html;

然後上面的那個/script  就可以删了還有那個解壓縮的 upload  裡面 home  考到 nginx/html下

netstat -anplt | grep nginx 查端口

壓縮包

<a href="http://s3.51cto.com/wyfs02/M01/23/1B/wKioL1Mxl9CyBpdLAAIDjg9_0dQ369.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/23/1A/wKiom1Mxl_jj_xdxAAOyAOVX-gQ215.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/23/1B/wKioL1Mxl9GgonsYAAL2MUQOL6M456.jpg" target="_blank"></a>

      本文轉自潘闊 51CTO部落格,原文連結:http://blog.51cto.com/pankuo/1384181,如需轉載請自行聯系原作者