[toc]
php源码安装
1.下载源码包
php国内下载地址
export PHP_VERSION=7.3.19
wget https://mirrors.sohu.com/php/php-${PHP_VERSION}.tar.xz
php官网下载地址
wget https://www.php.net/distributions/php-${PHP_VERSION}.tar.xz
2.安装依赖包
# 安装开发者工具包
yum -y group install "Development Tools"
# 安装依赖包
yum -y install systemd-devel libacl libacl-devel libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel gmp-devel libxslt libxslt-devel openssl openssl-devel zlib zlib-devel pcre pcre-devel glib2 glib2-devel bzip2 bzip2-devel glibc glibc-devel liblzf liblzf-devel libzstd libzstd-devel freetype-devel readline-devel
3.解压缩包并编译安装
3.1 编译安装libzip
解决报错 configure: error: Please reinstall the libzip distribution
3.1.1 编译安装libzip需要安装高版本的cmake
# 下载源码包
wget https://github.com/Kitware/CMake/releases/download/v3.16.8/cmake-3.16.8.tar.gz
# 解压缩源码包
tar xf cmake-3.16.8.tar.gz
# 进入解压缩目录并编译安装
cd cmake-3.16.8/
./configure --prefix=/usr/local/cmake
gmake -j`nproc` && make install
# 导出PATH环境变量并使配置生效
echo 'export PATH=/usr/local/cmake/bin:$PATH' >/etc/profile.d/cmake.sh
source /etc/profile
# 验证
$ cmake --version
cmake version 3.16.8
3.1.2 编译安装libzip
# 下载源码包
wget https://libzip.org/download/libzip-1.7.1.tar.xz
# 解压缩源码包
tar xf libzip-1.7.1.tar.xz
# 进入解压缩目录并编译安装
cd libzip-1.7.1
mkdir build && cd build && cmake .. && make -j`nproc` && make install
3.2 编辑配置文件 /etc/ld.so.conf内容
解决报错configure: error: off_t undefined; check your library configuration
# 备份配置文件
cp /etc/ld.so.conf{,.bak}
# 向配置文件写入以下内容
cat >/etc/ld.so.conf <<EOF
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
EOF
# 使配置生效
ldconfig -v
3.3 解压缩包编译安装
可以使用
php -i | grep config查看php编译参数
# 创建www用户
useradd -M www -s /sbin/nologin
# 解压缩包
tar xf php-${PHP_VERSION}.tar.xz
# 进入解压后的目录
cd php-${PHP_VERSION}
# 编译安装
./configure --prefix=/usr/local/php${PHP_VERSION} \
--with-config-file-path=/usr/local/php${PHP_VERSION}/etc \
--with-fpm-user=www \
--with-fpm-group=www \
--with-fpm-systemd \
--with-fpm-acl \
--with-mysql-sock \
--with-mysqli \
--with-libxml-dir \
--with-openssl \
--with-mhash \
--with-pcre-regex \
--with-zlib \
--with-iconv \
--with-bz2 \
--with-curl \
--with-cdb \
--with-pcre-dir \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--with-onig \
--with-pdo-mysql \
--with-zlib-dir \
--with-readline \
--with-libxml-dir \
--with-xsl \
--with-pear \
--enable-fpm \
--enable-soap \
--enable-bcmath \
--enable-calendar \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--enable-ftp \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--enable-pdo \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--enable-mysqlnd-compression-support &&
make -j`nproc` && make install
ubuntu16 ./configure 可能遇到的报错 configure: error: Cannot find OpenSSL's libraries,先使用命令 find / -name libssl.so 找到文件 libssl.so,然后做一下软连接即可
ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib