PHP and SSL errors during install

I’m trying to install Commerce on a fresh MODX 2.8.4 install on an also newly setup Debian11 server, running PHP 8.0. The setup breaks during the install though.

I get these errors:

// 1
- Root composer.json requires PHP extension ext-soap * but it is missing from your system. Install or enable PHP's soap extension.

// 2
PHP warning: file_put_contents(.../core/components/commerce/vendor/guzzle/guzzle/src/Guzzle/Http/Resources/cacert.pem): Failed to open stream: No such file or directory

// 3
Failed writing updated SSL Root Certificates for legacy integrations. If you get SSL errors when using payment gateways, manually updating the certificates file may resolve that. Contact support@modmore.com for assistance.
Full log
Console running...
Attempting to install package with signature: commerce-1.2.7-pl
Package found...now preparing to install.
Grabbing package workspace...
Workspace environment initiated, now installing package...
Checking minimum requirements...
- MODX 2.7+ (minimum): ✔ 2.8.4-pl
- MODX 2.7+ (minimum per 2019-11-27): ✔ 2.8.4-pl
- PHP 7.1+ (minimum): ✔ 8.0.25
- PHP 7.1+ (minimum per 2019-07-01): ✔ 8.0.25
Minimum requirements look good! Do note that there are more requirements for enabling live mode on your shop, navigate to Extras > Commerce > Configuration to see if those requirements are met.
Checking (optional) recommended versions...
- PHP 7.4+ (minimum): ✔ 8.0.25
- PHP 7.4+ (minimum per 2021-12-06): ✔ 8.0.25
Installing files from .../core/packages/commerce-1.2.7-pl/xPDOFileVehicle/071c5b608f6fdf67098aeb3a3968ef77/ to .../core/components/commerce
Installing files from .../core/packages/commerce-1.2.7-pl/xPDOFileVehicle/d2a16acad96f7632c848a42e8f4c598d/ to .../assets/components/commerce
Installing/updating dependencies, this may take some time...
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update `.
Your lock file does not contain a compatible set of packages. Please run composer update.

Problem 1
- Root composer.json requires PHP extension ext-soap * but it is missing from your system. Install or enable PHP's soap extension.

To enable extensions, verify that they are enabled in your .ini files:
- /etc/php/8.0/apache2/php.ini
- /etc/php/8.0/apache2/conf.d/10-mysqlnd.ini
- /etc/php/8.0/apache2/conf.d/10-opcache.ini
- /etc/php/8.0/apache2/conf.d/10-pdo.ini
- /etc/php/8.0/apache2/conf.d/15-xml.ini
- /etc/php/8.0/apache2/conf.d/20-calendar.ini
- /etc/php/8.0/apache2/conf.d/20-ctype.ini
- /etc/php/8.0/apache2/conf.d/20-curl.ini
- /etc/php/8.0/apache2/conf.d/20-dom.ini
- /etc/php/8.0/apache2/conf.d/20-exif.ini
- /etc/php/8.0/apache2/conf.d/20-ffi.ini
- /etc/php/8.0/apache2/conf.d/20-fileinfo.ini
- /etc/php/8.0/apache2/conf.d/20-ftp.ini
- /etc/php/8.0/apache2/conf.d/20-gd.ini
- /etc/php/8.0/apache2/conf.d/20-gettext.ini
- /etc/php/8.0/apache2/conf.d/20-iconv.ini
- /etc/php/8.0/apache2/conf.d/20-imagick.ini
- /etc/php/8.0/apache2/conf.d/20-mbstring.ini
- /etc/php/8.0/apache2/conf.d/20-mysqli.ini
- /etc/php/8.0/apache2/conf.d/20-pdo_mysql.ini
- /etc/php/8.0/apache2/conf.d/20-phar.ini
- /etc/php/8.0/apache2/conf.d/20-posix.ini
- /etc/php/8.0/apache2/conf.d/20-readline.ini
- /etc/php/8.0/apache2/conf.d/20-shmop.ini
- /etc/php/8.0/apache2/conf.d/20-simplexml.ini
- /etc/php/8.0/apache2/conf.d/20-sockets.ini
- /etc/php/8.0/apache2/conf.d/20-sysvmsg.ini
- /etc/php/8.0/apache2/conf.d/20-sysvsem.ini
- /etc/php/8.0/apache2/conf.d/20-sysvshm.ini
- /etc/php/8.0/apache2/conf.d/20-tokenizer.ini
- /etc/php/8.0/apache2/conf.d/20-xmlreader.ini
- /etc/php/8.0/apache2/conf.d/20-xmlwriter.ini
- /etc/php/8.0/apache2/conf.d/20-xsl.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
PHP warning: file_put_contents(.../core/components/commerce/vendor/guzzle/guzzle/src/Guzzle/Http/Resources/cacert.pem): Failed to open stream: No such file or directory
Failed writing updated SSL Root Certificates for legacy integrations. If you get SSL errors when using payment gateways, manually updating the certificates file may resolve that. Contact support@modmore.com for assistance.
Making sure database connection is still alive..
Still connected. Continuing installation.
modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.
modRestClient::__construct is deprecated since version 2.3.0. Use the modRest classes instead.
Package decrypted!

Error #1 seems straight forward the missing package php-soap. But after installing that I tried to start the commerce install again, which greets me with this message:

Trying to load Commerce caused an error: Exception with message Could not load autoloader, file does not exist at …/core/components/commerce/vendor/autoload.php. Are dependencies properly installed? – Commerce likely was installed but encountered an unexpected error. Choosing any of the options below may cause duplicates.

What is the recommended approach here? Do I have to manually clear the components/commerce folder or is it fine to install again? So far no resources or templates have been created.

Recommendations for errors #2 and #3?

Either remove core/components/commerce/, or run composer install in its directory. This is a case that can get you kinda stuck. After that, run reinstall.

#2 and #3 are safe to ignore. That’s actually caused by #1 failing to install dependencies.

Thanks, deleting the folder, fixing the missing dependencies and installing again seems to have worked. I still get these warnings though:

PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/installed.json): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/installed.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/InstalledVersions.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/autoload_namespaces.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/autoload_psr4.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/autoload_classmap.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/autoload_files.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/autoload_static.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/platform_check.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/autoload.php): Failed to open stream: No such file or directory
PHP warning: file_get_contents(.../core/components/commerce/vendor/composer/autoload_real.php): Failed to open stream: No such file or directory

Are these safe to ignore?

No, that does indicate a problem. Did the installation go without problems? Try that again perhaps?

Atleast it got all the way through, and besides the mentioned warnings above (and the known __construct is deprecated warnings) nothing was highlighted.

See the full report attached:
output-commerce-install-2022-11-24 1755.xml (25.7 KB)

A tried Reinstall is now stuck at

Attempting to preserve files at …/core/components/commerce into archive …/core/packages/commerce-1.2.7-pl/xPDOFileVehicle/071c5b608f6fdf67098aeb3a3968ef77.preserved.zip

and it doesn’t seem like it will continue. Atleast it has been a few minutes now…

Just to follow-up on this for others stumbling across it in the future; this particular server lacked the zip extension in PHP and was running into a fatal error because of that (in combination with a potential MODX core bug).

Installing the php-zip package and enabling the zip extension solved it.

1 Like