New Laravel Project Throwing 500 Error: require(): Failed opening required autoload.php

New Laravel Project Throwing 500 Error: require(): Failed opening required autoload.php

我正在努力学习 laravel 并且正在尝试在我的服务器上进行设置。

我严格按照本教程中的所有说明进行操作,同时根据我自己的目录名称更改了一些变量: http://davidmyers.name/post/laravel-on-digital-ocean

仅当我访问 laravel 项目的 public 文件夹时才会抛出 500 错误。当我尝试访问任何其他页面(例如 PHPMyAdmin 或任何其他 PHP 或 HTML 页面时,该页面正常显示。

是否有任何我可能遗漏的内容未包含在我引用的教程中?我仔细检查了我是否正确执行了所有步骤。

此外,运行 目录中的 composer 更新会抛出此错误:

 [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

我找到这篇相关的 Whosebug 文章: 但该解决方案对我不起作用,因为我的 phpinfo() 显示已启用 OpenSSL。

你有运行composer install吗?这应该会在安装后自动 运行 php artisan optimize,我相信这是创建相关文件的命令。

问题是服务器无法访问这些位置。 运行 以下命令

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

您必须使用 composer 安装依赖项:

composer install

然后赋予storage目录权限:

chmod 777 -R storage

sudo chmod 777 -R storage

事实证明我做的一切都是对的,但是当我去 运行 composer install 我没有看到它抛出安装错误,因为我的服务器没有足够的内存.增加我的服务器内存解决了这个问题。

有两件事需要考虑, 1. Web 服务器抛出 500 错误(好像文本和字体来自 Chrome)或 2. 应用显示500错误(图文并茂)

情况 1:您可能需要安装 composer

    sudo composer install

案例 2:检查适当的存储权限/(如其他答案所建议的那样)并检查您是否有 .env 文件。如果不复制 .env.example 并重命名为 .env 并且您还需要生成应用程序密钥。

    sudo php artisan key:generate

PS:如果您使用git在服务器上部署您的代码并且您的开发机器不同,您可能会遇到这种情况。这个答案是基于我遇到的场景以及它是如何解决的。