CentOS搭建:PHP
目录
参考:
- centos7安装php7.x (opens new window)
- centos7升级php版本 (opens new window)
- CentOS7.x安装php7.x或php.8.x (opens new window)
# 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
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
2
3
4
5
6
# 安装Remi源RPM包
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
2
# 指定安装版本
# 查询可以安装的php74的源
yum repolist all | grep php74
2
# 安装yum管理工具包
yum install -y yum-utils
2
# 启用可以安装的remi-php74的源
yum-config-manager --enable remi-php74
# 检查是否成功启用可以安装的remi-php74的源
yum repolist enabled | grep remi-php74
2
3
4
# 安装PHP及扩展模块
# 安装PHP
# 查看yum源中有没有php74
yum search php74
# 或
yum list | grep php74
2
3
4
# 安装PHP7.4
yum -y install php74
2
# 查询已安装
yum list installed | grep php
2
php74
:PHP 7.4的主软件包,包含了PHP运行所需的基本文件。php74-php-cli
:PHP命令行接口(CLI)版本,允许用户在命令行下执行PHP脚本。php74-php-common
:PHP的通用文件,通常包含配置文件、错误报告机制等。php74-php-json
:JSON扩展,允许PHP解析和生成JSON数据。
# 查询版本
php74 -v
2
# 安装扩展模块
# 安装扩展
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
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'
设置php-fpm自启动并启动进程
Centos7下yum安装apache2.4和php7.3 (opens new window)
systemctl enable php74-php-fpm
systemctl start php74-php-fpm
2
systemctl enable php-fpm.service systemctl start php-fpm.service systemctl status php-fpm.service
在CentOS 7下安装PHP-FPM,可以按照以下步骤进行:
# 一、准备工作
确保系统已更新:
- 在开始安装之前,建议先更新系统包,以确保安装过程中不会出现依赖问题。
- 使用命令:
sudo yum update -y
# 二、安装EPEL仓库
**EPEL(Extra Packages for Enterprise Linux)**提供了许多额外的软件包,包括PHP-FPM。
安装EPEL仓库:
- 使用命令:
sudo yum install epel-release -y
- 使用命令:
# 三、安装PHP-FPM及其相关模块
安装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服务
启动PHP-FPM服务:
- 使用命令:
sudo systemctl start php-fpm
- 使用命令:
设置PHP-FPM服务开机自启动:
- 使用命令:
sudo systemctl enable php-fpm
- 使用命令:
# 五、配置PHP-FPM(可选)
编辑PHP-FPM配置文件:
- PHP-FPM的配置文件通常位于
/etc/php-fpm.d/www.conf
或/etc/php-fpm.conf
。 - 使用文本编辑器(如
vim
)打开配置文件:sudo vi /etc/php-fpm.d/www.conf
- PHP-FPM的配置文件通常位于
修改配置项:
- 根据需要修改以下配置项:
user
和group
:指定运行PHP-FPM的用户和组,通常为nginx
(如果Nginx也安装在系统上)。listen
:指定PHP-FPM监听的socket文件或端口,如unix:/var/run/php-fpm/php-fpm.sock
或127.0.0.1:9000
。
- 根据需要修改以下配置项:
保存并退出编辑器。
# 六、验证安装
检查PHP-FPM状态:
- 使用命令:
sudo systemctl status php-fpm
- 使用命令:
查看PHP版本:
- 使用命令:
php -v
- 使用命令:
创建测试文件:
在Nginx的Web根目录下(如
/var/www/html
)创建一个PHP文件,用于测试PHP-FPM是否正常工作。使用命令:
sudo vi /var/www/html/info.php
在文件中添加以下内容:
<?php phpinfo(); ?>
1
2
3保存并退出编辑器。
访问测试文件:
- 在浏览器中访问
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。