今天想自己搭一個blog網站,由於之前一直使用Java開發伺服器,並且使用的是nginx,所以沒有搭建PHP的運行環境。於是決定寫下這篇博文與大家一起分享一下。 先介紹一下使用的環境:centos 7.4, PHP 7.0 , nginx 1.12 不同的系統版本可能配置有些稍微不同,請大家配置的時 ...
今天想自己搭一個blog網站,由於之前一直使用Java開發伺服器,並且使用的是nginx,所以沒有搭建PHP的運行環境。於是決定寫下這篇博文與大家一起分享一下。
先介紹一下使用的環境:centos 7.4, PHP 7.0 , nginx 1.12
不同的系統版本可能配置有些稍微不同,請大家配置的時候註意。
Linux系統版本可以通過命令:lsb_release -a 查看,這裡小哥要說一聲的是,該命令支持所有Linux系統,不論你是用的是紅帽系還是Debian系,都可以使用。
現在開始步入正題了!
1. 首先查看一下nginx是否已經安裝成功。
Linux命令:find /|grep nginx.conf 如果安裝完成,會顯示出你的nginx配置文件所在的目錄,我這裡的目錄是在 /etc/nginx目錄下。
不會安裝的小伙伴請自行百度,有時間的時候我也會寫篇博客專門介紹nginx的安裝及其配置等問題,在這裡就不加羅列了。
2. 安裝PHP
我這裡使用快捷的安裝方式,採用yum直接安裝。
分別執行命令:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mysqlnd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel
# systemctl restart httpd
小伙伴們也可以使用編譯安裝的方法進行安裝。
這時候可以在nginx的html目錄中新建一個php文件,檢測是否可以使用。這裡我新建一個名為:index.php的文件,內容如下:
<?php
phpinfo();
?>
輸入命令重啟nginx nginx -s reload
這時候就可以通過瀏覽器輸入你的PHP測試文件進行測試了,我這裡輸入的是:location/index.php
這時候發現問題了,瀏覽器並沒有正常載入PHP測試文件,而是直接將文件下載到本地了。這是因為nginx沒有辦法解析php尾碼的文件,於是直接將它發送給你了。
清楚問題了,所以就需要配置一下nginx伺服器。
打開你的nginx伺服器的配置文件:nginx.conf。它的路徑可以通過 find /|grep nginx.conf 查看。
在http{ }中,
找的location / {
root html;
index index.html index.htm;
} 在index後面加一句話 index.php
更改後的內容為:
location / {
root html;
index index.php index.html index.htm;
}
然後再在location / { }後面添加一下內容:
# PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI協議預設配置.
# Fastcgi伺服器和程式(PHP,Python)溝通的協議.
location ~ \.php$ {
# 設置監聽埠
fastcgi_pass 127.0.0.1:9000;
# 設置nginx的預設首頁文件(上面已經設置過了,可以刪除)
fastcgi_index index.php;
# 設置腳本文件請求的路徑
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 引入fastcgi的配置文件
include fastcgi_params;
}
配置完成後保存,重啟nginx,nginx -s reload
然後這是再在瀏覽器中輸入你的測試PHP文件路徑(web訪問路徑),就會發現大功告成!PHP文件已經可以正常運行了。
如果你的伺服器還是無法正常載入PHP的話,提示網頁錯誤或者直接下載,那麼就檢查一下你的Linux是否打開9000埠或者是被占用了。
查看埠:netstat -antp
當現實沒有9000埠的時候,說明現在9000埠沒有被占用,利用 php-cgi -b 127.0.0.1:9000 & 開啟PHP 9000埠,其中&是後臺運行,別忘了加上!
有9000埠出現的時候,需要查看是哪個程式占用了,確認占用程式可以停止後殺死進程,kill PID
例如這裡是:kill 5611
然後再執行 php-cgi -b 127.0.0.1:9000 & 開啟PHP 9000埠即可。
這裡再補充一點,也許有的小伙伴會在重啟nginx伺服器的時候遇到這樣的錯誤:
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解決方法: [root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 這是因為,nginx.pid丟失了,所以使用nginx -c的參數指定nginx.conf文件的位置,再重新啟動nginx即可! 不知不覺時間又到了11點半了,總是給人一種措不及防的感覺。博客就先不再搭建了,明天再繼續。小伙伴們如果有任何疑問可以隨時與我交流。 轉載請註明博客地址與作者,支持原創,純手寫不容易。 安利一個技術交流群,363016536。