Nginx+PHP 實現動態網站環境
LNMP介紹
LNMP構架,即 Linux + Nginx + MySQL + PHP 組成的動態網站解決方案。L指代Linux作業系統,不僅可以是RHEL、CentOS等等,還合一是Debian、Ubuntu等系統;Nginx作為Web伺服器,負責實現與使用者瀏覽器的互動;PHP是處理網站後端業務邏輯的一種指令碼程式語言,是web開發的主流語言之一;MySQL負責儲存和管理網站的資料庫。這樣就組成了一個完整的動態網站的執行環境。
logo
目的:在CentOS7.x系統上安裝Nginx和PHP直譯器;搭建Nginx+PHP環境,實現一個基本的動態網站執行環境。
實驗流程
對於Nginx而言,PHP是一個外部程式而不是Nginx內部模組。Nginx需要通過CGI介面程式來實現與PHP程式的互動,進而將php響應的檔案交給使用者瀏覽器。這樣就實現了動態網站的基本流程。FastCGI就是這樣一種介面,通過php-fpm來管理,換句話說php-fpm就是FastCGI的程序管理器。
搭建Nginx靜態伺服器
之前有過寫一篇文章:https://blog.csdn.net/feit2417/article/details/84982264
完成後通過瀏覽器可以訪問到
搭建PHP環境
1.安裝php以及相關工具
[[email protected]_16_8_centos ~]# yum install php php-fpm php-mysql -y
3.安裝完成,檢視版本
[[email protected]_16_8_centos ~]# php -v PHP 5.4.16 (cli) (built: Oct 30 2018 19:30:51) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
如果嫌版本太低,這裡有一篇php7版本的安裝方法:https://blog.csdn.net/feit2417/article/details/85015690
4.啟動PHP-FPM程序並加入開機啟動項
[[email protected]_16_8_centos ~]# systemctl start php-fpm
[[email protected]_16_8_centos ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
5.啟動之後,可以使用下面的命令檢視 PHP-FPM 程序監聽哪個埠
[[email protected]_16_8_centos ~]# netstat -nlpt | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 12566/php-fpm: mast
可以看出,這裡佔用了是本機(127.0.0.1)的9000 tcp埠
配置Nginx執行PHP程式
1.編寫nginx子配置檔案 php.conf
[[email protected]_16_8_centos ~]# cd /etc/nginx/conf.d
[[email protected]_16_8_centos conf.d]# touch php.conf
[[email protected]_16_8_centos conf.d]# vim php.conf
server {
listen 80;
server_name www.benmoom.club;
root html/php;
index index.html index.php;
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
}
[[email protected]_16_8_centos conf.d]# systemctl restart nginx
從配置檔案中,server塊表示一個站點。在index指令後面加上了index.php引數表述索引檔案,location規則是匹配所有.php結尾的請求。當用戶瀏覽器訪問該站點時,產生index.php的請求,然後將請求傳送給監聽本機(127.0.0.1)9000埠的FastCGI程式(即PHP);fastcgi.conf檔案描述了雙方通訊必要的環境資訊。
2.建立目標檔案編寫.php程式碼
[[email protected]_16_8_centos conf.d]# cd /usr/share/nginx/html
[[email protected]_16_8_centos conf.d]# mkdir php
[[email protected]_16_8_centos html]# cd php
[[email protected]_16_8_centos php]# touch index.php
[[email protected]_16_8_centos php]# vim index.php
<?php phpinfo(); ?>
當用戶請求該php程式時,程式將phpinfo()函式的返回結果響應給使用者。
3.檢視實驗效果
參考書籍 《Nginx高效能Web伺服器實戰教程》
參考連結 騰訊雲 -- LNMP環境搭建實驗