下载php](https://www.php.net/distributions/php-7.3.8.tar.gz)

准备工作

本机案例系统信息:centos7.6

安装路径:/usr/local/php

安装PHP

安装依赖(可自己定制)

[root@mybcc ~]# yum -y 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 zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel
  • 1.

下载安装包并解压

[root@mybcc ~]#   https://www.php.net/distributions/php-7.3.8.tar.gz

 [root@mybcc ~]# tar xf php-7.3.8.tar.gz

 [root@mybcc ~]# cd php-7.3.8/
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

编译安装(./configure --help可查看编译参数)

[root@mybcc ~]# ./configure \
--prefix=/usr/local/php\
--enable-fpm\
--with-fpm-user=www\
--with-fpm-group=www\
--with-config-file-path=/usr/local/php/conf\
--disable-rpath\
--enable-soap\
--with-libxml-dir\
--with-xmlrpc\
--with-openssl\
--with-mhash\
--with-pcre-regex\
--with-zlib\
--enable-bcmath\
--with-bz2\
--enable-calendar\
--with-curl\
--enable-exif\
--with-pcre-dir\
--enable-ftp\
--with-gd\
--with-openssl-dir\
--with-jpeg-dir\
--with-png-dir\
--with-zlib-dir\
--with-freetype-dir\
--enable-gd-jis-conv\
--with-gettext\
--with-gmp\
--with-mhash\
--enable-mbstring\
--with-onig\
--with-mysqli=mysqlnd\
--with-pdo-mysql=mysqlnd\
--with-zlib-dir\
--with-readline\
--enable-shmop\
--enable-sockets\
--enable-sysvmsg\
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx\
--with-libxml-dir\
--with-xsl\
--enable-zip\
--with-pear
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

注意:如果在配置时报libzip版本太低,请卸载重新安装高版本(以下安装仅做参考,可自行编译)

[root@mybcc ~]# yum install http://rpms.remirepo.net/enterprise/7/remi/x86_64//libzip5-1.5.2-1.el7.remi.x86_64.rpm -y

[root@mybcc ~]# yum install http://rpms.remirepo.net/enterprise/7/remi/x86_64//libzip5-devel-1.5.2-1.el7.remi.x86_64.rpm -y
  • 1.
  • 2.
  • 3.

完成后,再进行编译及安装(重新./configure)

执行

[root@mybcc ~]#  make && make install
  • 1.

即可完成安装

安装后配置

完安装后php就已经安装在到了/usr/local/php目录下了,可查看安装是否成功

[root@mybcc ~]#  /usr/local/php/bin/php -v
  • 1.

编辑 /etc/profile 添加环境变量 ,添加到最后面

[root@mybcc ~]# PATH=$PATH:/usr/local/php/bin
[root@mybcc ~]#export PATH
  • 1.
  • 2.

然后更新环境变量。

[root@mybcc ~]# source /etc/profile
  • 1.

查看环境变量

[root@mybcc ~]# echo $PATH
  • 1.

查看php版本

[root@mybcc ~]# php -v
  • 1.

配置php-fpm

[root@mybcc php-7.3.8]#cp php.ini-production /usr/local/php/conf/php.ini
[root@mybcc php-7.3.8]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@mybccphp-7.3.8]#cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
  • 1.
  • 2.
  • 3.

将php-fpm加入启动服务

[root@mybcc ~]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
  • 1.

启动php-fpm

[root@mybcc ~]# systemctl start php-fpm.service
  • 1.

错误扩展

注意:如果编译时报:php7 configure: error: off_t undefined; check your library configuration错误,请执行以下操作:

# 添加搜索路径到配置文件
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置
ldconfig -v
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

注意:如果编译时报:/usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory 错误,请执行以下操作:

在安装完新版的 libzip 时可能会出现打不到 zipconf.h,手动复制一下 
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipc
  • 1.
  • 2.

启动时:如果报这种错误

Starting php-fpm [2-Feb-2019 21:02:25] ERROR: [pool www] cannot get uid for user 'www'
  • 1.

说明没有该用户,直接执行

groupadd www
useradd -g www www
  • 1.
  • 2.

 参考文献