1. proc_open():派生失败错误
$ composer update -vvv
Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 952
  [ErrorException]                                   
  proc_open(): fork failed - Cannot allocate memory 

因为 VPS 内存不足并且没有启用交换空间,所以可能发生这种情况。

$ free -m // 查看系统内存使用情况
              total        used        free      shared  buff/cache   available
Mem:           3789        2630         959           0         198         928
Swap:             0           0           0

一个临时解决方法如下,需要root权限操作

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 // dd 从/dev/zero设备复制出一个1G大小的文件/var/swap.1
/sbin/mkswap /var/swap.1 // mkswap 格式化/var/swap.1
/sbin/swapon /var/swap.1 // swapon 将swap分区挂在到文件系统

执行完成再输入 free -m 查看

$ free -m 
              total        used        free      shared  buff/cache   available
Mem:           3789        2634         180           0         974         906
Swap:          1023           0        1023

最后重新 composer update。 可以按照教程制作永久交换文件

  1. PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes)

解决方法:修改 PHP 的内存限制

$ php -i | grep memory // memory_limit => 2048M => 2048M
  1. windows 系统缺少 pcntl 扩展

laravel/horizon v1.2.3 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.

解决方法:Run composer with the --ignore-platform-reqs option and specify pcntl and posix

$ composer install --ignore-platform-reqs -vvv // 仅仅是为了其他扩展能够安装成功