0

0

使用 Nginx 和 PHP-FPM 配置 Laravel 应用

DDD

DDD

发布时间:2025-09-30 15:50:11

|

907人浏览过

|

来源于php中文网

原创

使用 nginx 和 php-fpm 配置 laravel 应用

本文旨在指导开发者如何在 Nginx 环境下,通过 PHP-FPM 正确配置 Laravel 应用,使其能够解析 PHP 文件。文章将详细介绍配置 Nginx 的关键步骤,并提供示例代码,帮助开发者解决在 Nginx 中部署 Laravel 应用时遇到的 PHP 文件解析问题,确保应用能够正常运行。

在使用 Nginx 部署 Laravel 应用时,一个常见的需求是将特定路径(例如 /api)指向 Laravel 应用,而保持其他路径指向其他服务(例如 React 应用)。 当配置不正确时,可能会出现 Nginx 无法正确解析 PHP 文件,导致在浏览器中直接显示 PHP 代码而不是执行结果。以下是如何解决此问题的详细步骤。

确保已安装 PHP-FPM

PHP-FPM(FastCGI Process Manager)是用于处理 PHP 请求的进程管理器。 确保你的服务器上已经安装了 PHP-FPM,并且版本与你的 Laravel 应用兼容。你可以使用以下命令安装 PHP-FPM,具体版本号根据你的 PHP 版本进行调整:

sudo apt-get update
sudo apt-get install php8.1-fpm  # 示例:安装 PHP 8.1 的 PHP-FPM

安装完成后,启动 PHP-FPM 服务:

立即学习PHP免费学习笔记(深入)”;

sudo systemctl start php8.1-fpm  # 示例:启动 PHP 8.1 的 PHP-FPM
sudo systemctl enable php8.1-fpm # 设置开机自启

配置 Nginx

接下来,需要配置 Nginx 以将特定路径的请求转发到 PHP-FPM。编辑 Nginx 的配置文件(通常位于 /etc/nginx/sites-available/ 目录下),找到与你的 Laravel 应用相关的 server 块。

假设你希望将 /api 路径指向 Laravel 应用,以下是一个示例配置:

乐彼多用户商城系统LBMall(.net)
乐彼多用户商城系统LBMall(.net)

乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1

下载
server {
    listen 80;
    server_name domain.com;
    root /var/www/app; # React 应用的根目录

    index index.html;

    location /api {
        alias /var/www/api/public/; # Laravel 应用的 public 目录
        try_files $uri $uri/ /api/index.php?$query_string;

        location ~ \.php$ {
            #root /var/www/api/public; # 注释掉,因为已经在 location /api 中定义了 alias

            include snippets/fastcgi-php.conf; # 包含 PHP-FPM 的通用配置
            fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 指定 PHP-FPM 的 socket 文件路径
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }

    location / {
        # React 应用的配置
        try_files $uri $uri/ =404;
    }
}

配置详解:

  • location /api: 定义了处理 /api 路径的规则。
    • alias /var/www/api/public/:指定 Laravel 应用的 public 目录为 /api 的根目录。
    • try_files $uri $uri/ /api/index.php?$query_string;:尝试查找请求的 URI 作为文件或目录。如果找不到,则将请求重定向到 Laravel 的入口文件 index.php,并传递查询字符串。
  • location ~ \.php$: 定义了处理 PHP 文件的规则。
    • include snippets/fastcgi-php.conf;:包含 Nginx 提供的 PHP-FPM 通用配置,其中包含一些常用的 fastcgi_param 设置。
    • fastcgi_pass unix:/run/php/php8.1-fpm.sock;:指定 PHP-FPM 的 socket 文件路径。请根据你的 PHP-FPM 版本和配置进行调整。可以使用 ps aux | grep php-fpm 查找 socket 文件路径。
    • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:设置 SCRIPT_FILENAME 参数,告诉 PHP-FPM 要执行的 PHP 文件路径。 $document_root 是 Nginx 的根目录,$fastcgi_script_name 是请求的 PHP 文件名。
  • location /: 定义了处理根目录的规则,此处配置为React应用。

注意事项:

  • 确保 fastcgi_pass 指向正确的 PHP-FPM socket 文件路径。
  • 根据你的 PHP 版本调整 PHP-FPM 的配置和 socket 文件路径。
  • 检查文件和目录权限,确保 Nginx 和 PHP-FPM 进程有权访问 Laravel 应用的文件。

重启 Nginx 和 PHP-FPM

完成配置后,保存文件并重启 Nginx 和 PHP-FPM 服务:

sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx
sudo systemctl restart php8.1-fpm # 示例:重启 PHP 8.1 的 PHP-FPM

测试配置

现在,你可以通过访问 domain.com/api 来测试 Laravel 应用是否能够正确解析 PHP 文件。 如果一切配置正确,你应该能够看到 Laravel 应用的页面。

总结

通过以上步骤,你应该能够成功配置 Nginx 和 PHP-FPM,使 Laravel 应用能够正确解析 PHP 文件,并与其他服务(例如 React 应用)共存。 请务必根据你的实际环境和 PHP 版本调整配置,并确保文件和目录权限正确。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

320

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

278

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

373

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

374

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

86

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

65

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

68

2025.08.05

nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

233

2023.07.27

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

7

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号