【Linux】centos7安装php7.4

环境说明

本文档在服务器不能连接互联网的情况下,进行安装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

解决参考博客:【Linux】安装php7.4报错configure: error: Package requirements (oniguruma) were not met_php安装error requirement oniquruma-CSDN博客

问题四: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博客

相关推荐
十日十行13 小时前
Linux和window共享文件夹
linux
Sinclair17 小时前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing20 小时前
WSL+Cpp开发环境配置
linux
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean2 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
蝎子莱莱爱打怪2 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
茶杯梦轩2 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
崔小汤呀2 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应2 天前
vi编辑器使用
linux·后端·操作系统