刚刚将我的 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 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/ 真的很有帮助。
只需运行以下命令,它会自动安装必要的依赖项:
作曲家安装
尝试在 php.ini 中禁用扩展=套接字
当我将 drupal 网站迁移到新服务器时,我遇到了同样的问题...... 为了解决这个问题,我只是使用了composer命令:
首先cd进入网站目录,EX:
cd /var/www/your_website
运行composer在网站目录中安装所需的drupal 8依赖项;
composer install
如果使用 sudo 命令,请确保
.../vendor
目录具有 /var/www
目录中的用户访问的权限;
sudo composer install
这基本上就解决了
.../public_html/autoload.php on line 14
问题!