为了账号安全,请及时绑定邮箱和手机立即绑定

CentOs 7 上的 Laravel 权限被拒绝错误

CentOs 7 上的 Laravel 权限被拒绝错误

PHP
胡子哥哥 2022-12-30 16:59:39
我刚刚安装了带有 httpd、PHP 7.3 和 MariaDB 的 CentOs 7。我用以下配置了虚拟主机:<VirtualHost *:80>  ServerName tenancy  DocumentRoot /var/www/vhosts/tenancy/public</VirtualHost>我得到的应用程序显示默认的 laravel 欢迎页面,但是与数据库交互的每个页面都得到了SQLSTATE[HY000] [2002] Permission denied (SQL: select * from tenant_modules where (tenant_id = 28))对于每个 api 调用,我都得到了file_put_contents(/var/www/vhosts/tenancy/storage/framework/cache/data/44/d1/44d142505dd1a3b497197e2f459d2aec779e9ed6): failed to open stream: Permission denied我已经将 www 文件夹的权限设置为777 -R甚至完成chcon -R -t httpd_sys_rw_content_t -R \var\www,但仍然没有任何改变。另外,我已经编写了一个 php 函数来测试 mysql ext 并且可以正常工作。但是当我跑步时php artisan serve,它工作正常。您知道解决方案是什么吗?
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

它看起来像一个权限问题。我怀疑你的 Apache 用户没有权限在你的 Laravel 应用程序文件夹中读写。

我不确定 CentOs 上的 Apache 用户/组是什么。我会假设它是www-data,请根据需要更改。

免责声明:这适用于我的机器(Debian),但可能有一些更好的方法来设置你的 Laravel 应用程序权限。欢迎反馈。


  1. 将您的用户添加到 www-data 组:

    sudo usermod -aG www-data youruser

  2. 更改您的项目用户和组所有权:

    sudo chown -R youruser:www-data /var/www/your-project/

  3. 将项目文件权限更改为 664:

    sudo find /var/www/your-project/ -type f -exec chmod 664 {} \;

  4. 将项目目录权限更改为 775:

    sudo find /var/www/your-project/ -type d -exec chmod 775 {} \;

  5. 设置 ACL 权限以确保网络服务器创建的新文件具有正确的权限:

sudo setfacl -Rdm g:www-data:rw /var/www/your-project/bootstrap/cache/

sudo setfacl -Rdm g:www-data:rw /var/www/your-project/storage/logs/

sudo setfacl -Rdm g:www-data:rw /var/www/your-project/storage/framework/

sudo setfacl -Rdm g:www-data:rw /var/www/your-project/storage/app/


查看完整回答
反对 回复 2022-12-30
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信