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

Главные вкладки

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

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

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.

Лучший ответ

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 12 июля 2023 в 22:58
1

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

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

Комментарии

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 12 июля 2023 в 22:58
1

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

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

Аватар пользователя marassa marassa 13 июля 2023 в 6:47

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

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

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

Аватар пользователя VasyOK VasyOK 13 июля 2023 в 12:19

/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