簡體   English   中英

Laravel - 500 內部服務器錯誤

[英]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文件夾存放訪問者瀏覽器可直接訪問的文件。 這應該是共享主機上的網站空間根。

/publicindex.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.

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