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,如需轉載請自行聯系原作者