簡體   English   中英

Laravel 在共享主機上給出 500 內部錯誤

[英]Laravel giving 500 internal error on Shared hosting

我有一個 Laravel 應用程序在我的本地機器上運行良好。 我剛剛將它轉移到我的服務器(共享主機)並將所有內容放在 public_html 中的公共文件夾中,其他所有內容都放在 public_html 之上的一個步驟中。 現在的問題是它在每條路線上顯示 500 個內部錯誤。 我已將 .htaccess 代碼更改為文檔上的給定代碼,存儲和引導程序的文件夾權限設置為 777。

錯誤日志中沒有任何內容,laravel 日志文件中也沒有。 當我安裝新的 laravel 安裝時,它也可以在服務器上運行。 嘗試使用我的項目更新代碼,但仍然出現 500 內部錯誤。

如果您使用的是 IONOS(或 1and1,也許也適用於其他...),. .htaccess文件應該與 laravel 公共目錄中的默認文件不同。

將其內容替換為:

RewriteBase /

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

對於Laravel 8 / IONOS 托管服務器,這對我有用

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteBase /
    Options +FollowSymLinks
    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

該錯誤可能是由於.env文件的配置。由於您的問題不夠清楚。 所以我會解釋兩種方法

使用供應商和 .env 文件(不推薦) - 解壓縮主 zip 文件並上傳您的 public_html 文件夾(也上傳供應商文件夾)

為 storage/ 和 bootstrap/ 文件夾授予 777 遞歸權限

在 phpmyadmin 中創建數據庫並導入 .sql 文件

在 .env 文件中設置數據庫

現在通常對於所有共享主機,您都將被監禁 SSH,您可以聯系主機提供商以獲取其詳細信息。

獲得訪問權限后,使用命令

php artisan cache:clear
php artisan config:clear
php artisan config:cache

該文件本身可以在 bootstrap/cache/config.php 中找到。

請注意,編譯后的配置文件的位置最近發生了變化。 您的也可能在 vendor/config.php 或 storage/framework/config.php 中。 全新安裝或運行 composer update 時,該文件應位於引導程序/緩存中。

現在直接來自 GIT 或其他來源,無需供應商(推薦)

確保復制所有項目文件,包括隱藏文件 (.env)。

如果您使用的是 GIT,請使用 GIT clone 來克隆項目。

檢查您在 php.ini 中是否擁有所有必要的 PHP 擴展,如 Laravel 要求中所述。 另外,請注意您的 PHP 版本!

安裝 composer https://getcomposer.org/doc/00-intro.md

復制后,轉到目標文件夾並運行 composer install

從命令行運行 php artisan key:generate 。

然后運行

php工匠緩存:清除

php工匠配置:清除

php工匠配置:緩存

http://php.net/manual/en/install.windows.commandline.php

確保您的網絡服務器正在為來自項目/公共文件夾的頁面提供服務。

即使在完成這些步驟后,如果 Laravel 仍然顯示錯誤,請檢查 your_project/storage/logs/laravel.log

Laravel 默認的 .htacces 不適用於 IONOS。 這是完美的 .htaccess

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>

RewriteBase /
Options +FollowSymLinks
RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

暫無
暫無

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

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