返回

为CentOS 7.2 配置PHP 运行环境:全面指南

后端

在 CentOS 7.2 系统中安装和配置 PHP 和 Nginx:全面的指南

PHP 作为一种广泛运用于网络开发的高效、开源的编程语言,与轻量级、高性能的 Web 服务器 Nginx 搭配使用时,能够构建高效的 Web 应用程序。本指南将分步引导您完成在 CentOS 7.2 系统上安装和配置 PHP 及 Nginx 环境的详细流程。

步骤一:准备系统环境

  • 确保系统已安装并配置好 CentOS 7.2。
  • 登录系统,使用 root 用户权限或具有 sudo 权限的用户身份。
  • 禁用防火墙和 SELinux,以避免安装过程中的潜在冲突。
  • 更新系统软件包,以保证软件处于最新状态。

步骤二:安装 PHP

  1. 下载 PHP 源码包:
wget http://us1.php.net/distributions/php-7.4.32.tar.gz
  1. 解压源码包:
tar -zxvf php-7.4.32.tar.gz
  1. 进入源码目录:
cd php-7.4.32
  1. 配置安装选项:
./configure --prefix=/usr/local/php7 --with-fpm-user=nginx --with-fpm-group=nginx --enable-fpm
  1. 编译 PHP:
make
  1. 安装 PHP:
make install

步骤三:配置 PHP

  1. 编辑 PHP 配置文件 /etc/php.ini
vi /etc/php.ini
  1. 根据需求调整 PHP 配置参数,如时区和内存限制。

  2. 保存并退出文件。

步骤四:安装 Nginx

  1. 安装 Nginx 软件包:
yum install nginx
  1. 复制 Nginx 配置文件:
cp /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf
  1. 编辑 Nginx 配置文件 /etc/nginx/conf/nginx.conf
# ...
# 启用 PHP 模块
include /etc/nginx/conf.d/*.conf;
# ...
# 设置 PHP 处理程序
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}
# ...
  1. 保存并退出文件。

步骤五:配置 php-fpm

  1. 安装 php-fpm 软件包:
yum install php-fpm
  1. 复制 php-fpm 配置文件:
cp /etc/php-fpm.conf /etc/php-fpm.d/www.conf
  1. 编辑 php-fpm 配置文件 /etc/php-fpm.d/www.conf
# ...
[global]
pid = /var/run/php-fpm/php-fpm.pid
error_log = /var/log/php-fpm/error.log
listen = 127.0.0.1:9000
# ...
[www]
user = nginx
group = nginx
# ...
  1. 保存并退出文件。

步骤六:启动服务

  1. 启动 Nginx 服务:
systemctl start nginx
  1. 启动 php-fpm 服务:
systemctl start php-fpm

步骤七:测试 PHP

  1. 创建一个 PHP 文件(例如 info.php):
<?php
phpinfo();
?>
  1. 将文件放置在 Web 根目录(例如 /var/www/html)。

  2. 在浏览器中访问 http://localhost/info.php

  3. 如果显示 PHP 信息页面,则表明 PHP 已成功安装和配置。

故障排除

  • 检查 PHP 和 Nginx 的错误日志,查找潜在错误。
  • 确保 PHP 和 Nginx 的配置文件已正确配置。
  • 确保防火墙和 SELinux 已禁用或正确配置。
  • 确保 php-fpm 模块已正确安装和配置。
  • 重新启动 Nginx 和 php-fpm 服务,以应用配置更改。

常见问题解答

  1. PHP 安装过程中出现“configure: error: cannot find proto/config.h”错误:
    确保已安装 libprotobuf-devel 软件包。

  2. Nginx 启动失败,提示“nginx: [emerg] getsockopt(SO_PEERCRED, &ucred, &len): No such file or directory”:
    SELinux 可能被启用。禁用 SELinux 或配置 SELinux 策略以允许 Nginx 访问所需的权限。

  3. 无法访问 PHP 页面,提示“502 Bad Gateway”:
    检查 php-fpm 配置文件,确保 listen 指令已正确设置为 127.0.0.1:9000。

  4. PHP 页面空白,没有显示任何输出:
    确保 PHP 配置文件 /etc/php.ini 中已取消注释 display_errors 指令。

  5. 如何更新 PHP 版本?
    遵循本文中的步骤,使用较新版本的 PHP 源码重新安装 PHP。