1. 程式人生 > >php7.2 安裝phpredis擴充套件

php7.2 安裝phpredis擴充套件

##下載及安裝
wget https://github.com/edtechd/phpredis/archive/php7.zip //下載php-redis擴充套件包
yum install -y zip unzip  //安裝壓縮,解壓軟體
unzip php7.zip //解壓
cd pphpredis-php7   //進入解壓後的檔案中
/opt/php7.2/bin/phpize  //重新編譯 phpize,我的php安裝在opt自定義的檔案中
./configure --with-php-config=/opt/php7.2/bin/php-config  //配置
make && make install  //編譯安裝
若有出現如下類似的錯誤:
libtool: link: `redis_commands.lo' is not a valid libtool object
libtool: link: `redis_commands.lo' is not a valid libtool object
解決方案:
用命令
make clean
然後在重新執行命令
原因是編譯的時候有問題重新編譯一下檔案就解決了

至此安裝完成,下面修改php配置檔案

編輯php配置檔案php.ini,這裡根據自己的安裝目錄來找

vi /opt/php7/etc/php.ini

在這裡插入圖片描述

啟動php-fpm:

/opt/php7.2/sbin/php-fpm

php 5.3.3 以後的php-fpm 不再支援 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看這種老掉牙的命令了,需要使用訊號控制:

master程序可以理解以下訊號

INT, TERM 立刻終止
QUIT 平滑終止
USR1 重新開啟日誌檔案
USR2 平滑過載所有worker程序並重新載入配置和二進位制模組

一個簡單直接的重啟方法:

先檢視php-fpm的master程序號

# ps aux|grep php-fpm
root     21891  0.0  0.0 112660   960 pts/3    R+   16:18   0:00 grep --color=auto php-fpm
root     42891  0.0  0.1 182796  1220 ?        Ss   4月18   0:19 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody   42892  0.0  0.6 183000  6516 ?        S    4月18   0:07 php-fpm: pool www
nobody   42893  0.0  0.6 183000  6508 ?        S    4月18   0:17 php-fpm: pool www

重啟php-fpm:

kill -USR2 42891

OK了。
上面方案一般是沒有生成php-fpm.pid檔案時使用,如果要生成php-fpm.pid,使用下面這種方案:

上面master程序可以看到,matster使用的是/opt/php7.2/etc/php-fpm.conf這個配置檔案,cat /opt/php7.2/etc/php-fpm.conf 發現:

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = /opt/php7.2/var/run/php-fpm.pid

pid檔案路徑應該位於/opt/php7.2/var/run/php-fpm.pid,由於註釋掉,所以沒有生成,我們把註釋去除,再kill -USR2 42891 重啟php-fpm,便會生成pid檔案,下次就可以使用以下命令重啟,關閉php-fpm了:

php-fpm 關閉:
kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
php-fpm 重啟:
kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'

最後 php -m 檢視是否安裝完成,如下圖

常見問題:
cd /opt/nginx/log
 tail -f pc-admin-fegame.seeyouyima.com_error.log 
 unix:/opt/php7.2/var/run/php-fpm.sock failed (13: Permission denied) 
 解決方案:
chmod 0666 /opt/php7.2/var/run/php-fpm.sock

用 phpinfo(); 檢視資訊:
在這裡插入圖片描述
跟安裝的目前不一樣

/opt/php7.2/lib/php/extensions/no-debug-non-zts-20170718

更改 /opt/php7.2/etc/php.ini
在這裡插入圖片描述
重新啟動php-fpm

nginx.log若存在一下錯誤,重新安裝php redis 擴充套件

 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server:
 

原因參考 : https://blog.csdn.net/tengzhaorong/article/details/12704759