nginx LNMP架構配置與動靜分離
0.疊甲
Linux萌新,有錯輕噴,敬請斧正。
1.思想,要點以及主機分配
#1.動靜結合
分離動態(tài)資源和靜態(tài)資源,從而提升服務器可維護性以及性能。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 牛馬示意圖
#2.要點
nginx端和php端的根目錄需要同步,否則不能顯示某些靜態(tài)文件。此處筆者建議使用的是NFS掛載。
#3.主機分配
本次實驗中用到三臺虛擬機
192.168.126.130 nginx端
192.168.126.131 php端
192.168.126.132 mysql端
2.詳細配置
#1.nginx端配置
#安裝nginx略 #進入nginx配置文件 server { ? ? ? ?listen ? ? ? 80; ? ? ? ?server_name ?localhost; ? ? ? ?access_log ?logs/host.access.log ?main; ? ? ? ?location / { ? ? ? ? ? ?root ? /usr/local/nginx/html; ? ? ? ? ? ?index ?index.html index.htm index.php; ? #此處要指定訪問index.php ? ? ? ?} ? ? ? ?location ~ \.php$ { ? ? ? ? ? ?root ? ? ? ? ? /usr/local/php5/apps; ? ? ? ? ? ?fastcgi_pass ? 192.168.126.131:9000; ? ? ? ? ? ?fastcgi_index ?index.php; ? ? ? ? ? ?fastcgi_param ?SCRIPT_FILENAME ?$document_root$fastcgi_script_name; ? ? ? ? ? ?include ? ? ? ?fastcgi_params; ? ? ? ?} } #啟動nginx systemctl start nginx
參數解析:
fastcgi_pass:這個命令是指定將http代理到哪個fastcgi服務端接口。fastcgi_pass后面是填寫fastcgi服務端地址的,這個地址可以是域地址,也可以是Uninx-域套接字。 ?
fastcgi_index: fastcgi默認的主頁資源,示例:fastcgi_index index.php;這個功能和index index.html功能一樣。當SCRIPT_FILENAME沒有命中腳本的時候,使用的就是fastcgi_index設置的腳本。 ?
fastcgi_param: 這個命令是設置 fastcgi 請求中的參數,具體設置的東西可以在 PHP 的 $_SERVER 中獲取到。 ?
#2.php端配置
##1.安裝
yum install libxml2 yum install libxml2-devel -y yum install libpng -y yum install libpng-devel tar xf php-5.6.30.tar.gz cd php-5.6.30 ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm make && make install cd /usr/local/php5/etc/ cp php-fpm.conf.default php-fpm.conf
##2.配置
useradd nginx -M -s /sbin/nologin ? #重要步驟 cd /usr/local/php5/etc egrep -v '^;|^ *$' php-fpm.conf.default > php-fpm.conf vim php-fpm.conf [global] [www] user = nginx group = nginx listen = 9000 pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 10 #啟動 /usr/local/php5/sbin/php-fpm
參數解析:
user,group:進程的發(fā)起用戶和用戶組,用戶user是必須設置,group不是
listen:監(jiān)聽的ip和端口
pm = dynamic:選擇進程池管理器如何控制子進程的數量。static是對于子進程的開啟數路給定一個鎖定的值(pm.max_children),dynamic是子進程的數目為動態(tài)的,它的數目基于下面的指令的值(以下為dynamic適用參數)。
pm.start_servers = 5:在啟動時啟動的子進程數量
pm.min_spare_servers: 處于空閑"idle"狀態(tài)的最小子進程,如果空閑進程數量小于這個值,那么相應的子進程會被創(chuàng)建
pm.max_spare_servers: 最大空閑子進程數量,空閑子進程數量超過這個值,那么相應的子進程會被殺掉。
##3.NFS配置
#php作為NFS主機
#創(chuàng)建php文件夾,并掛載到nginx端。掛載位置是nginx端的根目錄(我是/usr/local/nginx/html/)
#3.mysql端配置
##1.mysql安裝略
##2.建立一個數據庫
create database wordpress;
##3.創(chuàng)建mysql賬號,并給php的端口開放權限
grant all privileges on wordpress.* to 'wordpress'@'192.168.126.131' IDENTIFIED BY 'Jsxhxhj123!';
#4.測試連接
##1.nginx端和php端
php創(chuàng)建測試腳本
mkdir /usr/local/php5/apps vim /usr/local/php5/apps/index.php <?php phpinfo(); ?>
之后讓nginx端訪問

##2.php端和mysql端
php端建立測試文件
cat ?/usr/local/php5/app/index.php <?php mysql_connect('192.168.10.201','wordpress','Qfedu2203.') or die('failed'); echo 'success' ; ?>
nginx端訪問,如果顯示“success”即為配置成功
#5.php端部署wordpress
##1.下載wordpress并解壓到php存儲目錄
##2.訪問nginx端ip地址進行應用安裝
##3.安裝過程中可能出現“抱歉,我不能寫入wp-config.php文件”
手動在php存儲目錄(也就是和nginx同步的那個目錄)創(chuàng)建一個wp-config.php,并將提示信息中的設置粘貼進去,然后加上“?>”
