Laravel在共享主机上给出500内部错误

时间:2019-05-02 04:05:16

标签: php laravel server

我有一个laravel应用程序,可以在本地计算机上正常运行。我刚刚将其转移到服务器(共享主机)中,并将所有内容放在public_html的公用文件夹中,而所有其他内容都放在public_html上方的一步中。现在的问题是,每条路线上显示500内部错误。我已将.htaccess代码更改为文档中的给定代码,将存储和引导程序的文件夹权限设置为777。

错误日志中没有任何内容,laravel日志文件中也没有任何内容。当我安装新的laravel安装时,它也可以在服务器上工作。在我的项目中尝试过更新的代码,但仍然出现500个内部错误。

3 个答案:

答案 0 :(得分:1)

对于 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>

答案 1 :(得分:0)

该错误可能是由于.env文件的配置所致。您的问题还不够清楚。所以我将解释两种方法

带有供应商和.env文件(不推荐)  -解压缩主zip文件并上传您的public_html文件夹(上传    供应商文件夹)

赋予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克隆来克隆项目。

检查与Laravel要求一样,php.ini中具有所有必需的PHP扩展。另外,请注意您的PHP版本!

安装作曲家https://getcomposer.org/doc/00-intro.md

复制后,转到目标文件夹并运行作曲家安装

运行php artisan key:从命令行生成。

然后运行

php artisan cache:clear

php artisan config:clear

php artisan config:cache

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

确保您的网络服务器正在提供来自项目/公用文件夹的页面。

即使完成了这些步骤之后,如果Laravel仍然显示错误,请检查 your_project / storage / logs / laravel.log

答案 2 :(得分:0)

如果您使用的是IONOS(或1and1,也许还有其他用途……),则.htaccess文件应与laravel公共目录中的默认文件不同。

用以下内容替换其内容:

RewriteBase /

Options +FollowSymLinks
RewriteEngine On

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