@[TOC]
一、環(huán)境配置
主機:Windows 10
服務器供應商:阿里云
服務器操作系統(tǒng):Centos 7.4 64位
二、安裝php
2.1 環(huán)境安裝
通過yum install xx 命令可以進行各種工具及環(huán)境的安裝。
現(xiàn)在,我們需要先安裝php 環(huán)境,只需要輸入以下命令:
yum install -y php
2.2 修改首頁
安裝完成后,我們必須進行測試,方可保證此次安裝沒有出現(xiàn)問題。
現(xiàn)在,我們修改php 的首頁來進行測試。
首先,先來到php 文件的存放位置
cd /var/www/html
通過 vi xxx 命令可以對某個文件進行編輯。
我們需要編輯的是php 的首頁,只需要輸入以下命令:
vi index.php
按下鍵盤字母【a】開始編輯,輸入以下內(nèi)容( 顯示配置信息 ):
<?php
phpinfo();
?>
編輯完成后,按下【Esc】鍵,再輸入
:wq
回車,即可保存本次修改并退出。
2.3 訪問首頁
通過curl url 可以達到瀏覽器訪問url 的效果。
我們現(xiàn)在需要訪問php 的首頁,只需要輸入以下命令:
curl localhost
運行結(jié)果如下:

可以看到,此次訪問并沒有成功。
此次的報錯是【no route to host】,這是什么意思?百度翻譯的解答是【沒有到主機的路由】,因此,可以猜測,這是沒有安裝httpd 服務的問題,暫時還不確定是否和php 的配置相關(guān)。
接下來,我們就先將httpd 服務的安裝解決,再來對php 進行二度測試。
三、安裝httpd
3.1 安裝并啟動httpd
安裝httpd 只需要輸入以下命令:
yum install -y httpd
安裝完成后,啟動httpd 并查看其是否真的已經(jīng)啟動:
systemctl start httpd.service
service httpd status
運行結(jié)果如下:
可以看到,httpd 的狀態(tài)是【active(running)】,也就是運行中的狀態(tài),這說明,我們的httpd 服務已經(jīng)啟功了。
3.2 再次訪問php 首頁
輸入以下命令:
curl loclahost
運行結(jié)果如下:
可以看到,此次訪問是很成功的,在頁面中輸出了一個表格,用以顯示相關(guān)的配置信息。
四、安裝nginx
4.1 添加資源庫
首先,我們先添加nginx 的資源庫,輸入以下命令:
vi /etc/yum.repos.d/nginx.repo
在文件中添加以下內(nèi)容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
4.2 安裝nginx
安裝nginx 只需要輸入以下命令:
yum install -y nginx
nginx 的默認端口是80 ,為了避免端口沖突,我們需要修改一下nginx 的端口。
4.3 修改端口
查看nginx 的配置文件,輸入以下命令:
nginx -t
運行結(jié)果如下:

可以看到,我的nginx 配置文件是/etc/nginx/nginx.conf 。
接下來,我們對該文件進行修改,輸入以下命令:
vi /etc/nginx/nginx.conf
運行結(jié)果如下:
看完整個文件,并沒有發(fā)現(xiàn)有端口的痕跡。那么究竟端口的配置是在哪里呢?
看到文件最后,【include】這一行也有配置文件的蹤跡,那么我們就進去這個目錄查看一番。
cd /etc/nginx/conf.d/
ls
運行結(jié)果如下:

可以看到,在這個目錄下,有一個配置文件,名為default.conf ,那么我們就來看看這里有沒有端口的配置,輸入以下命令:
vi default.conf
運行結(jié)果如下:

可以看到,這次的配置文件就有端口的配置,我們將80 改為88 ,然后保存退出。
4.4 公網(wǎng)訪問
接下來,啟動nginx ,輸入以下命令:
service nginx restart
運行結(jié)果如下:
但此時,我們還無法在公網(wǎng)訪問到nginx 的首頁,因為在阿里云服務器上還沒有開發(fā)80 或88 端口。
具體流程為:
進入阿里云的控制臺 -> 云服務器ECS ->實例 ->具體實例 ->本實例安全組 ->具體安全組的配置規(guī)則 -> 手動添加

在安全組開發(fā)端口后,就可以訪問到nginx 的首頁了。
在Windows 主機的瀏覽器輸入:公網(wǎng) ip:88 ,就可以看到以下頁面了。
五、安裝php-fpm
何為php-fpm ?
php-fpm即php-Fastcgi Process Manager。
php-fpm是 FastCGI 的實現(xiàn),并提供了進程管理的功能。
進程包含 master 進程和 worker 進程兩種進程。
master 進程只有一個,負責監(jiān)聽端口,接收來自 Web Server的請求,
而 worker 進程則一般有多個(具體數(shù)量根據(jù)實際需要配置), 每個進程內(nèi)部都嵌入了一個 PHP 解釋器,是 PHP代碼真正執(zhí)行的地方。
也就是說,想要執(zhí)行PHP 文件,就必須安裝php-fpm 這個工具。
輸入以下命令:
yum install -y php-fpm.x86_64
安裝完成后,啟動php-fpm ,輸入以下命令:
service php-fpm start
運行結(jié)果如下:
可以看到,php-fpm 已經(jīng)啟動了,但是,只有這個可還不能在外網(wǎng)訪問到php 文件。
六、讓 nginx 可以執(zhí)行 php
6.1 修改配置
修改nginx 的配置文件,輸入以下命令:
vi /etc/nginx/conf.d/default.conf
運行結(jié)果如下:

找到上圖中的位置,取消這個location 的注釋,并進行修改,如下圖所示:

注:需要保證root 和fastcgi_parm 的路徑一樣。root 指能被外網(wǎng)訪問的php 文件的存放路徑。
使用nginx -t 命令可以查看nginx 的配置文件是否有錯誤:
nginx -t
配置文件無誤后重啟nginx :
service nginx restart
6.2 公網(wǎng)訪問php 文件
進入nginx 配置文件中自己設(shè)置的php 文件存放路徑:
cd /usr/share/nginx/html/
在該目錄下新建一個測試文件:
vi test.php
添加以下內(nèi)容,并保存退出:
<?php
phpinfo();
?>
接下來,就可以進行最后的測試了。
在Windows 主機的瀏覽器輸入
公網(wǎng) IP:88/test.php
運行結(jié)果如下:
如果出現(xiàn)上圖的結(jié)果,那么此次的nginx+php 外網(wǎng)訪問實現(xiàn)就完成了。
至此,本文結(jié)束。我是陳冰安,一個Java學習者。歡迎關(guān)注我的公眾號【暗星涌動】,愿與你一同進步。