警告:require(...):无法打开流:没有这样的文件或目录

时间:2014-11-07 22:25:47

标签: php laravel require

刚刚在我的laravel网站上移动到我的实时服务器,并立即面对此错误。

完整的错误是:

Warning: require(/var/sites/b/beta.buildsanctuary.com/public_html/local/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /var/sites/b/beta.buildsanctuary.com/public_html/local/bootstrap/autoload.php on line 17

Fatal error: require(): Failed opening required '/var/sites/b/beta.buildsanctuary.com/public_html/local/bootstrap/../vendor/autoload.php' (include_path='.:/usr/local/lib/php') in /var/sites/b/beta.buildsanctuary.com/public_html/local/bootstrap/autoload.php on line 17

第17行是:

要求 DIR 。' /../ vendor / autoload.php';

文件夹结构是:

beta.buildsanctuary.com
  -- public_html
  -- subdomains
    -- beta
      -- local
        -- bootstrap
        -- vendor

出现问题的任何帮助?以及如何解决?尝试各种各样的路径,拔掉我的头发。

谢谢,克雷格。

5 个答案:

答案 0 :(得分:3)

从错误中可以看出,PHP正在寻找

public_html/local/bootstrap/../vendor/autoload.php`

public_html/local/vendor/autoload.php

该文件夹不存在。我认为你发布的文件夹结构是错误的。

无论如何,试试这个:

require('../vendor/autoload.php');

答案 1 :(得分:2)

我遇到了同样的问题,而且还没有在服务器中安装Composer,因此它在项目中创建的目录结构也不存在。

首先,您必须在服务器上安装composer,请按照作曲家项目网页https://getcomposer.org/上提供的系统说明进行操作。

接下来,您必须进入终端或cmd到项目的基本文件夹。

您可以使用命令行编辑器init,它将指导您将composer.json文件创建到项目中。

创建composer.json文件后,必须执行命令行编辑器安装。

此命令行将创建您在composer.json上编写的所有依赖项,并且还将创建文件夹结构,以便您需要的代码将找到正确的路径。

最后,您必须根据php文件的当前文件夹结构位置引用重定向到文件夹供应商。

如果您查找信息,http://www.phptherightway.com/确实非常有用。

答案 2 :(得分:2)

我坚信腐败的缓存是原因,我不能百分百肯定,但似乎它可能是罪魁祸首。

因此,如果有人遇到类似问题,我建议采取以下步骤:

  1. 删除供应商文件夹
  2. 删除composer.lock
  3. 运行命令composer clearcache(或clear-cache)
  4. 运行composer install
  5. 我希望这可以帮助别人。

答案 3 :(得分:0)

只需运行以下命令,它将自动安装必要的依赖项:

composer install

答案 4 :(得分:0)

当我将drupal网站迁移到新服务器时,我遇到了同样的问题... 为了解决这个问题,我刚使用了composer命令:

  1. 首先进入网站目录,EX: cd /var/www/your_website

  2. 运行composer来安装网站目录中需要的drupal 8依赖项;

  3. composer install

    如果您使用sudo命令,请确保.../vendor目录具有/var/www目录中的用户可以访问的权限;

    sudo composer install

    这基本上可以解决.../public_html/autoload.php on line 14问题!