[英]Laravel - 500 Internal Server Error
我在我的本地主機上運行我的 laravel 站點,工作正常。 但是當我嘗試在托管服務器上運行我的網站時,我收到了 500 個內部服務器錯誤? 是因為我的 .htaccess 文件還是我刪除了公共網址?
我的 .htaccess 文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
在終端上試試這個:
sudo chmod -R 755 <your_laravel_project>
和
chmod -R o+w <your_laravel_project>/storage
確保您使用的是受支持的 PHP 版本,並且您的文件夾具有755
權限。
您還可以查看 Laravel 的日志文件以了解更多有關導致 500 錯誤的原因。 如果日志文件中沒有條目,則問題可能來自 .htaccess。
我的共享托管服務提供商遇到了類似的問題。 Laravel 使用public
文件夾存放訪問者瀏覽器可直接訪問的文件。 這應該是共享主機上的網站空間根。
當/public
的index.php
被調用並嘗試訪問 webspace 根目錄之外(上一層)的文件時,就會出現問題。 通常這是不允許的。
您(或您的托管服務提供商)需要更改 php 設置中的open_basedir
值。
在我的主機上它看起來像這樣:
{WEBSPACEROOT}{/}{:}{TMP}{/}
我把它改成
{WEBSPACEROOT}{/}{:}{TMP}{/}{:}{WEBSPACEROOT}{/../}
它奏效了。
嘗試一一執行命令。 我希望我的解決方案能解決您的問題。
find <laravel_project_path> -type d -exec chmod 755 {} \;
find <laravel_project_path> -type d -exec chmod ug+s {} \;
find <laravel_project_path> -type f -exec chmod 644 {} \;
chown -R www-data:www-data <laravel_project_path>
chmod -R 777 <laravel_project_path>/storage
chmod -R 777 <laravel_project_path>/bootstrap/cache/
find <laravel_project_path>/vendor -type f -exec chmod 664 {} \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.