我正在尝试在 Vagrant VM 中运行 PHP 文件,该 VM 也使用 Composer 进行构建。
我收到以下错误:
PHP Warning: require(/var/www/CLIENT/vendor/composer/../phpseclib/phpseclib/phpseclib/bootstrap.php): failed to open stream: No such file or directory in /var/www/ispe/vendor/composer/autoload_real.php on line 66
Warning: require(/var/www/CLIENT/vendor/composer/../phpseclib/phpseclib/phpseclib/bootstrap.php): failed to open stream: No such file or directory in /var/www/CLIENT/vendor/composer/autoload_real.php on line 66
PHP Fatal error: require(): Failed opening required '/var/www/CLIENT/vendor/composer/../phpseclib/phpseclib/phpseclib/bootstrap.php' (include_path='.:/usr/share/php') in /var/www/CLIENT/vendor/composer/autoload_real.php on line 66
Fatal error: require(): Failed opening required '/var/www/CLIENT/vendor/composer/../phpseclib/phpseclib/phpseclib/bootstrap.php' (include_path='.:/usr/share/php') in /var/www/CLIENT/vendor/composer/autoload_real.php on line 66
现在据我所知,此特定功能或其他任何功能不需要 phpseclib (尽管我还没有 100% 确认其他任何位)。
即便如此,我还是决定将其添加到我的composer.json ("phpseclib/phpseclib": "2.0.4") 中以消除错误,但没有运气。
我对 Composer 相当陌生,所以我想知道我在这里可能做错了什么或者需要设置什么。
我可以确认目录
/var/www/CLIENT/vendor/composer/../phpseclib/phpseclib/phpseclib/
存在,但是目录中没有文件bootstrap.php。
相反,我看到以下内容:
Crypt File Math Net System
编辑:我还想澄清一下,文件 autoload.php 位于供应商目录内,并且 VM 的 PHP 版本是 7.0。
我坚信
cache
是问题所在,它不能100%确定,但请尝试销毁你的 Vagrant 实例,或者
您可以按照以下步骤操作:
vendor
文件夹composer.lock
composer clearcache
(或clear-cache
)composer install
Oneliner 可轻松复制/粘贴:
rm -rf vendor composer.lock && composer clearcache && composer install
对我来说,更改 Composer 版本解决了这个问题。我在使用最新的 Composer 版本时遇到了这个错误。
wget https://getcomposer.org/download/2.0.9/composer.phar
php81 -d memory_limit=-1 composer.phar clear-cache
php81 -d memory_limit=-1 composer.phar install