HCRM博客

在CentOS 7轻松启用PHP教程

CentOS 7 开启 PHP:稳定高效的建站基石搭建指南

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

基础准备:系统更新与仓库配置

在CentOS 7轻松启用PHP教程-图1
  1. 系统更新:

    sudo yum update -y

    确保系统所有软件包处于最新状态,修补已知漏洞,这是安全部署的第一步。

  2. 启用 EPEL 仓库:

    sudo yum install epel-release -y

    EPEL 提供了大量 CentOS 基础仓库之外的优质软件包。

  3. 添加 Remi 仓库 (推荐):

    sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

    Remi 仓库提供了更新、更丰富的 PHP 版本选择(如 PHP 5.4 到 8.x),方便我们安装特定版本或最新稳定版。

    在CentOS 7轻松启用PHP教程-图2

安装 PHP 及其核心扩展

  1. 启用 Remi 仓库中的目标 PHP 版本流: 假设我们需要安装广泛兼容且稳定的 PHP 7.4:

    sudo yum-config-manager --enable remi-php74

    (如需 PHP 8.1:sudo yum-config-manager --enable remi-php81

  2. 安装 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 协作

在CentOS 7轻松启用PHP教程-图3

场景 A:使用 Apache (httpd)

  1. 安装 Apache (如未安装):

    sudo yum install httpd -y
  2. PHP 模块已自动集成:yum install php 会默认安装 php 模块供 Apache 使用。

  3. 重启 Apache 生效:

    sudo systemctl restart httpd
  4. 验证: 创建测试文件 /var/www/html/info.php

    <?php phpinfo(); ?>

    访问 http://your_server_ip/info.php,应显示详细的 PHP 配置信息。务必在验证后删除此文件!

场景 B:使用 Nginx

  1. 安装 Nginx (如未安装):

    sudo yum install nginx -y
  2. 配置 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
  3. 配置 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
  4. 验证: 同样创建并访问 info.php 测试文件 (位置需在 Nginx root 目录下)。

关键安全与优化设置

  1. 禁用危险函数 (php.ini): 编辑 /etc/php.ini,找到 disable_functions 行,添加:

    disable_functions = exec,passthru,shell_exec,system,proc_open,popen,show_source
  2. 限制资源 (php.ini): 根据服务器负载调整:

    max_execution_time = 30
    memory_limit = 128M
    upload_max_filesize = 32M
    post_max_size = 64M
  3. 配置 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
  4. 文件权限控制:

    • 网站根目录所有者/组设为 nginx:nginxapache:apache
    • 关键目录权限设为 750,文件设为 640
    • 用户上传目录权限设为 770 (配合正确的用户组)。
  5. 配置 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/
  6. 防火墙开放端口: 确保 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 策略能有效构筑防线,最后提醒,定期维护更新与备份,才是保障网站长期健康运行的关键。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/34812.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~