CentOS搭建:PHP

12/31/2023 Linux

目录


参考:


# CentOS搭建:PHP

# 环境依赖

类别 应用 版本 包名 包类型 备注
系统 Linux CentOS 7.x / / /
软件 源码二进制包 官网下载 (opens new window)
源码二进制包
依赖

# 源版本的区别

以下是rh-php7、sclo-php7和remi-php7的区别对比表格:

项目 rh-php7 sclo-php7 remi-php7
提供者/维护者 Red Hat官方 Software Collections (SCLo) Remi Collet
基于版本 Red Hat特定的PHP 7版本 更广泛的PHP版本集合,包括PHP 7 PHP 7及其后续版本,持续更新
兼容性 与Red Hat系统深度集成 提供与多个版本的操作系统和软件的兼容性 提供跨多个Linux发行版的兼容性
软件仓库 使用Red Hat的软件仓库 使用SCLo的软件仓库 使用Remi的个人软件仓库
更新频率 跟随Red Hat的发布周期 跟随SCLo的发布周期,可能更频繁 持续更新,通常比官方仓库更快
安装便捷性 集成在Red Hat的软件包管理器中 需要安装SCLo仓库 需要添加Remi的个人仓库
社区与支持 Red Hat社区和企业支持 SCLo社区支持 Remi Collet提供的社区支持
附加特性 可能包含Red Hat特定的优化和修复 提供多种PHP版本和扩展的集合 提供广泛的PHP扩展和最新的安全修复
使用场景 适用于Red Hat系统上的PHP 7应用 适用于需要多种PHP版本的应用开发和测试 适用于需要最新PHP版本和扩展的生产环境

以上表格仅涵盖了这三个PHP 7版本之间的主要区别。在实际使用时,开发者还需要考虑项目的具体需求、服务器的操作系统和现有的软件环境来选择适合的PHP版本。

# 已安装卸载

# 查询已安装
yum list installed | grep php
# 删除已安装
sudo yum remove php
sudo yum remove php-*
# 查看是否已删除
yum list installed | grep php
1
2
3
4
5
6
7

# 添加安装源

使用Remi源安装:首先安装EPEL源,然后安装Remi源RPM包,安装完成后,可以通过YUM命令安装或更新软件包。

  • EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社区打造,为 RHEL 及衍生发行版操作系统提供高质量软件包的项目。
  • REMI是由REMI Collect创建和维护的免费使用存储库。REMI repository的主要目标是为Fedora和Enterprise Linux操作系统提供高质量软件包的项目,特别是PHP和相关扩展
# 安装EPEL源
sudo yum install epel-release -y 
# 或
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y 
# 或
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
1
2
3
4
5
6
# 安装Remi源RPM包
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y 
1
2

# 指定安装版本

# 查询可以安装的php74的源
yum repolist all | grep php74
1
2

image-20241022173025556

# 安装yum管理工具包
yum install -y yum-utils
1
2
# 启用可以安装的remi-php74的源
yum-config-manager --enable remi-php74
# 检查是否成功启用可以安装的remi-php74的源
yum repolist enabled | grep remi-php74
1
2
3
4

image-20241022173119460

# 安装PHP及扩展模块

# 安装PHP

# 查看yum源中有没有php74
yum search php74
# 或
yum list | grep php74
1
2
3
4
# 安装PHP7.4
yum -y install php74
1
2
# 查询已安装
yum list installed | grep php
1
2

image-20241022194835789

  • php74:PHP 7.4的主软件包,包含了PHP运行所需的基本文件。
  • php74-php-cli:PHP命令行接口(CLI)版本,允许用户在命令行下执行PHP脚本。
  • php74-php-common:PHP的通用文件,通常包含配置文件、错误报告机制等。
  • php74-php-json:JSON扩展,允许PHP解析和生成JSON数据。
# 查询版本
php74 -v
1
2

image-20241022194927867

# 安装扩展模块

# 安装扩展 
sudo yum install php74-php-pdo \
                 php74-php-mysqlnd \
                 php74-php-filter \
                 php74-php-openssl \
                 php74-php-mbstring \
                 php74-php-zlib \
                 php74-php-curl \
                 php74-php-gd \
                 php74-php-iconv
1
2
3
4
5
6
7
8
9
10

常用扩展模块解释:

  • php74-php-devel:PHP的开发包,包含了开发PHP扩展所需的工具和头文件。

  • php74-php-embedded:PHP的嵌入式SAPI(Server API),允许PHP代码被嵌入到其他应用程序中。

  • php74-php-fpm:FastCGI Process Manager(FPM),用于处理PHP请求的高效方式,常用于Web服务器环境。

  • php74-php-gd:GD库扩展,用于处理图像,如生成缩略图、添加水印等。

  • php74-php-mbstring:多字节字符串函数库,支持多种编码的字符串操作。

  • php74-php-mysqlnd:MySQL Native Driver(mysqlnd),PHP与MySQL数据库交互的改进驱动。

  • php74-php-pdo:PHP Data Objects(PDO),提供了数据库访问抽象层,可以访问多种数据库。

  • php74-php-opcache:OPcache扩展,用于优化PHP代码的执行,通过缓存预编译的字节码。

  • php74-php-xml:XML解析器扩展,允许PHP解析和操作XML文档。

  • php74-php-soap:Simple Object Access Protocol(SOAP)扩展,用于在PHP中实现SOAP协议的Web服务。

  • php74-php-bcmath:BC Math函数库,用于执行高精度数学运算。

  • php74-php-pecl-geoip:PECL提供的GeoIP扩展,用于根据IP地址获取地理位置信息。

  • php74-php-recode:字符集转换扩展。

  • php74-php-snmp:SNMP(Simple Network Management Protocol)扩展,用于网络管理。

  • php74-php-imagick:ImageMagick扩展,用于处理图像,提供了比GD库更强大的功能。

  • php74-php-pecl-zip:PECL提供的ZIP扩展,用于处理ZIP压缩文件。

验证安装:

安装完成后,您可以通过运行php -m命令来查看已安装的PHP模块列表,以验证所需扩展是否已正确安装。

例如:验证安装模块:pdo, pdo_mysql, json, filter, openssl, mbstring, zlib, curl, gd, iconv

php74 -m | grep -E 'PDO|pdo_mysql|json|filter|openssl|mbstring|zlib|curl|gd|iconv'
1

设置php-fpm自启动并启动进程

Centos7下yum安装apache2.4和php7.3 (opens new window)

systemctl enable php74-php-fpm
systemctl start php74-php-fpm
1
2

systemctl enable php-fpm.service systemctl start php-fpm.service systemctl status php-fpm.service


在CentOS 7下安装PHP-FPM,可以按照以下步骤进行:

# 一、准备工作

  1. 确保系统已更新

    • 在开始安装之前,建议先更新系统包,以确保安装过程中不会出现依赖问题。
    • 使用命令:sudo yum update -y

# 二、安装EPEL仓库

  1. **EPEL(Extra Packages for Enterprise Linux)**提供了许多额外的软件包,包括PHP-FPM。

  2. 安装EPEL仓库

    • 使用命令:sudo yum install epel-release -y

# 三、安装PHP-FPM及其相关模块

  1. 安装PHP-FPM

    • 可以选择安装PHP以及一些常用的扩展模块,如PHP-MySQLnd、PHP-GD等。

    • 使用命令:sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-pear php-bcmath -y

    • 说明:

      • php:PHP解释器。
      • php-fpm:PHP-FPM(FastCGI Process Manager),用于管理PHP进程。
      • php-mysqlnd:PHP的MySQL Native Driver,用于连接MySQL数据库。
      • php-gd:PHP的GD库,用于图像处理。
      • php-mbstring:PHP的Multibyte String函数库,支持多字节字符串操作。
      • php-xml:PHP的XML扩展,用于处理XML数据。
      • php-pear:PHP的PEAR包管理器,用于安装和管理PHP扩展和库。
      • php-bcmath:PHP的任意精度数学函数库。

# 四、启动并启用PHP-FPM服务

  1. 启动PHP-FPM服务

    • 使用命令:sudo systemctl start php-fpm
  2. 设置PHP-FPM服务开机自启动

    • 使用命令:sudo systemctl enable php-fpm

# 五、配置PHP-FPM(可选)

  1. 编辑PHP-FPM配置文件

    • PHP-FPM的配置文件通常位于/etc/php-fpm.d/www.conf/etc/php-fpm.conf
    • 使用文本编辑器(如vim)打开配置文件:sudo vi /etc/php-fpm.d/www.conf
  2. 修改配置项

    • 根据需要修改以下配置项:
      • usergroup:指定运行PHP-FPM的用户和组,通常为nginx(如果Nginx也安装在系统上)。
      • listen:指定PHP-FPM监听的socket文件或端口,如unix:/var/run/php-fpm/php-fpm.sock127.0.0.1:9000
  3. 保存并退出编辑器

# 六、验证安装

  1. 检查PHP-FPM状态

    • 使用命令:sudo systemctl status php-fpm
  2. 查看PHP版本

    • 使用命令:php -v
  3. 创建测试文件

    • 在Nginx的Web根目录下(如/var/www/html)创建一个PHP文件,用于测试PHP-FPM是否正常工作。

    • 使用命令:sudo vi /var/www/html/info.php

    • 在文件中添加以下内容:

      <?php
      phpinfo();
      ?>
      
      1
      2
      3
    • 保存并退出编辑器。

  4. 访问测试文件

    • 在浏览器中访问http://your_server_ip/info.php(将your_server_ip替换为服务器的实际IP地址)。
    • 如果配置正确,应该能够看到PHP信息页面,说明PHP-FPM安装成功。

# 注意事项

  • 防火墙设置:确保防火墙允许HTTP(80端口)和HTTPS(443端口)的访问。
  • SELinux设置:如果SELinux处于强制模式,可能需要调整SELinux策略以允许Nginx和PHP-FPM协同工作。
  • 权限问题:确保Nginx用户(如nginx)有权访问PHP-FPM的socket文件或端口。

通过以上步骤,您可以在CentOS 7下成功安装和配置PHP-FPM。

上次更新时间: 4/2/2025, 3:39:26 AM