“Uncaught exception ‘ErrorException’ with message ‘proc_open(): fork failed” en composer

Me apareció el siguiente error al hacer un update con composer:

PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:943

logo-composer-transparent

Pensaba que era el mismo error que tuve antes y que solucioné dándole memoria ilimitada al proceso PHP, pero no lo era y no funcionó. La única forma en la que lo conseguí solucionar fué actualizando PHP 5.3.10 a PHP 5.5.16 (PHP 5.4 también debería funcionar).

Primero hay que hacer un backup de los ficheros de configuración de Apache y PHP:

/etc/apache2/apache2.conf
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

Añadir el repositorio deseado:

  • PHP 5.4: sudo add-apt-repository ppa:ondrej/php5-oldstable
  • PHP 5.5: sudo add-apt-repository ppa:ondrej/php5

Y hacer update/upgrade:

sudo apt-get update
sudo apt-get upgrade

Probablemente te aparezca este mensaje:

The following packages have been kept back:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common
  libapache2-mod-php5 libapr1 libapr1-dev libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-dev libaprutil1-ldap libjson0 libjson0:i386 php-pear php5
  php5-cli php5-common php5-curl php5-dev php5-gd php5-imagick php5-intl
  php5-mcrypt php5-mysqlnd php5-pgsql php5-xdebug php5-xmlrpc php5-xsl
0 upgraded, 0 newly installed, 0 to remove and 29 not upgraded.

Puedes actualizarlos a mano:

sudo apt-get -y install php-pear php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imagick php5-intl php5-mcrypt php5-mysqlnd php5-pgsql php5-xdebug php5-xmlrpc php5-xsl

Luego limpiar todo lo que sobra:

sudo apt-get autoremove

Y luego actualizar el resto:

sudo apt-get -y install apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5

Durante el proceso de actualización se te preguntará qué hacer con tus ficheros originales de Apache y PHP. A mí me gusta dejar al proceso de actualización que los sustituya y luego los comparo yo a mano para actualizar todo lo necesario. Por ejemplo la librería xdebug.so en PHP 5.3 estaba en /usr/lib/php5/20090626/xdebug.so y en PHP 5.5 esta en /usr/lib/php5/20121212/xdebug.so.

ACTUALIZACIÓN: Apache 2.4 usa IncludeOptional en vez de Include y esto hizo que mis virtual host dejaran de funcionar. Lo cambié otra vez a Include y todo volvió a la normalidad.

Include sites-enabled/*.conf

Ref: https://github.com/composer/composer/issues/945
http://www.pixelite.co.nz/article/upgrading-php-54-ubuntu-1204-lts-support-drupal-8

You might also like

Solucionar “Fatal error: Allowed memory size of X bytes exhausted (tried to allocate X bytes)” con composer update
Me apareció el siguiente error al ejecutar composer update en uno de mis proyectos Symfony2:Fatal...

Actualizar composer y todos los paquetes instalados con él
php composer.phar self-update php composer.phar update...

Update composer and all packages installed with it
php composer.phar self-update php composer.phar update...

Install a Symfony2 application using Composer
Before installing any Symfony2 project you have to meet the minimum requirements for it in your server....

Dejar un comentario?

0 Comentarios.

Deje un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.