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 的监听端口未被其他服务占用。

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

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