HCRM博客

如何在CentOS上配置PHP与Nginx的集成环境?

CentOS 7 下 Nginx 与 PHP 的安装和配置

在 Linux 操作系统上,Nginx 和 PHP 是两种非常流行的 Web 服务技术,Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,而 PHP 是一种广泛使用的开源服务器端脚本语言,本文将详细介绍如何在 CentOS 7 操作系统上安装和配置 Nginx 与 PHP,以实现动态网站的开发和部署。

如何在CentOS上配置PHP与Nginx的集成环境?-图1
(图片来源网络,侵权删除)

一、安装前的准备

1. 更新系统包

在开始之前,确保你的系统是最新的,打开终端并执行以下命令:

sudo yum update y

2. 安装 EPEL 源

为了能够安装较新的软件版本,需要添加 Extra Packages for Enterprise Linux (EPEL) 源:

sudo yum install epelrelease y

3. 安装必要的开发工具和库

安装 GCC 和其他必要的开发工具及库:

如何在CentOS上配置PHP与Nginx的集成环境?-图2
(图片来源网络,侵权删除)
sudo yum groupinstall "Development Tools" y
sudo yum install openssl openssldevel zlib zlibdevel pcre pcredevel gcc gccc++ libxml2devel libsqlite3xdevel y

二、安装 Nginx

1. 下载并解压 Nginx

首先下载 Nginx 源代码包:

wget http://nginx.org/download/nginx1.18.0.tar.gz
tar zxvf nginx1.18.0.tar.gz
cd nginx1.18.0

2. 配置、编译和安装 Nginx

执行配置、编译和安装:

./configure prefix=/usr/local/nginx withhttp_ssl_module
make
sudo make install

3. 启动 Nginx

进入安装目录并启动 Nginx:

如何在CentOS上配置PHP与Nginx的集成环境?-图3
(图片来源网络,侵权删除)
cd /usr/local/nginx
sudo ./sbin/nginx

4. 设置开机自启

使用以下命令设置 Nginx 开机自启:

sudo vi /etc/systemd/system/nginx.service

在文件中添加以下内容:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote.target nsslookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx s reload
ExecStop=/bin/kill s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multiuser.target

然后启用并启动 Nginx 服务:

sudo systemctl enable nginx
sudo systemctl start nginx

三、安装 PHP 和 PHPFPM

1. 下载并解压 PHP

下载 PHP 源代码包:

wget https://www.php.net/distributions/php7.4.8.tar.gz
tar zxvf php7.4.8.tar.gz
cd php7.4.8

2. 配置、编译和安装 PHP

执行配置、编译和安装:

./configure prefix=/usr/local/php withconfigfilepath=/usr/local/php/etc enablefpm
make j8
sudo make install

3. 拷贝配置文件并启动 PHPFPM

拷贝默认配置文件并启动 PHPFPM:

sudo cp etc/phpfpm.d/www.conf{,.default}
sudo cp etc/phpfpm.conf.default /usr/local/etc/phpfpm.conf
sudo groupadd wwwdata
sudo useradd g wwwdata s /sbin/nologin wwwdata
sudo vi /usr/local/etc/phpfpm.d/www.conf

修改www.conf 文件,将usergroup 设置为wwwdata

user = wwwdata
group = wwwdata
listen = /run/phpfpm/phpfpm.sock

启动 PHPFPM:

sudo /usr/local/sbin/phpfpm nodaemonize

4. 设置开机自启

使用以下命令设置 PHPFPM 开机自启:

sudo vi /etc/systemd/system/phpfpm.service

在文件中添加以下内容:

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target remote.target nsslookup.target
[Service]
Type=simple
PIDFile=/usr/local/var/run/phpfpm.pid
ExecStart=/usr/local/sbin/phpfpm nodaemonize
ExecReload=/bin/kill USR2 $MAINPID
ExecStop=/bin/kill QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multiuser.target

然后启用并启动 PHPFPM 服务:

sudo systemctl enable phpfpm
sudo systemctl start phpfpm

四、配置 Nginx 支持 PHP

1. 修改 Nginx 配置文件

编辑 Nginx 配置文件,使其支持 PHP:

sudo vi /usr/local/nginx/conf/nginx.conf

server 块中添加以下内容:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

2. 测试并重启 Nginx

测试 Nginx 配置文件是否正确:

sudo /usr/local/nginx/sbin/nginx t

如果一切正常,重启 Nginx:

sudo systemctl restart nginx

五、验证安装结果

1. 创建测试页

/usr/share/nginx/html 目录下创建一个测试用的 PHP 文件:

sudo vi /usr/share/nginx/html/index.php

在文件中添加以下内容:

<?php
phpinfo();
?>

2. 访问测试页面

打开浏览器,访问http://<你的服务器IP>,如果看到 PHP 信息页面,说明 Nginx 和 PHP 已成功安装并配置。

六、常见问题排查(FAQ)

Q1: Nginx 无法启动或报错怎么办?

A1: Nginx 无法启动或报错,可以检查以下几点:

确保配置文件路径正确,没有语法错误,可以使用nginx t 命令测试配置文件。

检查防火墙设置,确保开放了所需的端口。

查看日志文件,通常位于/var/log/nginx/error.log,根据日志提示进行修复。

Q2: PHPFPM 无法启动或报错怎么办?

A2: PHPFPM 无法启动或报错,可以检查以下几点:

确保配置文件路径正确,特别是phpfpm.confwww.conf 中的用户和组设置正确。

查看日志文件,通常位于/usr/local/var/log/phpfpm.log,根据日志提示进行修复。

确保 PHPFPM 的监听端口未被其他服务占用。

分享:
扫描分享到社交APP
上一篇
下一篇