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


Warning: require(...): failed to open stream: No such file or directory in

刚从我的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

哪里出了问题有什么帮助吗?如何修复?把我的头发拔出来,试着走各种各样的路。

谢谢,克雷格。

我坚信缓存损坏是原因,我不能100%确定,但它似乎是罪魁祸首。

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

  1. 删除供应商文件夹
  2. 删除composer.lock
  3. 运行命令composer clearcache(或清除缓存)
  4. 运行composer install

我希望这能帮助到别人。

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

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

哪个是

public_html/local/vendor/autoload.php

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

无论如何,试试这个:

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

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

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

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

在那里,您可以使用命令行composer init,它将指导您在项目中创建composer.json文件。

一旦创建了composer.json文件,就必须执行命令行composer安装。

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

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

如果您查找信息,http://www.phptherightway.com/真的很有帮助。

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

composer安装

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

  1. 第一张光盘进入网站目录,EX:cd /var/www/your_website

  2. 运行composer在网站目录中安装所需的drupal8依赖项;

composer install

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

sudo composer install

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