【Linux】centos7安装php7.4

news2024/12/26 6:14:39

环境说明
本文档在服务器不能连接互联网的情况下,进行安装php7.4及其扩展。

操作系统:centos7.6

架构:X86_64

一、安装依赖(可选)
说明:服务器能联网就可以通过 yum install 命令下载对应php需要的依赖。

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.上传并解压

# 解压
tar -zxvf php-7.4.30.tar.gz
# 切换到解压目录
cd php-7.4.30

2.编译安装
(1)编译配置

# 检测系统环境并准备一个定制化的编译配置
./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)编译安装

make -j && make install

成功后如图:

3.安装扩展
(1)安装 igbinary

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扩展

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

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

当前目录在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环境变量

export PHP_HOME=/soft/php74
export PATH= P A T H : PATH: PATH:PHP_HOME/bin:$PHP_HOME/sbin

#保存后刷新环境变量:
source /etc/profile

查看php版本

php -v
7.php-fpm的启动、停止和重启
php74-fpm取决于你复制到/etc/init.d/目录下文件名。

#启动
service php74-fpm start

#停止
service php74-fpm stop

#重启
service php74-fpm restart
四、遇到的问题
问题一:configure: error: Package requirements (libpng) were not met:

解决方案:安装libpng

先查看安装libpng的情况

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

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_52985087/article/details/140630751

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Git学习】windows系统下git init后没有看到生成的.git文件夹

[问题] git init 命令后看不到.git文件夹 [原因] 文件夹设置隐藏 [解决办法] Win11 win10

《Posterior Collapse and Latent Variable Non-identifiability》

看起来像一篇很有用的paper,而且还是23年的 没看完 后边看不懂了 Abstract 现有的解释通常将后验崩塌归因于由于变分近似而使用神经网络或优化问题。 而本文认为后验崩塌是潜在变量不可识别性的问题(a problem of latent variable non-identifiability) 本文证明了…

申请腾讯混元的API Key并且使用LobeChat调用混元AI

申请腾讯混元的API Key并且使用LobeChat调用混元AI 之前星哥写了一篇文章《手把手教拥有你自己的大模型ChatGPT和Gemini等应用-开源lobe-chat》搭建的开源项目,今天这篇文章教大家如何添加腾讯云的混元模型,并且使用LobeChat调用腾讯混元AI。 申请腾讯混…

Navicat通过ssh连接mysql

navicat 通过ssh连接mysql 对搭建完的mysql连接时,通过ssh连接的方法 需要确保mysql默认端口3306没有被防火墙阻拦 第一步 第二步 35027448270)] 需要注意的是乌班图系列的默认root的ssh是禁止的,应该用别的账户登录

【NACOS插件】使用官网插件更换NACOS数据库

说明 nacos 2.3.1默认支持mysql和derby数据库,如果想要支持其他数据库,可以通过使用插件方式实现。对于该插件的使用,官方说明文档较为粗略(不过也没问题,实际上整个过程就是很简单,只是使用者想复杂了),网…

mysql基础(jdbc)

1.Java连接数据库步骤 1.注册驱动 Class<?> driverManagerClass.forName("com.mysql.cj.jdbc.Driver"); 2.获取连接 Connection conDriverManager.getConnection("jdbc:mysql://localhost:3306/studymysql","root","123456"); …

ROM修改进阶教程------修改刷机包init.rc 自启用户自定义脚本的一些基本操作 代码格式与注意事项

在很多定制化固件中。我们需要修改系统的rc文件来启动自己的一些脚本。但有时候修改会不起作用,其具体原因在于权限与代码格式的问题。博文将系统的解析代码操作编写的注意事项与各种权限分别。了解以上. 轻松编写自定义启动脚本. 通过博文了解💝💝💝 1-------💝💝…

硬件模块常使用的外部中断

对于STM32来说&#xff0c;想要获取的信号是外部驱动的很快的突发信号 例1&#xff1a;旋转编码器的输出信号&#xff1a; 可能很久都不会拧它&#xff0c;不需要STM32做任何事情但是一拧它&#xff0c;就会有很多脉冲波形需要STM32接收信号是突发的&#xff0c;STM32不知道什…

3D布展平台主要有哪些功能?有什么特点?

3D布展平台是一种利用3D技术和虚拟现实&#xff08;VR&#xff09;技术&#xff0c;为用户提供线上虚拟展览和展示服务的平台。这些平台通常允许用户创建、设计和发布3D虚拟展厅&#xff0c;从而提供沉浸式的展览体验。以下是对3D布展平台的详细介绍&#xff1a; 一、主要功能 …

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发&#xff08;2&#xff09;—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序&#xff0c;用于从大恒相机采集图像&#xff0c;通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码&#xff1a; # version:…

VTK知识学习(27)- 图像基本操作(二)

1、图像类型转换 1&#xff09;vtkImageCast 图像数据类型转换在数字图像处理中会频繁用到。一些常用的图像算子(例如梯度算子)在计算时出于精度的考虑&#xff0c;会将结果存储为float或double类型&#xff0c;但在图像显示时&#xff0c;一般要求图像为 unsigned char 类型,…

在跨平台开发环境中构建高效的C++项目:从基础到最佳实践20241225

在跨平台开发环境中构建高效的C项目&#xff1a;从基础到最佳实践 引言 在现代软件开发中&#xff0c;跨平台兼容性和高效开发流程是每个工程师追求的目标。尤其是对于 C 开发者&#xff0c;管理代码的跨平台构建以及调试流程可能成为一项棘手的挑战。在本文中&#xff0c;我…

网络协议入门

一、概述 1、模型 为了减少协议设计的复杂性&#xff0c;大多数网络模型均采用分层的方式来组织。每一层都有自己的功能&#xff0c;就像建筑物一样&#xff0c;每一层都靠下一层支持。每一层利用下一层提供的服务来为上一层提供服务&#xff0c;本层服务的实现细节对上层屏蔽…

集成RabbitMQ+MQ常用操作

文章目录 1.环境搭建1.Docker安装RabbitMQ1.拉取镜像2.安装命令3.开启5672和15672端口4.登录控制台 2.整合Spring AMQP1.sun-common模块下创建新模块2.引入amqp依赖和fastjson 3.新建一个mq-demo的模块1.在sun-frame下创建mq-demo2.然后在mq-demo下创建生产者和消费者子模块3.查…

sentinel笔记10- 限流规则持久化(下)

上一篇整理过单向的持久化&#xff0c;sentinel笔记9- 限流规则持久化&#xff08;上&#xff09;-CSDN博客 本篇进行sentinel 改造&#xff0c;实现双向同步。 1 下载Sentinel源码 https://github.com/alibaba/Sentinel 2 dashboard 改造 2.1修改dashboard项目的pom.xml &…

微服务篇-深入了解 XXL-JOB 分布式任务调度的具体使用(XXL-JOB 的工作流程、框架搭建)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 XXL-JOB 调度中心概述 1.2 XXL-JOB 工作流程 1.3 Cron 表达式调度 2.0 XXL-JOB 框架搭建 2.1 XXL-JOB 调度中心的搭建 2.2 XXL-JOB 执行器的搭建 2.3 使用调度中心…

【jenkins插件】

1) 2) 3) 4) 5) 6) 参考: 知识库/运维/Jenkins/01-安装/13-插件.md zfoo/java-developer-document - 码云 - 开源中国

孔雀鱼和斑马鱼能一起养吗?

在观赏鱼的世界里&#xff0c;孔雀鱼和斑马鱼都是备受鱼友喜爱的热门品种。它们独特的外形和相对容易的饲养条件&#xff0c;使得不少养鱼新手跃跃欲试将它们混养在一起&#xff0c;但这其中实则有诸多因素需要考量。 从生存环境来看&#xff0c;孔雀鱼和斑马鱼有一定的兼容性…

踏踏实实练SQLday1

踏踏实实练SQLday1 1连续登录1.1查询连续登录3天以上的用户第一步去重第二步-开窗rownumber&#xff0c;用date减一下&#xff0c;对结果进行分组 -- over()开窗函数知识图谱第三步 1.2查询连续登录最大天数用户1.3某个用户连续登录天数注意先where一下这个用户的数据过滤出来.…

UM-Net:基于不确定性建模的息肉分割方法,对ICGNet的重新思考|文献速递-生成式模型与transformer在医学影像中的应用

Title 题目 UM-Net: Rethinking ICGNet for polyp segmentation with uncertainty modeling UM-Net&#xff1a;基于不确定性建模的息肉分割方法&#xff0c;对ICGNet的重新思考 01 文献速递介绍 结直肠癌&#xff08;CRC&#xff09;是男性中第三大最常见的恶性肿瘤&…