【Linux】centos7安装php7.4

news/2024/9/23 14:33:35/

环境说明

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

 


http://www.ppmy.cn/news/1501215.html

相关文章

nodejs - 接口 学习笔记

一、简介 1-1、是什么 接口是 前后端通信的桥梁 简单理解:一个接口就是 服务中的一个路由规则,根据请求响应结果 接口的英文单词是 API (Application Program Interface),所以有时也称之为 API 接口 这里的接口指的是『数据接口』&#xff…

LINUX操作系统安全

一、概述内容 操作系统负责计算机系统的资产管理,支撑和控制各种应用程序运行,为用户提供管理计算机系统管理接口。操作系统也是构成网络信息系统的核心关键组件,其安全可靠性决定了计算机系统的安全性和可靠性。 操作系统安全是指满足安全…

树与二叉树【数据结构】

前言 之前我们已经学习过了各种线性的数据结构,顺序表、链表、栈、队列,现在我们一起来了解一下一种非线性的结构----树 1.树的结构和概念 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一…

免费【2024】springboot 畅游游戏销售平台

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

什么材质的挖耳勺好用?硬核上佳产品分享!

耳道健康随着生活品质的提高,逐渐被大家重视。因为它会直接影响我们的听力和卫生健康,如果长时间不清理,很容易堵塞在耳膜里导致耳鸣头晕等状况。挖耳勺的材质非常多,有铁质、不锈钢、软硅胶等等,那么什么材质的挖耳勺…

【Android】广播机制

前言 广播机制是Android中一种非常重要的通信机制,用于在应用程序之间或应用程序的不同组件之间传递信息。广播可以是系统广播,也可以是自定义广播。广播机制主要包括标准广播和有序广播两种类型。 简介 在Android中,广播(Broa…

Scikit-learn简介

Scikit-learn 是一个广泛使用的开源机器学习库,它建立在 NumPy、SciPy 和 matplotlib 这些科学计算库之上,提供了简单高效的数据挖掘和数据分析工具。以下是 Scikit-learn 在机器学习项目中的一些典型应用: 1. **数据预处理**: …

Nvidia GPU驱动安装报错显卡与驱动不兼容(本身兼容)

最近在公司服务器上遇到了一个特别离谱的问题,就是在本身在nividia官网上面下载的匹配的显卡驱动,安装之后采用下面命令查看驱动显示: $ nvidia-smiNVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make su…