刚从我的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%确定,但它似乎是罪魁祸首。
因此,如果有人遇到类似的问题,我建议采取以下步骤:
- 删除供应商文件夹
- 删除composer.lock
- 运行命令
composer clearcache
(或清除缓存) - 运行
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命令:
-
第一张光盘进入网站目录,EX:
cd /var/www/your_website
-
运行composer在网站目录中安装所需的drupal8依赖项;
composer install
如果使用sudo命令,请确保.../vendor
目录具有由/var/www
目录中的用户访问的权限;
sudo composer install
这将基本解决.../public_html/autoload.php on line 14
问题!