PHP7與其他版本共存安裝且為PHP7安裝redis、event擴展

系統環境:

centos6.9

PHP7與其他版本共存安裝且為PHP7安裝redis、event擴展

centos 安裝PHP7並且與其他版本共存

wget -c -Ophp-7.1.5.tar.gz http://cn2.php.net/get/php-7.1.5.tar.gz/from/this/mirror
tar -xvf php-7.1.5.tar.gz
cd php-7.1.5

在安裝之前首先要搞定一些依賴,不過有一些依賴我在安裝PHP5.6.30的時候都安裝過了,還有少數部分依賴沒有安裝,那麼我也給出全新的依賴誰讓我們是伸手黨,安裝過了重新安裝也沒啥

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

上面的依賴安裝好後,那麼就是配置一下PHP7 要安裝的路徑與開啟的模塊等, 這裡要說一下與mysqlq鏈接的配置,默認的一個配置的路徑是 --with-mysql-sock=/tmp/mysql.sock

這是默認路徑,在確保mysql啟動的狀態下看看 這個mysql.sock在不,如果不存在,使用下面命令找一下

find / -name mysql.sock

應該會顯示具體的路徑,然後把地址替換了上面的配置的地址,如果是阿里雲主機有RDS數據庫或有專用的數據庫服務器,那個參數就可以直接幹掉,當然你創建一個軟鏈接也是可以的。

#./configure \
--prefix=/usr/local/php7 \
--exec-prefix=/usr/local/php7 \
--bindir=/usr/local/php7/bin \
--sbindir=/usr/local/php7/sbin \
--includedir=/usr/local/php7/include \
--libdir=/usr/local/php7/lib/php \
--mandir=/usr/local/php7/php/man \
--with-config-file-path=/usr/local/php7/etc \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--enable-sockets \
--enable-soap \
--enable-session \
--with-curl \
--enable-opcache \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
#make && make install

安裝好後,來設置PHP7的配置文件:php.ini php-fpm.conf和php-fpm啟動腳本

cp ./php.ini-production /usr/local/php7/etc/php.ini
cp ./sapi/fpm/php-fpm.conf /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
chmod 755 /etc/init.d/php7-fpm

上面的命令執行後,來修改一下/usr/local/php7/etc/php-fpm.d目錄下的www.conf裡的 listen = 127.0.0.1:9000為listen = 127.0.0.1:9001

如果有老版本的php-fpm使用了9000端口,那麼PHP7的fpm端口要修改成9001,具體你自己定

把php7-fpm加入開機啟動

chkconfig --add php7-fpm
chkconfig php7-fpm on

啟動php7-fpm

service php7-fpm start
service php7-fpm stop
service php7-fpm restart
service php7-fpm reload
# 說明
start,啟動PHP的FastCGI進程
stop,強制終止PHP的FastCGI進程
quit,平滑終止PHP的FastCGI進程
restart, 重啟PHP的FastCGI進程
reload, 重新加載PHP的php.ini
logrotate, 重新啟用log文件

PHP7-fpm重動完成後,來配置一個nginx可以使用PHP7

fastcgi_pass 127.0.0.1:9001;

PHP7安裝redis

phpredis在php7、php5下都有不同的版本,裝岔了可能會編譯報錯,所以在安裝之前請先看下自己的PHP是啥版本。

我的Redis裝的是redis3.2.3版本。

用phpinfo()查看安裝的php信息。

確認是php7後開始安裝。

下載地址: git clone https://github.com/phpredis/phpredis.git (現已支持PHP7)

然後進入文件的目錄,開始重新編譯phpize:

cd phpredis
/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config

注意這個php-config文件有的版本是在/usr/local/php/bin下,裝的時候多找找

make && make install

最後在/usr/local/php7/etc/php.ini 裡面加入:extension=redis.so php.ini文件也是藏匿在lib、etc、bin這仨之一,裝的時候多找找

重啟HTTP應用程序如:nginx

這時候再次打開phpinfo()頁面,搜索redis即能找到redis擴展已安裝。

[附加說明:如果是php7.2以上 mcrypt擴展默認被移除,需要自動安裝]

如果以上方法不行,參考下面步驟處理

從 mcrypt庫地址 下載適用版本,然後解壓

wget http://pecl.php.net/get/mcrypt-1.0.1.tgz tar zxvf mcrypt-1.1.1.tgzcd mcrypt-xxx/usr/local/php7.2.10/bin/phpize #此處的phpize是php7.2以上安裝目錄地址./configure --with-php-config=/usr/local/php7.2.10/bin/php-configmake && make install

最後配置php的擴展配置,同redis.so配置,添加extension=mcrypt.so到php.ini文件裡即可。


分享到:


相關文章: