Linux下编译安装PHP7.2
【准备工做】php
全部操做须要在root用户下html
本机测试案例系统信息:centos7.3mysql
安装路径:/usr/local/phpnginx
【安装PHP】c++
先安装以下依赖包sql
yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
下载PHP7.2.0安装包apache
wget http://cn2.php.net/distributions/php-7.2.12.tar.gz
解压php-7.2.12.tar.gz 而后进入目录,编译。命令以下:vim
tar -zxvf php-7.2.12.tar.gz cd php-7.2.12 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curl
说明:因为PHP7.2再也不支持mysql,而是用mysqli取代。所以会出现上面图中所示的warning。不过不要紧,若是须要安装php的mysql扩展,文章后面会有说明。centos
编译完成以后,执行安装命令:api
make && make install
说明:若是是在阿里云购买的云服务器,安装到这里可能会出现错误:
解决方法:看这里:
http://kccdzz.com/detail/13uat9xrd.html
安装过程大约须要20分钟时间
【配置PHP】
在以前编译的源码包中,找到 php.ini-production,复制到/usr/local/php下,并更名为php.ini:
cp php.ini-production /usr/local/php/php.ini
[可选项] 设置让PHP错误信息打印在页面上
vim /usr/local/php/php.ini display_errors = On
复制启动脚本:
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm
修改php-fpm配置文件:
cd /usr/local/php/etc cp php-fpm.conf.default php-fpm.conf vim php-fpm.conf
① 去掉 pid = run/php-fpm.pid 前面的分号
cd php-fpm.d cp www.conf.default www.conf vim www.conf
② 修改user和group的用户为当前用户(也能够不改,默认会添加nobody这个用户和用户组)
【启动PHP】
/etc/init.d/php-fpm start #php-fpm启动命令 /etc/init.d/php-fpm stop #php-fpm中止命令 /etc/init.d/php-fpm restart #php-fpm重启命令 ps -ef | grep php 或者 ps -A | grep -i php #查看是否已经成功启动PHP
【PHP7.2的MySQL扩展】
因为PHP7.2再也不支持mysql,而是用mysqli取代,若是须要安装php的mysql扩展,请看这里。
下载安装包:连接:https://pan.baidu.com/s/1bqDutYZ 密码:ae40
解压,并进入目录:
tar -zxvf mysql-24d32a0.tar.gz cd mysql-24d32a0 /usr/local/php/bin/phpize #使用phpize初始化
#编译mysql扩展,使用mysql native driver 做为mysql连接库
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd
接下来,安装:make && make install
最后,编辑php.ini文件,在最后面加入 extension=mysql.so 便可。
重启PHP,查看phpinfo()
【Linux PHP7的openssl扩展安装】
能够从新再次编译PHP,加上--enable-openssl参数便可。
可是若是只为了安装这一个扩展就去从新编译,未免有点麻烦,其实能够简单一点,只要安装openssl.so扩展就能够了。
(1)找到以前编译安装PHP的安装包,或者从php的官网下载php7(本例使用php7,其余版本的PHP相似)
(2)解压并进入文件夹
cd php7.0/ext/openssl
(3)运行 phpize:
/usr/local/php/bin/phpize
备注,若是出现以下错误:Cannot find config.m4. Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module 【解决办法】cp ./config0.m4 ./config.m4 便可解决
(4)编译和安装
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config make && make install
(5)而后进入最后提示的目录,查看文件
(6)将 openssl.so 复制到PHP的扩展目录下:
cp openssl.so /usr/local/php/include/php/ext
(7)找到php.ini,在最后面添加以下内容:
extension=openssl.so
(8)重启php-fpm和nginx/apache,查看phpinfo();
备注:/bin/php -i|grep ini 查看php.ini的位置