当前位置: 首页>>技术教程>>正文


php – 在Laravel 5+ Ubuntu 14.04上出现500个内部服务器错误

, , , ,

问题描述

我在Windows操作系统上安装了Laravel多次,但从未发生过此类问题。当您的”mod_rewrite”模块未打开时,通常会出现这500个内部服务器。

但是,在Ubuntu 14.04上,这个问题让我头疼。我已经安装了rewrite_mod,但它也无法正常工作。我已授予访问我内部所有文件夹和文件的权限,即

/var/www/html/laravel_project

仍然不起作用。 .htaccess也从原始更改为此。

    +FollowSymLinks
RewriteEngine On

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

我也有Laravel 5+所需的所有必要扩展。还有我没做的事吗?

最佳思路

终于克服了这个问题

  • 不是.htaccess文件是问题,也不是index.php。问题出在访问文件并需要权限。

为了解决这个问题,我通过终端运行了以下命令。

sudo chmod -R 755 laravel_blog

然后在下面键入以允许laravel将文件写入存储文件夹

chmod -R o+w laravel_blog/storage

这两个命令解决了这个问题。

次佳思路

创建.env文件并运行:

php artisan key:generate

在拉动git项目后,这对我有用。

创建.env文件并生成密钥后,运行以下代码:

php artisan cache:clear 
php artisan config:clear

第三种思路

安装后运行以下命令

sudo chmod 755 -R laravel
chmod -R o+w laravel/storage

“laravel”是laravel安装目录的名称

第四种思路

尝试检查您是否有.env文件。

通常,这件事会导致类似的事情。尝试创建一个文件,然后从.env.example复制所有内容,将其粘贴到您创建的文件中,并将其命名为.env。或jsut只需将.env.example文件重命名为.env并运行php artisan key:generate

第五种思路

我使用以下命令修复了问题:

   rm -rf app/storage/logs/laravel.logs
   chmod -R 777 app/storage,
   php artisan cache:clear,
   php artisan dump-autoload OR composer dump-autoload

然后重新启动服务器,而不是XAMPP或另一台,这应该可以正常工作。

第六种思路

我遇到了类似的错误。我检查了/var/log/apache2/error.log中的日志,发现了UnexpectedValueException

我将所有者更改为项目目录下存储文件夹的apache用户。

sudo chown -R www-data:www-data ./storage

在我的情况下,apache2进程的所有者是www-data,因此将其更改为您的所有者,可以在apache2的配置文件中找到它。希望这对您有用。

第七种思路

也许可以解决这个问题:

通过从项目的根目录运行composer命令来安装所需的软件包:

sudo composer install

更新:

  • 您不应该在生产服务器上运行此命令,但是可以在本地envs上解决composer的某些问题。

编辑:

第八种思路

我安装了PHP 7.0和PHP 7.1,并且在命令行上使用PHP 7.1,并且在Apache上启用了PHP 7.0,当您将Laravel Framework和localhost Apache2与laravel一起使用时,可能会带来麻烦。

首先检查您的作曲家文件以查看您的PHP版本。

"php": "^7.1.3",
"laravel/framework": "5.6.*",

在命令行上检查您当前的php版本

php -v

检查您当前在Apache上启用的php版本,我确实使用浏览器。

http://localhost

如果不一致,请禁用当前版本并启用最新版本。

sudo a2dismod php7.2

sudo a2enmod php7.1

sudo service apache2 restart

之后,更改文件夹权限

sudo chmod 755 -R blog

用于存储文件夹

chmod -R o+w blog/storage

第九种思路

有时php版本存在问题。我们需要从服务器更改php版本。只需在.htaccess文件中的字符串下方写下:

AddHandler application/x-httpd-php5 .php

第十种思路

在安装Laravel的目录中运行以下两个命令:

sudo chmod 755 -R DIRECTORY_NAME
chmod -R o+w DIRECTORY_NAME/storage

然后清除缓存并转储自动加载:

php artisan cache:clear
composer dump-autoload

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8835.html,未经允许,请勿转载。