【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博客

相关推荐
小宋102137 分钟前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
m0_6090004240 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
小安运维日记2 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
kejijianwen3 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
CoolTiger、5 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
m0_741768855 小时前
使用docker的小例子
运维·docker·容器
学习3人组6 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
厨 神6 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0666 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen016 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器