Nginx – another php.ini for domain with nginx php-fpm working in fastcgi

fastcginginxphp-fpmphp.ini

I working with nginx and php-fpm
and use unix:/cls/php-fpm.socket;

I have enable xcache for hole server setting it in php.ini

and want to disable xcache for 1 domain

I did it with this in server config in nginx

location ~ ^/.+\.php {  
    fastcgi_pass backend;    
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME /home/user/public_html/$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=\"/home/user/public_html/:/tmp:/usr/local/lib/php:\" 
    xcache.cacher=\"Off\"
    xcache.size=\"0\"
    xcache.stat=\"Off\"
    xcache.var_size=\"0\"
    include_path=\"/usr/lib/php:/usr/local/lib/php:/tmp:/home/user/public_html/\"";    
    include /etc/nginx/fastcgi_params;
    }

this should disable xcache, and when try to use phpinfo on that domain
its give me that xcache install but xcache.size=0 // that mean its disabled

but while browseing cache is still enable . don't know why?

I try to use custom php.ini for that domain, but don't know how
after search found this
user_ini.filename=\"/etc/php/php3.ini\"
(php3.ini not have xcache extension)

how to use custom php.ini for 1 domain with nginx and php-fpm and fastcgi

try to use it , but not working

Best Answer

there is a special section in php-fpm.conf / www.conf file, to override php.ini per pool :

; Additional php.ini defines, specific to this pool of workers. These settings
    ; overwrite the values previously defined in the php.ini. The directives are the
    ; same as the PHP SAPI:
    ;   php_value/php_flag             - you can set classic ini defines which can
    ;                                    be overwritten from PHP call 'ini_set'. 
    ;   php_admin_value/php_admin_flag - these directives won't be overwritten by
    ;                                     PHP call 'ini_set'
    ; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.

    ; Defining 'extension' will load the corresponding shared extension from
    ; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
    ; overwrite previously defined php.ini values, but will append the new value
    ; instead.

    ; Note: path INI options can be relative and will be expanded with the prefix
    ; (pool, global or /usr)

    ; Default Value: nothing is defined by default except the values in php.ini and
    ;                specified at startup with the -d argument
    ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
    ;php_flag[display_errors] = off
    ;php_admin_value[error_log] = /var/log/fpm-php.www.log
    ;php_admin_flag[log_errors] = on
    ;php_admin_value[memory_limit] = 32M