Tengo una aplicación web que redirige todas las solicitudes al host virtual a un controlador, que luego decide qué archivos incluir y ejecutar en función de la URL. Hay un servicio web que acepta archivos XML grandes a través de POST. Necesito el memory_limit y post_max_ para ser ~ 32M para la aplicación, excepto para el servicio que acepta el XML, que necesitará que sus límites estén más cerca de 1024M. ini_set('memory_limit','1024M')
funciona dentro del script, pero no funcionará para el post_max_size.¿Cómo establecer un memory_limit, post_max_size, y para un script específico en Apache/PHP?
Parece que no puedo entender cómo hacerlo. Estaba tratando algo similar a esto:
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test.com/html
php_admin_value include_path .:/var/www/test.com/includes:/var/www/test.com/includes/libs
php_value session.use_only_cookie 1
<Location />
php_value memory_limit 32M
php_value post_max_size 30M
php_value upload_max_filesize 29M
</Location>
<Location /services/big-service>
php_value memory_limit 1024M
php_value post_max_size 128M
</Location>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteCond %{REQUEST_URI} !^/(.*)(html|gif|jpg|png|ico|css|js|dtd|swf|flv|xml)$
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^/(.*)$ /Controller.php/$1 [PT]
</VirtualHost>
tanto, con la configuración anterior, si controller.php parece
<?php
echo '<pre>';
var_dump(ini_get('memory_limit'));
var_dump(ini_get('post_max_size'));
var_dump(ini_get('upload_max_filesize'));
voy a recibir cadena (3) "32M" cadena (3) "30M" cadena (3) "29M"
si volviese a http://test.com y http://test.com/services/big-service, pero me gustaría ver a los límites más altos para las direcciones URL posteriores.
¿Alguien tiene alguna solución para esto que no recurra a usar y acceder al script del servicio directamente a través de la URL?
Sí, tener un post_max_size mayor que memory_limit es un problema, ya que aparecerá Fatal Out (memoria agotada) cuando pase una publicación grande. – tandoan