在CentOS 7上安装和配置Nginx与PHP,是构建LNMP(Linux + Nginx + MySQL/MariADB + PHP)环境的关键步骤之一,以下是详细的安装和配置过程:
一、安装Nginx
1、更新系统:确保你的系统软件包是最新的。

- sudo yum update y
2、安装Nginx:使用YUM包管理器安装Nginx。
- sudo yum install nginx y
3、启动并设置开机自启:
- sudo systemctl start nginx
- sudo systemctl enable nginx
4、测试安装:在浏览器中访问服务器的IP地址或域名,如果看到Nginx欢迎页面,说明安装成功。
二、安装PHP和PHPFPM
1、安装EPEL存储库:EPEL提供了更多的PHP版本选择。
- sudo yum install epelrelease y
2、安装Remi存储库:Remi是一个提供较新PHP版本的第三方YUM存储库。
- sudo yum install https://rpms.remirepo.net/enterprise/remirelease7.rpm y
3、启用并安装PHP 7.4:以PHP 7.4为例,你可以根据需要选择其他版本。

- sudo yumconfigmanager enable remiphp74
- sudo yum install php phpfpm phpmysqlnd phpgd phpxml phpmbstring phpldap phpintl phppear phpxmlrpc phpbcmath phpjson y
4、启动并设置PHPFPM开机自启:
- sudo systemctl start phpfpm
- sudo systemctl enable phpfpm
5、配置Nginx以支持PHP解析:编辑NGINX配置文件/etc/nginx/nginx.conf
,添加以下内容以支持PHP文件的解析。
- server {
- listen 80;
- server_name your_domain_or_ip;
-
- root /usr/share/nginx/html;
- index index.php index.html index.htm;
-
- location / {
- try_files $uri $uri/ =404;
- }
-
- location ~ \.php$ {
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
- }
6、重启Nginx:使配置生效。
- sudo systemctl restart nginx
三、测试安装
1、创建测试PHP文件:在Nginx的web根目录/usr/share/nginx/html/
下创建一个名为info.php
的文件,并添加以下内容:
- <?php
- phpinfo();
- ?>
2、访问测试页面:在浏览器中访问http://your_domain_or_ip/info.php
,如果看到PHP信息页面,说明Nginx与PHP已经成功集成。
四、常见问题及解答(FAQs)
Q1: 为什么我在访问PHP文件时得到“No input file specified.”错误?

A1: 这个错误通常是由于Nginx配置中的fastcgi_param SCRIPT_FILENAME
指令没有正确设置导致的,请确保你的Nginx配置文件中包含以下行,并确保路径设置正确:
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Q2: 如何更改PHP的版本?
A2: 你可以通过禁用当前版本的PHP模块,并启用你需要的PHP版本来更改PHP版本,如果你想切换到PHP 7.3,可以执行以下命令:
- sudo yumconfigmanager disable remiphp74
- sudo yumconfigmanager enable remiphp73
- sudo yum install php phpfpm phpmysqlnd y
然后重启Nginx和PHPFPM服务:
- sudo systemctl restart nginx
- sudo systemctl restart phpfpm
通过以上步骤,你应该能够在CentOS 7上成功安装和配置Nginx与PHP,构建一个高效的LNMP环境,如果在安装过程中遇到任何问题,建议查阅相关的官方文档或社区论坛以获取更多帮助。