簡體   English   中英

Laravel CentOs 上的權限被拒絕錯誤 7

[英]Laravel Permission Denied Error on CentOs 7

我剛剛使用 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))

While for every api call, I got 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 function 只是為了測試 mysql 分機並且有效。

但是當我運行php artisan serve時,它工作正常。 你知道什么是解決方案嗎?

它看起來像一個權限問題。 我懷疑您的 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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM