Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Composer - failed opening required for phpseclib

I am trying to run a PHP file in a Vagrant VM which also uses composer for the build.

I am getting the following errors:

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

Now as far as I can tell, phpseclib shouldn't be required for this particular functionality, or anything else (though I haven't 100% confirmed the anything else bit yet).

Even so, I decided to add it to my composer.json ("phpseclib/phpseclib": "2.0.4") to get rid of the errors, with no luck.

I'm fairly new to Composer, so I am wondering precisely what I might be doing wrong here or what needs to be setup.

I can confirm that the directory /var/www/CLIENT/vendor/composer/../phpseclib/phpseclib/phpseclib/ exists, however there is no file bootstrap.php inside the directory.

Instead I see the following:

Crypt  File  Math  Net  System

EDIT: I also want to clarify that the file autoload.php is inside the vendor directory and that the PHP version of the VM is 7.0.

like image 964
Steven Matthews Avatar asked Dec 21 '16 16:12

Steven Matthews


2 Answers

I strongly believe that the cache is the problem, It cannot be 100% sure but try destroying your Vagrant instance, or

You could follow the following steps:

  1. Delete the vendor folder
  2. Delete composer.lock
  3. Run the command composer clearcache (or clear-cache)
  4. Run composer install
like image 103
Saumya Rastogi Avatar answered Sep 19 '22 15:09

Saumya Rastogi


Oneliner for easy copy/pasting:

rm -rf vendor composer.lock && composer clearcache && composer install
like image 44
Flyke Avatar answered Sep 16 '22 15:09

Flyke