问题描述
我在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的某些问题。
编辑:
-
看看https://getcomposer.org/doc/faqs/how-to-install-untrusted-packages-safely.md看看为什么以root身份运行composer安装不是一个好主意
-
如果您需要以root用户身份运行,请提供以下标志,以阻止第三方代码执行durin install –no-plugins –no-scripts
第八种思路
我安装了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