如何在CentOS中装PHP7
最近 PHP7 出来了,班班说 Laravel 支持 PHP7 而且PHP 性能翻倍,我也就尝尝鲜试试 PHP7 的感觉。现在配置的环境是基于 CentOS release 6.5 (Final), 用的是源码编译安装。
前言
本人的测试环境现在用的是 1G 内存单核的阿里云服务器,服务器系统是 CentOS release 6.5 (Final)
。
最后配好的环境是 PHP
+ Nginx
。
下不赘述。
卸载先前的 PHP
查看php版本命令:
1 | [root@davex ~]# php -v |
这个命令是删除不干净的
1 | [root@davex ~]# yum remove php |
因为使用这个命令以后再用
1 | [root@davex ~]# php -v |
还是会看到有版本信息的。。。。。
必须强制删除
1 | [root@davex ~]# rpm -qa|grep php |
提示如下
1 | php-pdo-5.1.6-27.el5_5.3 |
注意卸载要先卸载没有依赖的,pdo是mysql的依赖项;common是gd的依赖项;
例如:
1 | [root@davex ~]# rpm -e php-pdo-5.1.6-27.el5_5.3 |
所以正确的卸载顺序是:
1 | [root@davex ~]# rpm -e php-mysql-5.1.6-27.el5_5.3 |
再用 php -v
查看版本信息已经没有提示。
下载 & 解压
由于测试环境是国内,读者可以在 http://cn.php.net/get/php-7.0.0.tar.gz/from/a/mirror
中找到适合自己的镜像链接。
在此,笔者选的是香港的镜像。
1 | [root@davex php-7.0.0]# wget http://hk1.php.net/get/php-7.0.0.tar.gz/from/this/mirror |
安装前的参数配置
准备工作做完了就可以开始编译安装了,下面是安装明细。
Notice
:操作前去掉 \
后面的注释。
1 | [root@davex php-7.0.0]# ./configure \ |
这是去掉注释后的版本:
1 | ./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/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --disable-fileinfo |
开始编译 & 安装 PHP7
PHP7的编译安装略微耗时,大约花了半个小时。
1 | [root@davex php-7.0.0]# make clean && make && make install |
安装好后,系统会有如下显示。
虽说上面显示 Don't Forget to run 'make test'.
,但其实可做可不做,笔者在此就没有做这个工作。
查看编译成功后的PHP7安装目录
由于需要和 MySQL
进行通信,所以需要特别查看 PHP7
安装后的 lib
扩展库目录。
1 | [root@davex ~]# cd /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/ |
需要确保至少存在 mysqli.so
、 pdo_mysql.so
这两个动态库文件,如下图所示。
设置PHP7的配置文件
可以用编译后的配置文件复制到PHP7的配置目录( /usr/local/php7/etc/
)。
参考博文中推荐使用PHP7中php.ini、php-fpm和www.conf的配置中整理的配置,这个由读者自行判断。
接下来采取源码包中自带的配置。
1 | [root@davex php-7.0.0]# cp php.ini-production /usr/local/php7/etc/php.ini |
添加PHP7的环境变量
将php编译生成的bin目录添加到当前Linux系统的环境变量中
1 | [root@davex ~]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile |
设置目录
其中,设置php-fpm进程目录的用户和用户组为 Nginx
,并创建php会话session目录。
设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
1 | [root@davex ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm |
修改session的目录配置
1 | [root@davex ~]# mkdir -p /var/lib/php/session |
设置PHP开机启动以及测试配置文件是否正确
配置开机自启动
1 | [root@davex ~]# chmod +x /etc/init.d/php-fpm |
测试PHP的配置文件是否正确合法
1 | [root@davex ~]# php-fpm -t |
启动 PHP 服务
完成生面的操作后就可以正式使用PHP服务了。
1 | [root@davex ~]# service php-fpm start |
只需要通过命令 ps -aux|grep php
查看是否成功。
开启 Zend OPcache 缓存
在 /usr/local/php7/etc/php.ini
中添加一句 zend_extension = opcache.so
再重启即可。
配置 Nginx
在 /etc/nginx/conf.d/default.conf
中做如下配置。
1 | server { |
接下来就大功告成了!!!