在Laravel 5+ Ubuntu 14.04上获得500内部服务器错误
我已经在Windows操作系统上多次安装了Laravel,但从来没有发生过这种types的问题。 这个500内部服务器通常在你的“mod_rewrite”模块没有打开时发生。
不过,在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。 问题在于访问文件和需要权限。
为了解决这个问题,我通过terminal运行以下命令。
sudo chmod 755 -R laravel_blog
然后在下面input以允许laravel将文件写入存储文件夹
chmod -R o+w laravel_blog/storage
这两个命令解决了这个问题。
安装完后运行下面的命令
sudo chmod 755 -R laravel chmod -R o+w laravel/storage
这里“laravel”是laravel安装目录的名称
我遇到了类似的错误。 我检查了/var/log/apache2/error.log
的日志,发现一个UnexpectedValueException
我将所有者更改为项目目录下的存储文件夹的apache用户。
sudo chown -R www-data:www-data ./storage
在我的情况下,apache2进程的所有者是www-data
,所以将其更改为您的,这可以在apache2configuration文件中find。 希望这对你有用。
我用这个命令修复:
rm -rf app/storage/logs/laravel.logs chmod -R 777 app/storage, php artisan cache:clear, php artisan composer dump-autoload
比重新启动服务器的XAMPP矿另一个,应该工作。
可能另一个解决这个问题的方法
通过从项目的根目录运行composer命令来安装所需的软件包:
sudo composer install
有时PHP版本有问题。 我们需要从服务器更改php版本。 只需在.htaccess文件中写下string:
AddHandler application/x-httpd-php5 .php
在安装Laravel的目录中运行这两个命令:
sudo chmod 755 -R DIRECTORY_NAME chmod -R o+w DIRECTORY_NAME/storage
然后清除caching并转储自动加载:
php artisan cache:clear composer dump-autoload
一个新手,但这是我所做的,因为我没有钥匙
创build.env文件并运行
php artisan key:generate
这拉了一个git项目后为我工作
在laravel的根上运行这两个命令
find* -type d -print0 | xargs -0 chmod 0755#用于目录
找 。 -type f -print0 | xargs -0 chmod 0644#用于文件
根据日志:
[06-Feb-2016 22:38:48 Europe/Berlin] PHP Warning: require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:38:48 Europe/Berlin] PHP Fatal error: require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:43:37 Europe/Berlin] PHP Warning: require(/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17 [06-Feb-2016 22:43:37 Europe/Berlin] PHP Fatal error: require(): Failed opening required '/Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/../vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.0/lib/php') in /Users/tomsihap/Documents/Development/mamp/partie_1_exo/bootstrap/autoload.php on line 17
有些故障将文件打开到/ vendor文件夹中。
通过安装和更新通过composer php,我终于能够解决这个问题。
sudo composer install sudo composer update
确保具有写入权限(chmod o + w)的存储文件夹,对我来说就像一个魅力。
除了上面列出的原因之外,还有其他原因可能导致500个内部服务器错误。 包括丢失或旧的CSRF,语法错误,.htaccess错过configuration等。这里覆盖了一个完整的列表https://abbasharoon.me/how-to-fix-laravel-ajax-500-internal-server-error/
因为没有权利写日志的目录。
chmod 755 storage -R
首先为您的项目文件夹(比如说叫laravel),存储子文件夹及其日志子文件夹和供应商子文件夹(laravel / storage,laravel / storage / logs和laravel / vendor)提供所有权限。
然后检查你是否有.env文件 – 如果没有,你可以运行:
$ mv .env.example .env
将您的内置.env.example重命名为所需的.env。
否则打开debugging模式 – 打开.env并设置
APP_DEBUG=true
并打开laravel / config / app.php并更改
'debug' => env('APP_DEBUG', false),
至
'debug' => env('APP_DEBUG', true),
所以你可以找出你的错误是什么原因。
我遇到了这个问题,并通过升级我的PHP版本在Apache的5.6.x修复