Configurar XCache + Administration Page en Nginx como virtual host

Una vez instalado Xcache en el sistema, se deben agregar sus directivas a la configuración a php (php.ini) para posteriormente reiniciar el servidor php y que Xcache entre en juego. Para tener monitorizado y controlado Xcache, se puede activar y configurar la página de administración de Xcache (Xcache Administration Page) bajo el servidor web. Desde la página de administración se puede vaciar la cache, ver su funcionamiento, configuración, scripts PHP cacheados, etc.

# Si se usa PHP por medio de php-fpm.
cat /etc/php5/conf.d/20-xcache.ini >> /etc/php5/fpm/php.ini
# Si se usa PHP por medio de fast-cgi.
cat /etc/php5/conf.d/20-xcache.ini >> /etc/php5/cgi/php.ini
# Si se usa PHP por medio de de la linea de comando PHP-CLI.
cat /etc/php5/conf.d/20-xcache.ini >> /etc/php5/cli/php.ini

Documentación de Xcache.

Crear una password en md5 para Xcache (xcache.admin.pass).

echo -n PASSWORDDEMODA | md5sum
ac63198426f5c043e1710707ba0fde19

Fichero php.ini.

xcache.admin.pass = "ac63198426f5c043e1710707ba0fde19"

Página de administración de Xcache en Nginx

Se copian los directorios del panel de Xcache al dominio que se considere oportuno, para el ejemplo se crea el directorio xcache.

mkdir /usr/share/nginx/www/xcache/
cp -r /usr/share/xcache/ /usr/share/nginx/www/xcache/
 
# Asignar el propietario de Nginx (www-data, nobody, nginx,...).
chown -R www-data:www-data /usr/share/nginx/www/xcache/
 
# En el caso de utilizar php-fpm.
service service php5-fpm restart

Configuración de Nginx para el nuevo subdominio. (xcache.dominio.com)

NOTA: Previamente se ha debido configurar el subdominio “xcache.dominio.com” en el panel del DNS.

Ejemplo de configuración para “Administration Page” en Nginx como host virtual.

Creamos el fichero /etc/nginx/sites-enabled/xcache

  server {
  server_name xcache.dominio.com;
 
  ############################
  listen 80;
  autoindex off;
  client_max_body_size 15M;
  client_body_buffer_size 128k;
  index index.html index.htm index.php doku.php;
  access_log  /var/log/nginx/xcache/access.log;
  error_log  /var/log/nginx/xcache/error.log;
  root /usr/share/nginx/www/dominio/xcache/admin;
  error_page 500 502 503 504 404 403 /404.html;
  include /etc/nginx/block.conf;
 
  location / {
     root   /usr/share/nginx/www/dominio/xcache/admin;
     allow all;
  }
 
  location ~ \.php$ {
     try_files $uri =404;
     fastcgi_pass   unix:/var/run/php5-fpm.sock;
     fastcgi_index  index.php;
     include /etc/nginx/fastcgi_params;
     fastcgi_param  QUERY_STRING     $query_string;
     fastcgi_param  REQUEST_METHOD   $request_method;
     fastcgi_param  CONTENT_TYPE     $content_type;
     fastcgi_param  CONTENT_LENGTH   $content_length;
     fastcgi_intercept_errors        on;
     fastcgi_ignore_client_abort     off;
     fastcgi_connect_timeout 60;
     fastcgi_send_timeout 180;
     fastcgi_read_timeout 180;
     fastcgi_buffer_size 128k;
     fastcgi_buffers 4 256k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
     fastcgi_param  PATH_INFO        $uri;
     fastcgi_param HTTPS $php_https;#DW checks $_SERVER['HTTPS']
     fastcgi_param HTTPS on;
    }
}