- 首先下载PHP7安装包,使用wget http://am1.php.net/distributions/php-7.2.0.tar.bz2,或者直接访问下载,然后ftp到linux服务器
- 解压压缩包,tar –xjf PHP-7.0.2.tar.bz2
- 进入文件夹,cd PHP-7.0.2 ,安装必要的依赖工具,
yum -y@H_403_10@ install libjpeg libjpeg-devel@H_403_10@ libpng libpng-devel@H_403_10@ freetype freetype-devel@H_403_10@ libxml2 libxml2-devel@H_403_10@ zlib zlib-devel@H_403_10@ curl curl-devel@H_403_10@ openssl openssl-devel@H_403_10@
这里主要是升级,一般在PHP5都安装了,所以这一步可以省略
4. 安装几个依赖(必须安装,否则后面无法生成apache所用的libPHP7.so文件)
yum -y@H_403_10@ install perl
yum –y install perl-devel@H_403_10@
yum -y@H_403_10@ install httpd-devel@H_403_10@
find /usr -name@H_403_10@ apxs 取得所用路径,后面编译时用到。
5.准备编译工作
.@H_403_10@/configure --@H_403_10@prefix=@H_403_10@/usr/local@H_403_10@/PHP7 --@H_403_10@with@H_403_10@-curl@H_403_10@ --@H_403_10@with@H_403_10@-freetype@H_403_10@-dir@H_403_10@ --@H_403_10@with@H_403_10@-gd@H_403_10@ --@H_403_10@with@H_403_10@-gettext@H_403_10@ --@H_403_10@with@H_403_10@-iconv@H_403_10@-dir@H_403_10@ --@H_403_10@with@H_403_10@-kerberos@H_403_10@ --@H_403_10@with@H_403_10@-libdir@H_403_10@=@H_403_10@lib64 --@H_403_10@with@H_403_10@-libxml@H_403_10@-dir@H_403_10@ --@H_403_10@with@H_403_10@-MysqLi@H_403_10@ --@H_403_10@with@H_403_10@-openssl@H_403_10@ --@H_403_10@with@H_403_10@-pcre@H_403_10@-regex@H_403_10@ --@H_403_10@with@H_403_10@-pdo@H_403_10@-MysqL@H_403_10@ --@H_403_10@with@H_403_10@-pdo@H_403_10@-sqlite@H_403_10@ --@H_403_10@with@H_403_10@-pear@H_403_10@ --@H_403_10@with@H_403_10@-png@H_403_10@-dir@H_403_10@ --@H_403_10@with@H_403_10@-xmlrpc@H_403_10@ --@H_403_10@with@H_403_10@-xsl@H_403_10@ --@H_403_10@with@H_403_10@-zlib@H_403_10@ --@H_403_10@enable-fpm@H_403_10@ --@H_403_10@enable-bcmath@H_403_10@ -enable@H_403_10@-inline@H_403_10@-optimization@H_403_10@ --@H_403_10@enable-gd@H_403_10@-native@H_403_10@-ttf@H_403_10@ --@H_403_10@enable-mbregex@H_403_10@ --@H_403_10@enable-mbstring@H_403_10@ --@H_403_10@enable-opcache@H_403_10@ --@H_403_10@enable-pcntl@H_403_10@ --@H_403_10@enable-shmop@H_403_10@ --@H_403_10@enable-soap@H_403_10@ --@H_403_10@enable-sockets@H_403_10@ --@H_403_10@enable-sysvsem@H_403_10@ --@H_403_10@enable-xml@H_403_10@ --@H_403_10@enable-zip@H_403_10@ --@H_403_10@enable-pcntl@H_403_10@ --@H_403_10@with@H_403_10@-curl@H_403_10@ --@H_403_10@with@H_403_10@-fpm@H_403_10@-user@H_403_10@=@H_403_10@Nginx --@H_403_10@enable-ftp@H_403_10@ --@H_403_10@enable-session@H_403_10@ --@H_403_10@enable-xml@H_403_10@ --@H_403_10@with@H_403_10@-apxs2@H_403_10@=@H_403_10@/usr/bin/apxs
**注意:其中的 –enable-gd-native-ttf 可以不安装,处理图形用的,如果有需求可以以后以扩展形式装
–with-apxs2=/usr/bin/apxs 后面的路径改为第4步得到的路径
–prefix=/usr/local/PHP7 单独安装在PHP7的文件夹,避免和PHP5冲突**
6.编译
make
这一步容易出现很多问题,
如果遇到譬如:undefine 。。。。
/ext/cli./PHP …
Openssl
等等错误,而且确定安装了相关的模块,则一般清除之前的编译,删除相关文件后重新编译
make clean
rm –rf /usr/local@H_403_10@/PHP7
一般都可以解决问题。
其他的错误可以参照这篇博客查阅这篇博客:
http://www.cnblogs.com/sweetXiaoma/p/5855732.html
http://www.linuxidc.com/Linux/2017-08/146220.htm
关键还是自行解决,介于linux发行版太多,而且每台服务器的环境配置都不同,所以会遇到很多奇葩的问题。
7.安装
Make install
8.准备配置文件
cp@H_403_10@ PHP.ini@H_403_10@-developement /etc/PHP.ini@H_403_10@ //根据实际情况,可以使用production或者development默认配置
cp@H_403_10@ /usr/local/PHP7/etc/PHP-fpm.conf@H_403_10@.default@H_403_10@ /usr/local/PHP7/etc/PHP-fpm.conf@H_403_10@
cp@H_403_10@ /usr/local/PHP7/etc/PHP-fpm.d@H_403_10@/www.conf@H_403_10@.default@H_403_10@ /usr/local/PHP7/etc/PHP-fpm.d@H_403_10@/www.conf@H_403_10@
9.需要修改apache的配置文件
Vi /etc/httpd/conf/httpd.conf 找到LoadModule PHP7_module modules/libPHP7.so,如果没有手动加上,
将LoadModule PHP5_module modules/libPHP5.so注释掉
cp /etc/httpd/conf.d/PHP.conf /etc/httpd/conf.d/PHP.conf_5
Vi /etc/httpd/conf.d/PHP.conf
改为下面这样:(将涉及到PHP5的注释掉,改为PHP7相关模块)
<IfModule prefork.c>@H_403_10@
LoadModule@H_403_10@@H_403_10@ PHP7_module modules/libPHP7.so
</IfModule>@H_403_10@
<Files ".user.ini">@H_403_10@
<IfModule mod_authz_core.c>@H_403_10@
Require@H_403_10@ all@H_403_10@ denied
</IfModule>@H_403_10@
<IfModule !mod_authz_core.c>@H_403_10@
Order@H_403_10@@H_403_10@ allow,deny
Deny@H_403_10@@H_403_10@ from all@H_403_10@
Satisfy@H_403_10@ All@H_403_10@
</IfModule>@H_403_10@
</Files>@H_403_10@
DirectoryIndex@H_403_10@ index.PHP
# mod_PHP options@H_403_10@
<IfModule mod_PHP7.c>@H_403_10@
<FilesMatch \.PHP$>@H_403_10@
SetHandler@H_403_10@@H_403_10@ application/x-httpd-PHP
</FilesMatch>@H_403_10@
PHP_value@H_403_10@ session.save_handler "files"@H_403_10@
PHP_value@H_403_10@ session.save_path "/var/lib/PHP/session"@H_403_10@
PHP_value@H_403_10@ soap.wsdl_cache_dir "/var/lib/PHP/wsdlcache"@H_403_10@
</IfModule>@H_403_10@
10.重启apache服务器 service httpd restart