新的Laravel项目投掷500错误:require():无法打开所需的autoload.php

时间:2015-12-04 09:56:13

标签: php apache laravel openssl lamp

我试图学习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已启用。

5 个答案:

答案 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在服务器上部署代码并且开发机器不同,则可能处于这种情况。这个答案是基于我所面对的场景以及如何解决的。