Laravel框架搭建
本文最后更新于100 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

相关服务安装指南

从零开始搭建Dcat Admin可参考以下顺序安装:

一、Linux 安装配置卸载 mysql 服务 – 谢幕后 (xmhweb.cn)

二、Linux 安装 php 服务和 composer – 谢幕后 (xmhweb.cn)

三、Linux 安装 nginx 服务 – 谢幕后 (xmhweb.cn)

四、Laravel 框架搭建

五、Dcat Admin后台系统搭建 – 谢幕后 (xmhweb.cn)

Laravel安装

创建你的第一个 Laravel 项目之前,确保你的本地机器上已经安装了 PHP 和 Composer ,安装 PHP 和 Composer 后,你可以通过 create-project 命令创建一个新的 Laravel 项目:

composer create-project laravel/laravel example-app

当应用程序创建完成后,你可以通过 Artisan CLI 的 serve 命令来启动 Laravel 的本地服务:

cd example-app
#默认监听127.0.0.1:8000端口,只能本机访问
php artisan serve

要让 Laravel 的开发服务器监听所有网络接口,你可以使用以下命令:

php artisan serve --host=0.0.0.0 --port=8000

启动服务后,在浏览器打开 10.10.166.213:8000

如果你计划长期运行 Laravel 服务并使其可从外部访问,建议使用更稳定的 Web 服务器软件(如 Nginx 或 Apache)作为反向代理,而不是直接使用内置的 PHP 开发服务器。这样可以提供更好的性能和更强的安全性。你需要配置 Web 服务器以正确处理传入的 HTTP 请求,并将它们转发到 Laravel 应用程序。参考链接:Linux安装nginx服务 – 谢幕后 (xmhweb.cn)

502代码问题排查

Laravel安装完成,环境检查没有问题,但是访问显示502错误,如下图。

检查PHP-FPM服务状态

# 对于PHP-FPM,命令可能如下,具体取决于您的系统和版本 
# 请根据实际PHP版本调整
sudo systemctl status php8.1-fpm

如果服务未运行,尝试启动它

# 请根据实际PHP版本调整
sudo systemctl start php8.1-fpm

检查日志文件

查看Nginx和PHP-FPM的日志文件,这些日志可能会提供错误的详细信息。

Nginx日志:通常位于cat /var/log/nginx/error.log

PHP-FPM日志:位置可能变化,常见的有cat /var/log/php8.1-fpm.log(根据PHP版本调整)

nginx日志如下:

connect() to unix:/run/php/php8.1-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 10.10.163.150, server: 10.10.166.213, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.1-fpm.sock:", host: "10.10.166.213:8000"

原因:Nginx尝试连接到PHP-FPM时遇到了权限问题,可能是:

Socket文件的权限设置

PHP-FPM的socket文件(/run/php/php8.1-fpm.sock)的权限可能不允许Nginx用户访问。您需要确认该socket文件的权限和所有者设置,确保Nginx的用户(通常是nginxwww-data)有权访问它。

查看socket文件的当前权限和所有者

ls -l /run/php/php8.1-fpm.sock

查完发现/run/php/php8.1-fpm.sock的socket文件的当前权限和所有者是root,默认情况下,Nginx运行在非root用户(通常是nginxwww-data)下,因此无法访问属于root用户的socket文件。

如果需要,更改文件的所有者(例如,如果您的Nginx运行在www-data用户下)

sudo chown www-data:www-data /run/php/php8.1-fpm.sock

PHP-FPM配置

在PHP-FPM的配置文件中(通常是cat /etc/php/8.1/fpm/pool.d/www.conf,根据您的PHP版本调整),确保listen.ownerlisten.group正确设置为Nginx的用户,同时listen.mode应该设置为可让Nginx用户访问。

listen.owner = www-data
listen.group = www-data
listen.mode = 0660 

保存文件并重启PHP-FPM服务。

systemctl restart php8.1-fpm

验证一下

ls -l /run/php/php8.1-fpm.sock

文件夹权限问题

访问服务显示如下图:

排查

查看Nginx日志:cat /var/log/nginx/error.log,显示如下:

2024/02/06 03:38:05 [crit] 1941728#1941728: *8 open() "/var/lib/nginx/fastcgi/3/00/0000000003" failed (13: Permission denied) while reading upstream, client: 10.10.163.150, server: 10.10.166.213, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.1-fpm.sock:", host: "10.10.166.213:8000"

分析:Laravel应用无法写入其日志和会话文件,因为它没有足够的权限去操作/ITCAT/storage目录及其子目录中的文件。

解决方法

storagebootstrap/cache目录的所有者更改为Web服务器用户www-data并赋予相应的权限:

sudo chown -R www-data:www-data /ITCAT/storage
sudo chown -R www-data:www-data /ITCAT/bootstrap/cache
sudo chmod -R 775 /ITCAT/storage
sudo chmod -R 775 /ITCAT/bootstrap/cache 

在更改文件权限后,建议清理Laravel的缓存:

php artisan cache:clear 
php artisan config:clear 
php artisan view:clear

相关链接

《Laravel 10 中文文档》 | Laravel China 社区 (learnku.com)

小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇