Laravel 部署:文件夹权限 2 个改进

Laravel 部署后,哪些文件夹需要写权限?

storage 目录包含编译后的 Blade 模板、session 会话生成的文件、缓存文件以及框架生成的其他文件。这个目录被细分成 appframeworklogs 三个子目录:

  • app 目录可以用来存储应用生成的任何文件;
  • framework 目录用来存储框架生成的文件和缓存;
  • logs 目录包含应用的日志文件。

如果 storage 目录的权限不正确,可能导致应用运行出现异常,例如出现:

The stream or file "/var/www/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

所以 storage 需要读写权限,设置如下:

方法一

更改 storage 文件夹权限

$ sudo chmod -R 0755 storage

更改 storage 文件夹拥有者与 php-fpm.conf 运行用户一致,如 php-fpm.conf 配置为

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www-data
group = www-data

则命令为

$ sudo chown -R www-data:www-data storage

方法二

更改 storage 文件夹权限为 0777

$ sudo chmod -R 0777 storage

注意

生产服务器上应该遵循「最小权限原则」,推荐使用「方法一」

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!