¿Alguien sabe si puede anular una directiva ProxyFCGISetEnvIf en una sección de directorio? La documentación para mod_proxy_fcgi de apache dice que es válido en una sección, pero no veo que ProxyFCGISetEnvIf se aplique cuando esté en el directorio.
Aquí hay un ejemplo:
<VirtualHost *:443> ServerName test7.com ServerAlias DocumentRoot /var/www/test ProxyPassMatch ^(.*\.php)$ fcgi://127.0.0.1:9001/var/www/test/$1 ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/var/www/test:/usr/share/php:/usr/share/pear \n upload_tmp_dir=/tmp; \n session.save_path=/var/www/php_sessions;" <Directory "/var/www/test/cooldir"> ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/var/www/test:/var/www:/usr/share/php:/usr/share/pear \n upload_tmp_dir=/tmp; \n session.save_path=/var/www/php_sessions;" </Directory> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/test7.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/test7.com/privkey.pem </VirtualHost>Cuando estoy en el directorio "cooldir", phpinfo() muestra que el valor de la variable open_basedir no cambió. Entonces, ¿cuál es la jerarquía de los valores ProxyFCGISetEnvIf en mod_proxy_fcgi? Me imagino que debería funcionar como nginx con declaraciones de directorio específicas que anulan el nivel superior. Por ejemplo, en nginx, esto funciona:
location /cooldir { root /var/www/test/; index index.php index.html index.htm; location ~ ^/cooldir/(.+\.php)$ { try_files $uri =404; root /var/www/test/; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www:/tmp:/usr/share:/var/www/php_sessions \n upload_tmp_dir=/tmp \n session.save_path=/var/www/php_sessions"; include /etc/nginx/fastcgi_params; limit_req zone=one burst=5; } }Cualquier ayuda es apreciada.
Debe usar una directiva <Location> en lugar de una <Directory> de acuerdo con una respuesta que recibí en la lista de correo de usuarios de apache:
<Location "/webmail"> ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/var/lib/roundcube:/etc/roundcube:/usr/share:/tmp:/var/www/php_sessions:/var/log/roundcube; \n upload_tmp_dir=/tmp; \n session.save_path=/var/www/php_sessions;" </Location>