CentOS 7 开启 PHP:稳定高效的建站基石搭建指南
在 CentOS 7 服务器上部署 PHP 环境,是构建动态网站或应用的核心一步,作为长期维护 CentOS 服务器的站长,我深知一个稳定、安全且经过优化的 PHP 环境对网站性能和用户体验的重要性,下面分享基于 CentOS 7 开启并配置 PHP 的详细流程。
基础准备:系统更新与仓库配置

系统更新:
sudo yum update -y
确保系统所有软件包处于最新状态,修补已知漏洞,这是安全部署的第一步。
启用 EPEL 仓库:
sudo yum install epel-release -y
EPEL 提供了大量 CentOS 基础仓库之外的优质软件包。
添加 Remi 仓库 (推荐):
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
Remi 仓库提供了更新、更丰富的 PHP 版本选择(如 PHP 5.4 到 8.x),方便我们安装特定版本或最新稳定版。

安装 PHP 及其核心扩展
启用 Remi 仓库中的目标 PHP 版本流: 假设我们需要安装广泛兼容且稳定的 PHP 7.4:
sudo yum-config-manager --enable remi-php74
(如需 PHP 8.1:
sudo yum-config-manager --enable remi-php81)安装 PHP 及常用扩展:
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pecl-apcu php-opcache -y
php: PHP 核心包php-cli: 命令行接口php-fpm: FastCGI 进程管理器 (搭配 Nginx 时必需)php-mysqlnd: 原生 MySQL 数据库驱动php-gd: 图像处理库php-mbstring: 多字节字符串处理php-curl: 支持 cURL 功能php-xml: XML 解析php-pecl-apcu: 用户缓存 (提升性能)php-opcache: PHP 内置字节码缓存 (极大提升性能)
根据您的应用需求(如 WordPress, Laravel, Drupal 等),可能还需安装
php-json,php-pdo,php-soap等扩展。
配置 Web 服务器与 PHP 协作

场景 A:使用 Apache (httpd)
安装 Apache (如未安装):
sudo yum install httpd -y
PHP 模块已自动集成:
yum install php会默认安装php模块供 Apache 使用。重启 Apache 生效:
sudo systemctl restart httpd
验证: 创建测试文件
/var/www/html/info.php:<?php phpinfo(); ?>
访问
http://your_server_ip/info.php,应显示详细的 PHP 配置信息。务必在验证后删除此文件!
场景 B:使用 Nginx
安装 Nginx (如未安装):
sudo yum install nginx -y
配置 PHP-FPM: 编辑
/etc/php-fpm.d/www.conf:user = nginx group = nginx listen = /run/php-fpm/www.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
保存后启动并设置开机启动 PHP-FPM:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
配置 Nginx 处理 PHP 请求: 编辑网站配置文件 (如
/etc/nginx/conf.d/default.conf),在server块内添加:location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }检查 Nginx 配置并重启:
sudo nginx -t sudo systemctl restart nginx
验证: 同样创建并访问
info.php测试文件 (位置需在 Nginxroot目录下)。
关键安全与优化设置
禁用危险函数 (php.ini): 编辑
/etc/php.ini,找到disable_functions行,添加:disable_functions = exec,passthru,shell_exec,system,proc_open,popen,show_source限制资源 (php.ini): 根据服务器负载调整:
max_execution_time = 30 memory_limit = 128M upload_max_filesize = 32M post_max_size = 64M配置 OPcache (php.ini): 搜索
[opcache]部分,确保启用并调整参数:opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60文件权限控制:
- 网站根目录所有者/组设为
nginx:nginx或apache:apache。 - 关键目录权限设为
750,文件设为640。 - 用户上传目录权限设为
770(配合正确的用户组)。
- 网站根目录所有者/组设为
配置 SELinux (如启用):
- 确保 PHP-FPM/Apache 有权限访问网站文件:
sudo chcon -R -t httpd_sys_content_t /var/www/your_site/
- 若 PHP 需写入文件 (如缓存、上传):
sudo chcon -R -t httpd_sys_rw_content_t /var/www/your_site/writable_dir/
- 确保 PHP-FPM/Apache 有权限访问网站文件:
防火墙开放端口: 确保
80(HTTP) 和443(HTTPS) 端口开放。
验证与维护
- 查看 PHP 版本:
php -v - 查看已加载模块:
php -m - 重启服务: 修改
php.ini或 Web 服务器配置后,需重启php-fpm(Nginx) 或httpd(Apache) 生效。 - 定期更新:
sudo yum update php*保持 PHP 及扩展安全。
个人观点: 在 CentOS 7 上部署 PHP,稳定性和安全性是首要考量,选择 Remi 仓库能灵活获取较新版本,而 PHP-FPM + Nginx 的组合在高并发场景下通常表现更优,安全配置绝非小事,严格的 disable_functions、精准的权限控制与 SELinux 策略能有效构筑防线,最后提醒,定期维护更新与备份,才是保障网站长期健康运行的关键。
