在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环境,如果在安装过程中遇到任何问题,建议查阅相关的官方文档或社区论坛以获取更多帮助。