1. 程式人生 > >Linux下安裝PHP並在nginx服務器中進行配置的詳細方法

Linux下安裝PHP並在nginx服務器中進行配置的詳細方法

devel direct emca red pca pic 占用 amp entos

先介紹一下使用的環境:centos 7.4,  PHP 7.0 ,  nginx 1.12

Linux系統版本可以通過命令:lsb_release -a 查看.

現在開始步入正題了!

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端口即可。

這裏補充一點,使用php-cgi有可能會在一段時間之後網站不能進行訪問,所以建議使用php-fpm啟動PHP.

這裏再補充一點,也許有的小夥伴會在重啟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即可!

Linux下安裝PHP並在nginx服務器中進行配置的詳細方法