这是一个PHP 7.2.20版本的源代码压缩包,可用于在Linux或其他类Unix系统上编译安装该特定版本的PHP。
编译 ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/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 时出现错误:configure: error: system libzip must be upgraded to version >=0.11。 使用Yum安装的libzip版本为0.10,无法满足需求。
解决方法如下:
一、先删除现有的libzip和其开发库文件
SSH执行命令 yum remove libzip -y 和 yum remove libzip-devel -y。
二、手动下载并编译安装最新版的libzip。例如使用wget https://nih.at/libzip/libzip-1.2.0.tar.gz 下载,然后解压后进入目录,运行 ./configure, make && make install 安装。
如果遇到错误 off_t undefined; check your library configuration 时:
根据报错信息分析未定义的类型 off_t。这个类型是在头文件 unistd.h 中定义的,在64位系统中编译成 long long int 。需要将针对64位系统的库路径添加到配置文件 /etc/ld.so.conf ,例如:echo /usr/local/lib64 >> /etc/ld.so.conf。
然后更新动态链接器缓存: ldconfig -v。
如果再次遇到错误,如 /usr/local/include/zip.h:59:21: fatal error: zipconf.h: No such file or directory,则需要把缺少的头文件复制到相应位置。例如 cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/ 进行。
安装完成后:
- 复制配置文件:cp php.ini-production /usr/local/php/lib/php.ini 和 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
- 创建符号链接 ln -s /usr/local/php/sbin/php-fpm /usr/local/bin 以便使用。
- 修改php的fpm配置文件:cd /usr/local/php/etc/php-fpm.d,vim www.conf, 根据需要调整相关参数如监听地址、用户组等。
安装systemd服务:
进入 php源码目录 sapi/fpm 复制服务单元到 systemd 目录 cp php-fpm.service /usr/lib/systemd/system/。
启动php-fpm: systemctl start php-fpm,查看状态 systemctl status php-fpm -l。