有时候在Ubuntu部署laravel项目的时候安装composer install会提示The Process class relies on proc_open, which is not available on your PHP installation.这种问题有两种解决方:
第一种就是网上说的删除php.ini文件里的disable_functions选项中的proc_open
详细命令如下:
每个人安装的PHP版本都不同,安装的路径也不同,使用以下命令找到php.ini配置文件,这个命令会列出php.ini所在的路径,找到后删除disable_functions选项中的proc_open即可。
find / -name php.ini
如果第一种方法没有作用,还是报错,比如:phar:///usr/local/bin/composer/vendor/symfony/process/Process.php on line 1345
那么可以试试删除composer。
apt remove composer
如果提示不能删除或者找不到composer那么就重新安装试试。
apt install composer
一般重新安装composer还是不行,因为你的系统缺少一些 PHP 扩展,Composer 需要这些扩展来运行。以下命令安装扩展
安装 ext-curl:
sudo apt install php-curl
安装 ext-dom:
sudo apt install php-xml
安装 ext-xml:
sudo apt install php-xml
安装完这些扩展后,重启 Apache 或nginx 或 PHP-FPM 服务以使更改生效:
systemctl restart apache2
systemctl restart nginx
systemctl restart php-fpm
我的环境是Ubuntu22.04.3 PHP8.0.2