1. 程式人生 > >Nginx+PHP 實現動態網站環境

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環境搭建實驗