
本文旨在指导开发者如何在 Nginx 环境下,通过 PHP-FPM 正确配置 Laravel 应用,使其能够解析 PHP 文件。文章将详细介绍配置 Nginx 的关键步骤,并提供示例代码,帮助开发者解决在 Nginx 中部署 Laravel 应用时遇到的 PHP 文件解析问题,确保应用能够正常运行。
在使用 Nginx 部署 Laravel 应用时,一个常见的需求是将特定路径(例如 /api)指向 Laravel 应用,而保持其他路径指向其他服务(例如 React 应用)。 当配置不正确时,可能会出现 Nginx 无法正确解析 PHP 文件,导致在浏览器中直接显示 PHP 代码而不是执行结果。以下是如何解决此问题的详细步骤。
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 以将特定路径的请求转发到 PHP-FPM。编辑 Nginx 的配置文件(通常位于 /etc/nginx/sites-available/ 目录下),找到与你的 Laravel 应用相关的 server 块。
假设你希望将 /api 路径指向 Laravel 应用,以下是一个示例配置:
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;
}
}配置详解:
注意事项:
完成配置后,保存文件并重启 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 版本调整配置,并确保文件和目录权限正确。
以上就是使用 Nginx 和 PHP-FPM 配置 Laravel 应用的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号