本文记录下载最新版的 PHP7.4.6 的编译过程,系统环境为 Unbutn 16.04 x64。
安装依赖库
apt install libxml2-dev
apt install libreadline-dev
apt install libzip-dev
apt install libssl-dev
apt install libsqlite3-dev
apt install pkg-config
apt install open-ssl
apt install libpng-dev
可选:
apt-get install libevent2-dev -y
libevent2 如果 apt 安装失败,可以使用源码编译,官网地址:https://libevent.org/
编译顺序:./configure,make,make install
其他几个需要编译安装的库:
bzip2:https://sourceforge.net/projects/bzip2/
curl:https://curl.haxx.se/download.html
onig:https://github.com/kkos/oniguruma/releases
bzip 和 curl 的编译安装方法:./configure,make,make install
onig 也是一样,只是完成后需要给 libonig.so.5 文件做个软链接:
ln -s /usr/local/lib/libonig.so.5 /usr/lib/libonig.so.5
编译 PHP
./configure \
--prefix=/opt/programs/php \
--with-config-file-path=/opt/programs/php/etc \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml \
--with-xmlrpc \
--with-openssl \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--enable-ftp \
--enable-gd \
--with-openssl \
--with-jpeg \
--with-webp \
--with-zlib \
--with-freetype \
--enable-gd-jis-conv \
--with-gettext \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-pdo-sqlite \
--with-readline \
--enable-pcntl \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-zip \
--enable-mysqlnd-compression-support \
--enable-opcache
configure 过程会检测相应的包是否齐全,如果出现错误,寻找对应的包安装上即可。
这里在 make 之前,遇到了找不到 phar.phar 文件的错误,所以先这样:
cp /opt/php-source/php-7.4.6/ext/phar/phar.php /opt/php-source/php-7.4.6/ext/phar/phar.phar
然后再 make && make install
修改环境变量
编译成功后,将 php 的 bin 目录写入环境变量 /etc/profile 中:
export PATH="/opt/programs/php/bin:$PATH"
保存后:
source /etc/profile
安装其他库
1)event 库
安装步骤:
phpize
./configure
make
make install
2) redis 库
安装步骤:
phpize
./configure
make
make install
修改 PHP 配置
最后根据需要,修改 php.ini 文件,新增如下内容:
extension_dir="/opt/programs/php/lib/php/extensions/no-debug-non-zts-20190902"
extension=redis
extension=event
zend_extension=opcache.so
创建 Init 启动文件,便于管理 php-fpm
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7.4-fpm
chmod +x /etc/init.d/php7.4-fpm
#启动php-fpm
/etc/init.d/php7.4-fpm start