The Process class relies on proc_open, which is not available on your PHP installation

12 июля 2023 в 21:25
Аватар пользователя VasyOK VasyOK 0 6 Решено

Сначала при установке одного модуля получил

In Process.php line 146:                                                                              
The Process class relies on proc_open, which is not available on your PHP installation.

Потом при патче другого модуля получил похожее предупреждение.

Что делать? Drupal 9, PHP 8.1.

Комментарии

я уже отвечал в другой теме.
1. включить proc_open в админке или в ини файле пхп
2. обратиться в техподдержку.
3. поменять хостинг.

можно сразу пункт 3

12 июля 2023 в 22:58

Если поменять настройки PHP на хостинге невозможно, то можно запускать composer вот таким хитровывернутым методом:

php -d "disable_functions=" /path/to/composer [команды composer]

Но это, конечно, костыль.

13 июля 2023 в 6:47

/etc/php81/etc/php.ini

Убрал

disable_functions = ...proc_open...

Теперь при вызове Композера пишет ошибку:

PHP Fatal error:  Uncaught Error: Call to undefined function Symfony\Component\Process\proc_get_status() in phar:///usr/local/bin/composer/vendor/symfony/process/Process.php:1345
Stack trace:
#0 phar:///usr/local/bin/composer/vendor/symfony/process/Process.php(367): Symfony\Component\Process\Process->updateStatus()
#1 phar:///usr/local/bin/composer/vendor/symfony/process/Process.php(252): Symfony\Component\Process\Process->start()
#2 phar:///usr/local/bin/composer/src/Composer/Util/ProcessExecutor.php(128): Symfony\Component\Process\Process->run()
#3 phar:///usr/local/bin/composer/src/Composer/Util/ProcessExecutor.php(74): Composer\Util\ProcessExecutor->doExecute()
#4 phar:///usr/local/bin/composer/src/Composer/Package/Version/VersionGuesser.php(142): Composer\Util\ProcessExecutor->execute()
#5 phar:///usr/local/bin/composer/src/Composer/Package/Version/VersionGuesser.php(77): Composer\Package\Version\VersionGuesser->guessGitVersion()
#6 phar:///usr/local/bin/composer/src/Composer/Package/Loader/RootPackageLoader.php(89): Composer\Package\Version\VersionGuesser->guessVersion()
#7 phar:///usr/local/bin/composer/src/Composer/Factory.php(381): Composer\Package\Loader\RootPackageLoader->load()
#8 phar:///usr/local/bin/composer/src/Composer/Factory.php(630): Composer\Factory->createComposer()
#9 phar:///usr/local/bin/composer/src/Composer/Console/Application.php(470): Composer\Factory::create()
#10 phar:///usr/local/bin/composer/src/Composer/Console/Application.php(594): Composer\Console\Application->getComposer()
#11 phar:///usr/local/bin/composer/src/Composer/Console/Application.php(212): Composer\Console\Application->getPluginCommands()
#12 phar:///usr/local/bin/composer/vendor/symfony/console/Application.php(171): Composer\Console\Application->doRun()
#13 phar:///usr/local/bin/composer/src/Composer/Console/Application.php(130): Symfony\Component\Console\Application->run()
#14 phar:///usr/local/bin/composer/bin/composer(88): Composer\Console\Application->run()
#15 /usr/local/bin/composer(29): require('...')
#16 {main}
  thrown in phar:///usr/local/bin/composer/vendor/symfony/process/Process.php on line 1345
13 июля 2023 в 12:19