适用于 CentOS、Debain 与 Ubuntu 系统进行编译安装与部署
在 CentOS 下执行安装
yum install -y libacl libacl-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel enchant enchant-devel gd gd-devel gmp gmp-devel libmcrypt libmcrypt-devel libtidy libtidy-devel libxslt libxslt-devel argon2 libargon2-devel libtidy libtidy-devel gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
如果是 Debain 或 Ubuntu 下执行安装
apt-get install libacl1 libacl1-dev libxml2 libxml2-dev libbz2-dev libcurl3 libcurl3-dev enchant libenchant-dev libjpeg-dev libpng-dev libxpm-dev libfreetype6-dev libgmp-dev libgmp3-dev libmcrypt-dev libtidy-dev libxslt-dev libssl-dev libargon2-0 libargon2-0-dev build-essential libpcre3 libpcre3-dev autoconf zlib1g-dev
使用 Debian x86 版本出现 `GMP` 错误,则需要手动建立软链接
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
准备编译源码
- PHP 官网 下载需要的版本源码,建议使用最新稳定版本
将准备好的源码包解压,进入到源码目录下
配置安装
默认下,可以直接使用执行,但是很多模块是不包含在内的
./configure
为了减少以后再次配置编译,以下这些配置都是我们常用到的
./configure \
--disable-debug \
--disable-rpath \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-fpm-acl \
--with-libxml-dir \
--with-openssl \
--with-kerberos \
--with-pcre-regex \
--with-zlib \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-dba \
--with-enchant \
--enable-exif \
--disable-fileinfo \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-xpm-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-mbstring \
--enable-mbregex \
--with-mysqli \
--enable-embedded-mysqli \
--with-mysql-sock=/tmp/mysql.sock \
--enable-pcntl \
--with-pdo-mysql \
--enable-session \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--with-tidy \
--enable-wddx \
--with-xmlrpc \
--enable-xml \
--with-iconv-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd \
--without-pear \
--enable-shared \
--with-password-argon2
执行后,配置检测无误就可以编译与安装了
make && make install
修改 /usr/local/etc/php-fpm.conf 文件
;pool name ('www' here)
[nginx]
user = nginx
group = nginx
include=/usr/local/etc/php-fpm.d/*.conf