Ich habe eine Webanwendung, die alle Anforderungen an den virtuellen Host an einen Controller umleitet, der dann entscheidet, welche Dateien auf der Grundlage der URL einzuschließen und auszuführen sind. Es gibt einen Webdienst, der große XML-Dateien per POST annimmt. Ich brauche die memory_limit und post_max_ zu ~32M für die app, außer für den Dienst, der die XML akzeptiert, die ihre Grenzen näher an 1024M sein müssen. ini_set('memory_limit','1024M')
funktioniert innerhalb des Skripts, aber nicht für die post_max_size.
Ich kann nicht herausfinden, wie man das macht. Ich habe etwas Ähnliches wie das hier versucht:
<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>
Wenn also die Controller.php mit der obigen Konfiguration wie folgt aussieht
<?php
echo '<pre>';
var_dump(ini_get('memory_limit'));
var_dump(ini_get('post_max_size'));
var_dump(ini_get('upload_max_filesize'));
I Zeichenfolge(3) "32M" Zeichenfolge(3) "30M" Zeichenfolge(3) "29M"
wenn ich besuche http://test.com y http://test.com/services/big-service aber ich würde gerne die höheren Grenzwerte für die späteren URLs sehen.
Hat jemand eine Lösung für dieses Problem, die nicht auf die Verwendung und den Zugriff auf das Service-Skript direkt über die URL zurückgreifen?