在 CentOS 上安装 PHP 和 Nginx 是构建 Web 服务器环境的常见需求,以下是一个详细的安装步骤指南,包括配置和测试:
一、安装步骤
1、更新系统:确保你的系统软件包是最新的。
sudo yum update y
2、安装 Nginx:
安装 EPEL(Extra Packages for Enterprise Linux)Repo:
sudo yum install epelrelease y
安装 Nginx:
sudo yum install nginx y
启动 Nginx 并设置为开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
确认 Nginx 正常运行:
curl http://localhost
如果看到欢迎页面,说明 Nginx 安装成功。
3、安装 PHP:
安装 EPEL 和 REMI Repo:
sudo yum install epelrelease y sudo yum install https://rpms.remirepo.net/enterprise/remirelease7.rpm y
安装 PHP 和相关模块:
sudo yum install php phpfpm phpmysqlnd phpmbstring phpxml phpjson y
启动 PHPFPM 并设置为开机自启:
sudo systemctl start phpfpm sudo systemctl enable phpfpm
4、配置 PHPFPM:
编辑/etc/phpfpm.d/www.conf
文件,修改以下参数:
user = nginx group = nginx listen = /run/phpfpm/phpfpm.sock
确保以下两行没有被注释:
pid = /run/phpfpm/phpfpm.pid error_log = /var/log/phpfpm/error.log
保存并重启 PHPFPM:
sudo systemctl restart phpfpm
5、配置 Nginx:
创建一个新的配置文件/etc/nginx/conf.d/default.conf
,添加以下内容:
server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; } }
注意将server_name
修改为你的实际域名或 IP 地址。
6、测试配置:
在/usr/share/nginx/html
目录下创建一个info.php
文件,内容如下:
<?php phpinfo(); ?>
然后在浏览器中访问http://yourdomainorip/info.php
,如果能看到 PHP 信息页面,表示配置成功。
二、补充说明:为什么选择 PHP + Nginx
PHP 是一种广泛使用的服务器端脚本语言,常用于开发动态网页和 Web 应用程序,Nginx 则是一个高性能的 web 服务器,以其高并发能力和低内存消耗而著名,以下是一些选择 PHP + Nginx 的理由:
1、高性能:Nginx 能够处理大量并发请求,适合高流量网站。
2、轻量级:Nginx 占用资源少,启动速度快。
3、可扩展性:支持模块化架构,可以根据需求灵活配置。
4、反向代理和负载均衡:可以分担 PHP 的负载,提高应用程序性能。
5、安全性:内置多种安全功能,防止常见的网络攻击。
三、常见问题解答(FAQ)
问:如何在 CentOS 上安装特定版本的 PHP?
答:可以使用 REMI Repo 来安装特定版本的 PHP,要安装 PHP 7.4,可以执行以下命令:
sudo yum install https://rpms.remirepo.net/enterprise/remirelease7.rpm y sudo yumconfigmanager enable remiphp74 sudo yum install php phpfpm y
问:如何更改 PHP 上传文件大小限制?
答:可以通过修改php.ini
文件中的相关参数来调整上传文件大小限制,编辑/etc/php.ini
文件,找到并修改以下参数:
upload_max_filesize = 10M post_max_size = 10M
然后重启 PHPFPM 服务以使更改生效:
sudo systemctl restart phpfpm