【发布时间】:2020-04-18 19:31:58
【问题描述】:
我刚刚安装了带有 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 时,它运行良好。您知道可能的解决方案吗?
【问题讨论】:
-
你确定你的用户和组有权在你的 Laravel 文件夹中读写吗?听起来
httpd(或www-data)用户没有正确的权限。 -
我已经将我的用户添加到 apache 组
-
当然,这意味着您的用户可以读取和写入文件。但是,您的 Apache 用户似乎没有读写权限。我会发布一个答案,希望它会有所帮助。