环境说明
本文档在服务器不能连接互联网的情况下,进行安装php7.4及其扩展。
操作系统:centos7.6
架构:X86_64
一、安装依赖(可选)
**说明:**服务器能联网就可以通过 yum install 命令下载对应php需要的依赖。
bash
yum -y install zlib zlib-devel libpng libpng-devel libzstd-devel sqlite-devel libcurl-devel libjpeg-devel oniguruma-devel libxslt-devel libzip-devel autoconf
二、下载php包
下载地址:PHP: Releases
下载7.4.30版本的php。
三 、安装php
1.上传并解压
bash
# 解压
tar -zxvf php-7.4.30.tar.gz
# 切换到解压目录
cd php-7.4.30
2.编译安装
(1)编译配置
bash
# 检测系统环境并准备一个定制化的编译配置
./configure \
--prefix=/soft/php74 \
--with-config-file-path=/soft/php74/etc \
--with-libdir=/usr/lib64 \
--with-freetype=/usr/include/freetype2/freetype/ \
--with-jpeg=/usr/lib64 \
--disable-rpath \
--with-curl \
--enable-gd \
--with-gettext \
--with-mysqli \
--with-openssl \
--with-openssl-dir \
--with-iconv \
--with-zip \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-xsl \
--with-zlib \
--with-bz2 \
--with-mhash \
--enable-fpm \
--enable-pdo \
--enable-session \
--enable-simplexml \
--enable-bcmath \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-mysqlnd \
--enable-xml \
--enable-phar
(2)编译安装
bash
make -j && make install
成功后如图:
3.安装扩展
(1)安装 igbinary
bash
# 1.下载igbinary的包
# 2.上传igbinary包并解压
tar -zxvf igbinary-3.2.7.tgz
# 3.切换到 igbinary-3.2.7
cd igbinary-3.2.7
# 4.执行phpize命令(根据自己目录相应替换)
/soft/php74/bin/phpize
# 5.编译安装
./configure --with-php-config=/soft/php74/bin/php-config
make -j && make install
可参考我安装 igbinary 的具体文章:【Linux】安装PHP扩展-igbinary_linux igbinary-CSDN博客
(2)安装redis扩展
bash
# 1.下载redis的包
# 2.上传redis包并解压
tar -zxvf redis-5.3.7.tgz
# 3.切换到 redis-5.3.7
cd redis-5.3.7
# 4.执行phpize命令(根据自己目录相应替换)
/soft/php74/bin/phpize
# 5.编译安装
./configure --with-php-config=/soft/php74/bin/php-config --enable-redis-igbinary=yes --enable-redis-lzf=yes --enable-redis-zstd=yes
make -j && make install
可参考我安装 redis 的具体文章:【Linux】安装PHP扩展-redis-CSDN博客
(3)安装swoole
bash
# 1.下载swoole的包
# 2.上传swoole包并解压
tar -zxvf swoole-4.8.11.tgz
# 3.切换到 swoole-4.8.11
cd swoole-4.8.11
# 4.执行phpize命令(根据自己目录相应替换)
/soft/php74/bin/phpize
# 5.编译安装
./configure --with-php-config=/soft/php74/bin/php-config --enable-sockets=yes --enable-openssl=yes --enable-http2=yes --enable-mysqlnd=yes --enable-swoole-json=yes --enable-swoole-curl=yes
make -j && make install
4.配置php
bash
# 当前目录在php-7.4.30目录执行
cp php.ini-production /soft/php74/etc/php.ini
cp /soft/php74/etc/php-fpm.conf.default /soft/php74/etc/php-fpm.conf
cp soft/php74/etc/php-fpm.d/www.conf.default /soft/php74/etc/php-fpm.d/www.conf
#复制启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php74-fpm
# 给予可执行权限
chmod +x /etc/init.d/php74-fpm
5.配置php.ini(可选)
自行根据需要进行配置,如限制上传文件大小、配置安装扩展目录等。
6.配置环境变量
在 /etc/profile文件末尾添加php环境变量
bash
export PHP_HOME=/soft/php74
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
#保存后刷新环境变量:
source /etc/profile
# 查看php版本
php -v
7.php-fpm的启动、停止和重启
php74-fpm取决于你复制到/etc/init.d/目录下文件名。
bash
#启动
service php74-fpm start
#停止
service php74-fpm stop
#重启
service php74-fpm restart
四、遇到的问题
问题一:configure: error: Package requirements (libpng) were not met:
解决方案:安装libpng
先查看安装libpng的情况
bash
rpm -qa|grep libpng
如图所示:安装了libpng但是没安装libpng-devel,安装版本需要对应否则会安装不上,因此安装libpng-devel即可解决。命令:rpm -ivh libpng-devel-1.5.13-7.el7_2.x86_64.rpm
libpng-devel-1.5.13-7.el7_2.x86_64.rpm可自行下载或私信。
安装完成,在执行php的 ./configure 配置命令即可。
问题二:configure: error:Package requirements (freetype2) met:were not met:
解决方案:安装freetype2
和libpng的解决方案一致。
安装 freetype-devel
问题三: configure: error: Package requirements (oniguruma) were not met
问题四:configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met
解决参考博客:【Linux】centos7安装PHP7.4报错:libzip版本过低_centos php7.4 configure: error: package requiremen-CSDN博客