CentOS7中编译PHP及开启JIT
实施过程
1、安装相关依赖
yum 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
2、下载并解压
建议查看官网release 版本
wget https://www.php.net/distributions/php-8.0.30.tar.gz
tar -zxvf php-8.0.30.tar.gz
3、预编译
1 | ./configure \ |
如果看到以下提示信息,说明 configure 成功。
4、安装
sudo make && make install
到安装目录查看版本
/usr/local/php80/bin/php -v
5、编辑配置
复制 php.ini
cp php.ini-production /usr/local/php80/etc/php.ini
复制 php-fpm
cp /usr/local/php80/etc/php-fpm.conf.default /usr/local/php80/etc/php-fpm.conf
cp /usr/local/php80/etc/php-fpm.d/www.conf.default /usr/local/php80/etc/php-fpm.d/www.conf
修改 php-fpm 配置,在 php-fpm.conf 中开启 pid = run/php-fpm.pid 配置项
6、配置启动 php-fpm
复制 php-fpm 的启动脚本cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
授权执行权限chmod +x /etc/init.d/php-fpm
启动 php-fpm/etc/init.d/php-fpm start
或者service php-fpm start
7、开启 openche 和 JIT
1 | zend_extension=/usr/local/php80/lib/php/extensions/no-debug-non-zts-20231015/opcache.so |
记录问题
Q: 编译时候出现错误,configure: error: Please reinstall the iconv library.
没有安装 iconv 库,iconv –version
iconv (GNU libiconv 1.17)
Copyright (C) 2000-2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Bruno Haible.
下载并编译
1 | wget https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz |
若还是出现问题,建议先--without-iconv
再后面 make 的时候
make ZEND_EXTRA_LIBS='-liconv'
Q: 编译时候出现错误,configure: error: Package requirements (libsodium >= 1.0.8) were not met:
libsodium 版本低了直接上yum install libsodium libsodium-devel
解决
不行的话可以继续手动编译
1 | wget https://github.com/jedisct1/libsodium/releases/download/1.0.18-RELEASE/libsodium-1.0.18.tar.gz |
Q: 提示 OpenSSL 找不到 / libssl.so.1.1: cannot open shared object file: No such file or directory:
请果断升级 openssl
1 | wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz |
CentOS7中编译PHP及开启JIT
https://blog.catooilg.com/2023/10/15/yuque/CentOS7中编译PHP及开启JIT/