本文使用最新版本的PHP7.3.1来演示整个源码安装过程。下载PHP源码包访问PHP官网的源码包下载地址http://php.net/downloads.php。如图,PHP源码提供了三种压缩格式。通常,压缩文件越小,解压所需的时间和CPU消耗就越多。这里要根据安装PHP的服务器的硬件和带宽选择合适的。至于压缩格式,我选择下载php-7.3.1.tar.gz。下载源码有两种方式:服务器端使用wget命令直接下载。先下载到本地,再通过FTP上传到服务器。以第一种方法为例,在服务器端执行:wget-chttp://cn2.php.net/distributions/php-7.3.1.tar.gz,点击其中一个压缩包,右键在中国的cn2。php.net复制链接地址,可以获取另一个下载地址,获取方式如下图:http://cn2.php.net/get/php-7.3.1.tar.gz/from/this/mirror#here地址的下载命令,使用-O重命名源码包,否则下载的文件名为mirrorwget-Ophp-7.3.1.tar.gzhttp://cn2.php。net/get/php-7.3.1.tar.gz/from/this/mirror如需下载其他版本,只需修改下载地址中的版本号即可,如php-7.2.14.tar。广州。安装PHP,使用tar命令解压tar.gz压缩包:tar-xzvfphp-7.3.1.tar.gz安装PHP需要的扩展库yuminstall-ylibxml2*openssl*libcurl*libjpeg*libpng*freetype*libzip*libmcrypt*进入解压后的php-7.2.4文件夹,运行configure可执行文件:./configure--prefix=/mnt/php7--with-mysqli--with-iconv-dir--with-freetype-目录--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir--enable-simplexml--enable-xml--disable-rpath--enable-bcmath--enable-soap--enable-zip--with-curl--enable-fpm--with-fpm-user=www--with-fpm-group=www--enable-mbstring--enable-sockets--with-gd--with-openssl--with-mhash--enable-opcache--disable-fileinfo如果最后出现如上界面,说明安装成功。由于我是测试新服务器,所以依次遇到如下错误。如果没有问题,可以跳过这部分:Error1:configure:error:in`/root/php-7.3.1':configure:error:noacceptableCcompilerfoundin$PATH#missingccompiler,installGCCyuminstallgccerror2:checkingforlibzip...configure:error:systemlibzipmustbeupgradetoversion>=0.11#检查yum安装的libzip版本yumlistinstalled|greplibzip#发现yum安装的libzip版本太低,卸载低版本yumremovelibzip*源码安装libzip#源码编译安装最新版libzip#libzip官网地址:https://libzip.orgwgethttps://nih.at/libzip/libzip-1.5.1.tar.gztar-zxvflibzip-1.5.1.tar.gzcdlibzip-1.5.1##查看INSTALL.md里面有安装提示mkdirbuildcdbuildcmake..makemaketestmakeinstall以上命令是执行cmake..报错,使用yum安装gcc-c++yum-yinstallgcc-c++重新编译源码安装Cmake,参考这篇文章。错误三:error:off_tundefined;检查你的库配置#添加搜索路径到配置文件echo'/usr/local/lib64/usr/local/lib/usr/lib/usr/lib64'>>/etc/ld.so.conf#更新配置ldconfig-v这个错误的详细解释可以参考@codedog在https://segmentfault.com/q/10...中的回答。编译安装make&&makeinstallconfiguration输入/mnt/php7/sbin,启动php-fpm[root@localhostsbin]#./php-fpm[15-Jan-201903:32:21]ERROR:failedtoopenconfiguration文件'/mnt/php7/etc/php-fpm.conf':没有这样的文件或目录(2)[2019年1月15日03:32:21]错误:无法加载配置文件'/mnt/php7/etc/php-fpm.conf'[15-Jan-201903:32:21]ERROR:FPMinitializationfailed解决方法:#进入/mnt/php7/etc,复制php-fpm的配置文件[root@localhostetc]#cpphp-fpm.conf.defaultphp-fpm.conf#进入/mnt/php7/etc/php-fpm.d,复制php-fpm的子配置文件:[root@localhostphp-fpm.d]#cpwww.conf.defaultwww.conf在运行php-fpm之前,还需要修改其子配置文件中的用户和用户组。以nginx为例,编辑/mnt/php7/etc/php-fpm.d文件:user=nginxgroup=nginx现在就可以启动php-fpm了。在命令行运行php,需要将可执行文件复制到环境变量中:cp/mnt/php7/bin/php/usr/local/bin/php#在命令行查看php版本php-v
