¿Cómo puedo aumentar la línea de comandos memory_limit para PHP con MAMP PRO?


13

He editado todos y cada uno php.inien mi Mac (al menos todos los encontrados por "localizar") y todavía parece que no puede aumentar la memory_limitdirectiva para PHP.

Estoy usando MAMP PRO y ejecuto scripts PHP en la terminal.

¿Cómo resolver esto?

Respuestas:


15

En lugar de adivinar qué php.ini necesita modificar, ejecute este comando para ubicar el archivo:

php -r 'phpinfo();' | grep 'php.ini'

Aunque uso MAMP PRO, por defecto, mis comandos PHP de línea de comandos no se ejecutan usando su copia de PHP. En mi caso dice que el archivo se encuentra en/etc/php.ini

Una vez que haya localizado el archivo, siga las instrucciones en todas las otras respuestas para aumentar la configuración de memory_limit:

memory_limit = 256M

1
Tuve que cerrar el archivo predeterminado:cp /etc/php.ini.default /etc/php.ini
deweydb

4

Desde http://drupal.org/node/66187 (drupal puede ser irrelevante para sus necesidades, pero su sitio tenía una buena explicación: quería encontrarlo para usted y darles crédito)

Por defecto, MAMP tiene el límite de memoria que puede usar un script establecido en 8 MB, que es el valor predeterminado de PHP. Mirando el archivo php.ini recomendado por PHP, este límite de memoria normalmente se establece en 128 MB. Para ajustar esta cantidad, abra el archivo php.ini en un editor de texto y cambie la siguiente línea (aproximadamente en la línea 232):

memoria_limit = 8M; Cantidad máxima de memoria que un script puede consumir (8 MB)

Ubicaciones de archivos PHP.ini:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini
En MAMP PRO, no modifique el archivo directamente ya que se volverá a crear en cada inicio del servidor. Edite la plantilla apropiada (menú Archivo> Editar plantilla> ...) en su lugar.

Incluso con límites de memoria PHP más grandes, puede obtener errores de tiempo de espera al intentar importar grandes bases de datos de Drupal en MySQL. Estos problemas se analizan extensamente en otra parte con respecto a la memoria caché y la memoria caché de vistas. En general, la solución es vaciar el caché de Drupal antes de importar / exportar bases de datos a / desde MySQL.


No, esos límites ya estaban en 128 MB ...
Alex Weber

hmm tienes pro ... intenta editar la plantilla en su lugar. Aparentemente, el archivo php.ini se recrea cada vez. Instrucciones aquí: documentation.mamp.info/en/mamp-pro/how-tos/… ¿ Eso funciona? ¿Qué estás ejecutando en el servidor mamp?
dmg

todavía nada, todos los archivos php.ini que puedo encontrar (y las plantillas también) están todos con 128 MB pero php -r "phpinfo ();" El | grep memory_limit todavía devuelve memory_limit => 8M => 8M
Alex Weber

2

Para mí, hice lo siguiente:

Edite el /Applications/MAMP/conf/php5.4.4/php.ini

y

php.ini.temp

ser - estar:

memory_limit = 128M      ; Maximum amount of memory a script may consume (8MB)

Luego, en el buscador, simplemente haga que php.ini y php.ini.temp sean de solo lectura para todos los usuarios. De esta manera, MAMP no puede sobrescribirlo con los archivos predeterminados. Reinicie el servidor y verifique su phpinfo.


¡las cosas más simples pasan desapercibidas! Gracias por esta idea!
Kelly Johnson

1

Después de perder el tiempo por un tiempo, encontré algo que funcionó para mí:

# backup original php.ini
sudo mv /usr/bin/php /usr/bin/php.bkp

# create a symlink from MAMP's php.ini in /usr/bin directory
# (I use 5.2, change the path for 5.3)
sudo ln -s /Applications/MAMP/bin/php/php5.2.17/bin/php /usr/bin/php

¡Allí!


1

Una forma rápida y sucia de hacer esto es establecerlo como argumento al llamar a su secuencia de comandos.

Es decir:

php -d memory_limit=512M myScript.php 

0

si usa Homebrew , su configuración de php está en/usr/local/etc/php/<php version>


0

Si tiene Opcache activado en Mamp Pro, no obtendrá la configuración adecuada ... deténgalo, reinicie su servidor Mamp Pro ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.