我试图学习laravel,我正试图在我的服务器上进行设置。
我一丝不苟地遵循本教程中的所有说明,同时根据我自己的目录名称更改了一些变量: http://davidmyers.name/post/laravel-on-digital-ocean
当我访问laravel项目的公共文件夹时,仅抛出500错误。当我尝试访问任何其他页面(如PHPMyAdmin或任何其他PHP或HTML页面)时,该页面就可以正常运行。
我引用的教程中是否包含任何我可能遗漏的内容?我仔细检查了我是否正确地遵循了所有步骤。
此外,在目录中运行composer update会引发此错误:
[RuntimeException]
Error Output: PHP Warning: require(/var/www/html/testproj/bootstrap/../vendor/autoload.php): failed to open stream: No
such file or directory in /var/www/html/testproj/bootstrap/autoload.php on line 17
PHP Fatal error: require(): Failed opening required '/var/www/html/testproj/bootstrap/../vendor/autoload.php' (include
_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/testproj/bootstrap/autoload.php on line 17
我发现了这个相关的stackoverflow文章: Laravel 5 Failed opening required bootstrap/../vendor/autoload.php 但是解决方案对我不起作用,因为我的phpinfo()表明OpenSSL已启用。
答案 0 :(得分:3)
问题是服务器无法访问这些位置。 运行以下命令
sudo chmod 755 -R "your project name"
然后
chmod -R o+w "your project name" /storage
如果仍然无法运行,请尝试运行:
sudo chmod 775-R "your project name"
sudo chmod 775-R "your project name"/storage
或
sudo chmod 777-R "your project name"
sudo chmod 777-R "your project name"/storage
答案 1 :(得分:1)
你运行composer install
了吗?这应该在安装后自动运行php artisan optimize
,我认为这是创建相关文件的命令。
答案 2 :(得分:1)
您必须使用以下命令安装依赖项:
composer install
然后授予storage
目录的正确权限:
chmod 777 -R storage
或
sudo chmod 777 -R storage
答案 3 :(得分:1)
事实证明我正在做的一切正确,但是当我去运行composer install
时,我没有看到由于我的服务器没有足够的内存而导致安装错误。增加服务器的内存可以解决问题。
答案 4 :(得分:0)
有两件事要考虑, 1. Web服务器抛出500错误(好像文本和字体来自Chrome)或 2.应用程序显示500错误(带有精美的图像和文字)
案例1:您可能需要安装作曲家
sudo composer install
情况2:检查对storage /的适当权限(如其他答案所建议),并检查是否具有.env文件。如果没有,请复制.env.example并重命名为.env,并且还需要生成应用程序密钥。
sudo php artisan key:generate
PS:大多数情况下,如果您使用git在服务器上部署代码并且开发机器不同,则可能处于这种情况。这个答案是基于我所面对的场景以及如何解决的。