导读:本期聚焦于小伙伴创作的《php网页怎么运行?php网页在nginx服务器上运行的配置方法详解》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《php网页怎么运行?php网页在nginx服务器上运行的配置方法详解》有用,将其分享出去将是对创作者最好的鼓励。

php是一种服务端脚本语言,网页形式的php文件无法直接被浏览器解析,需要依赖web服务器和php解析器配合才能运行。nginx本身不具备解析php的能力,需要通过php-fpm(php fastcgi进程管理器)来处理php请求,两者配合就能让php网页正常响应客户端访问。

php网页怎么运行?php网页在nginx服务器上运行的配置方法详解

环境准备与安装

安装nginx

不同系统的安装方式略有区别,以centos系统为例,执行以下命令安装nginx:

# 安装nginx
yum install -y nginx
# 启动nginx服务
systemctl start nginx
# 设置开机自启
systemctl enable nginx

安装php及php-fpm

同样以centos为例,安装php和php-fpm组件:

# 安装php及常用扩展、php-fpm
yum install -y php php-fpm php-mysql php-gd php-mbstring
# 启动php-fpm服务
systemctl start php-fpm
# 设置开机自启
systemctl enable php-fpm

nginx核心配置说明

nginx需要通过fastcgi协议将php请求转发给php-fpm处理,核心配置在nginx的站点配置文件中,默认路径为/etc/nginx/conf.d/default.conf,主要修改server块中的内容。

基础站点配置示例

以下是一个可以正常运行php网页的完整nginx配置示例:

server {
    # 监听80端口
    listen 80;
    # 站点域名,本地测试可以用localhost
    server_name localhost;
    # 站点根目录,php文件需要放在这个目录下
    root /usr/share/nginx/html;
    # 默认索引文件,优先访问index.php
    index index.php index.html index.htm;

    # 处理php文件的请求
    location ~ \.php$ {
        # 转发给php-fpm的地址,默认php-fpm监听9000端口
        fastcgi_pass 127.0.0.1:9000;
        # 指定执行的脚本路径,这里用$document_root拼接请求的文件名
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 引入fastcgi默认参数配置
        include fastcgi_params;
    }
}

配置项说明

  • root:指定站点文件存放的根目录,所有php、html等静态文件都需要放在这个目录下,否则会提示文件不存在。
  • index:访问目录时默认加载的文件,把index.php放在最前面,访问域名时会优先尝试加载index.php。
  • location ~ \.php$:正则匹配所有以.php结尾的请求,只有匹配到的请求才会被转发给php-fpm处理。
  • fastcgi_pass:php-fpm的监听地址,默认是127.0.0.1:9000,如果php-fpm用的是sock文件监听,这里需要写对应的sock路径,比如unix:/run/php-fpm/www.sock
  • fastcgi_param SCRIPT_FILENAME:告诉php-fpm要执行的脚本完整路径,这个参数必须配置正确,否则会出现"File not found"的错误。

验证php运行环境

配置完成后,在站点根目录/usr/share/nginx/html下创建一个测试php文件,比如index.php,内容如下:

<?php
// 输出php环境信息
phpinfo();
?>

修改完nginx配置后需要重载配置让更改生效:

# 检查nginx配置是否有语法错误
nginx -t
# 重载nginx配置
systemctl reload nginx

打开浏览器访问http://localhost/index.php,如果能看到php的环境信息页面,说明php网页已经可以正常运行。

常见问题排查

访问php文件显示下载而不是直接执行

这是nginx没有把php请求转发给php-fpm导致的,检查location ~ \.php$块是否正确配置,是否遗漏了fastcgi相关的参数,或者正则匹配的规则写错了。

提示File not found

首先检查root目录是否正确,然后确认fastcgi_param SCRIPT_FILENAME的参数是否正确,也可以直接在服务器上检查对应的php文件是否存在,权限是否足够让nginx和php-fpm读取。

502 Bad Gateway错误

通常是php-fpm没有正常运行,检查php-fpm服务状态,确认fastcgi_pass的地址和php-fpm的监听地址是否一致,比如php-fpm监听的是sock文件,但是nginx配置里写的是127.0.0.1:9000,就会出现这个错误。

自定义php配置调整

如果需要调整php的运行参数,比如上传文件大小限制、脚本执行时间等,可以修改php的配置文件/etc/php.ini,常见调整项如下:

; 上传文件最大大小
upload_max_filesize = 20M
; POST请求最大大小
post_max_size = 20M
; 脚本最大执行时间,单位秒
max_execution_time = 30
; 脚本最大内存占用
memory_limit = 128M

修改完php.ini后需要重启php-fpm服务让配置生效:

systemctl restart php-fpm

phpnginxphp-fpmweb_server_configuration修改时间:2026-06-02 23:04:14

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。