1. 程式人生 > >記錄一次nginx php-fpm環境搭建

記錄一次nginx php-fpm環境搭建

為了測試bug,好久不搭環境的我又一次走上不歸路,在此記錄。

我用的parallel desktop上的centos7

裝系統還是很好裝的,先新增源

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

1.安裝php7.2

//安裝php
yum install php72w
yum install -y php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
systemctl start php-fpm //開啟php-fpm
service php-fpm status //檢視php-fpm是否啟動

這回主要是為了php-fpm

php-fpm中有一些配置項,等我們裝好了nginx一起處理他。

2.安裝nginx

//安裝nginx
yum install nginx

nginx配置項在/etc/nginx/conf.d/下面有個default.conf,修改前記得備份。

server{
    listen      80;
    server_name localhost;
    index index.php index.html index.htm;
    root  /usr/share/nginx/html; #專案路徑

        location / {
               index  index.php index.html index.htm;
               try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
               root         /usr/share/nginx/html ;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
        }
}
sudo systemctl restart nginx

這裡可能報一些錯誤。

一般是你配置的問價許可權不夠,虛擬機器注意第四條

500左右的錯誤

一般因為php-fpm沒有啟動

File not found

錯誤原因是是php-fpm程序找不到SCRIPT_FILENAME配置的要執行的.php檔案,php-fpm返回給nginx的預設404錯誤提示。//安裝nginx。

3.配置php-fpm

啟用php-fpm狀態, 對PHP-FPM進行監控

配置檔案/etc/php-fpm.d/www.conf

pm.status_path = /status

 然後修改nginx新增下面這段,跟其他的location一樣 很整齊,不至於有人會找不到吧。注意/status這裡要跟www.conf中一致

      location /status {
         fastcgi_pass 127.0.0.1:9000;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        }

你可以看到

pool:                 www                            #fpm池名稱,大多數為www 
process manager:      dynamic                        #程序管理方式dynamic或者static 
start time:           16/Sep/2018:16:17:41 +0800     #啟動日誌,如果reload了fpm,時間會更新 
start since:          5                              #執行時間 
accepted conn:        1                              #當前池接受的請求數
listen queue:         0                              #請求等待佇列,如果這個值不為0,那麼需要增加FPM的程序數量 
max listen queue:     0                              #請求等待佇列最高的數量 
listen queue len:     128                            #socket等待佇列長度 
idle processes:       4                              #空閒程序數量 
active processes:     1                              #活躍程序數量 
total processes:      5                              #總程序數量 
max active processes: 1                              #最大的活躍程序數量(FPM啟動開始計算)
max children reached: 0                              #程最大數量限制的次數,如果這個數量不為0,那說明你的最大程序數量過小,可以適當調整。
slow requests:        0                              #啟用了php-fpm slow-log,緩慢請求的數量

4.安裝redis

yum install redis
yum install php-redis

檢視redis.so

檢視/usr/lib64/php/modules/redis.so是否存在

然後變價redis.ini

vi /etc/php.d/redis.ini

我以前也是修改php.ini的現在好像都換出去了,你看php.d裡面有各種庫的ini檔案,我的redis.ini是自動生成的,並且裡面的vi extension = redis.so已經去過註釋了。

重啟nginx 和 php-fpm 你就可以看到redis了。