Instalar XCACHE integrado con Lighttpd en CentOS

XCache es un opcode PHP cacher creado por Jan Kneschke creador de Lighttpd. Se ha probado en servidores en produccion con alta carga dando unos resultados francamente buenos.  Según algunos, dando mucho mejor resultado en diversas aplicaciones como Vbulletin que otros como Eaccelerator/APC/IonCube/Zend.

Instalación de Requisitos previos para compilar XCACHE

yum install php-devel

yum groupinstall ‘Development Tools’

yum groupinstall ‘Development Libraries’

Descarga y compilación de XCACHE

cd /tmp
wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
tar xvfz xcache-1.2.2.tar.gz
cd xcache-1.2.2
phpize
./configure –enable-xcache
make
make install

Configurando XCACHE

cp xcache.ini /etc/php.d
vi /etc/php.d/xcache.ini

Opciones de configuración

zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so

* Debemos indicar el lugar donde esta situado el modulo de Xcache

xcache.size = 32M

* Cualquier valor superior a 0 habilita Xcache. 0 lo deshabilita

Todas las opciones de configuración están en la pagina oficial: http://xcache.lighttpd.net/wiki/XcacheIni

Reiniciamos Lighttpd

service lighttpd restart

Si todo ha ido bien, deberíamos tener cargado la extensión de XCACHE para nuestro PHP:

PHP 5.1.6 (cli) (built: Jul 16 2008 19:52:52)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with XCache v1.2.2, Copyright (c) 2005-2007, by mOo

script para realizar backup programados en Plesk

Espero que os sirva de ayuda este script en php que me he encontrado en un foro privado para realizar respaldos programados en Plesk, aqui se los copypasteo:

<?php

$maintain = 3; // Cuantos respaldos conservar
$prefix = «plesk»;
$path = «/mnt/backup/»; //dont delete slash

set_time_limit(0);

$day = date(«d»);
$month = date(«m»);
$year = date(«y»);

$backupfile = «$prefix$day$month$year»;

$comando = «/usr/local/psa/bin/pleskbackup all $path$backupfile»;
@exec($comando);

$unixtime = mktime(0,0,0,$month, $day, $year); // present time
$todelete = $unixtime – ($maintain *= 86400);

// create file name to delete
$day_d = date(«d», $todelete);
$month_d = date(«m», $todelete);
$year_d = date(«y», $todelete);

$backupdel = «$prefix$day_d$month_d$year_d»;

if (@file_exists(«$path$backupdel»)) {
@exec(«rm -f $path$backupdel»); // Delete file
}

?>

Nueva versión de PHP 5.2.8

Ha salido a la luz una nueva versión de php, la PHP 5.2.8, esta versión soluciona un bug encontrado en la reciente versión también publicada 5.2.7 relacionada con el funcionamiento de magic_quotes, bug de seguridad que abría un agujero de seguridad al tener activo “magic_quotes_gpc

Se recomienda actualizar a dicha versión, y si tienes la versión 5.2.7 y no deseas actualizar aplica el siguiente “parche” a tu php.ini para arreglar el problema de magic_quotes:

“filter.default_flags=0″

Más información en php.net

Superar límites de subida de archivos de php.ini con .htaccess

La subida de archivos en PHP suele estar limitada a 2 megas por motivos de seguridad. Si no fuese así cualquiera podría subir un archivo de 500 gigas y saturarnos el servidor.

La configuración de estos parámetros se encuentra en el archivo principal de configuración de PHP, el famoso php.ini.
En teoría sería tan simple como abrir este archivo y editar a nuestro antojo los valores que nos interesan:

upload_max_filesize 10M
post_max_size 10M
max_execution_time 100
max_input_time 100

Pero esto no siempre es posible ni recomendable. Si tenemos nuestra web alojada en un hosting compartido no nos van a dejar tocar el archivo php.ini y por otro lado, si tenemos varios dominios o subdominios en el mismo servidor puede que no queramos ser tan generosos en todos. Lo mejor es ser siempre lo más restrictivo posible y habilitar un mayor tamaño de subida únicamente donde nos interesa.

Esto lo podemos conseguir alterando los valores de configuración de PHP mediante un archivo .htaccess.

En primer lugar tenemos que comprobar que tenemos la opción AllowOverride activada ya sea en general o para ese subdominio. Para ello editamos el archivo de configuración de Apache, el famoso httpd.conf.

Si queremos aplicarlo de manera general:

<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>

O en una carpeta concreta:

<Directory «c:/wamp/www/micarpeta»>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from allg
</Directory>

Una vez configurado Apache, creamos un archivo de texto con el nombre .htaccess que contendrá simplemente lo siguiente:

php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 1000
php_value max_input_time 1000

En este ejemplo se ha puesto un límite de subida de 100 megas y a su vez se aumenta el tiempo límite de ejecución del script a 1000 segundos. Será necesario variar el límite de tiempo a un valor razonable para que dé tiempo suficiente para subir el archivo y procesarlo.
Mediante este método se pueden modificar muchos más parámetros de configuración de PHP como las global_register y otras pero os dejo que lo investiguéis vosotros.

Como instalar Zend Optimizer en Plesk

Tal vez pueda hacer que alguien se ahorre un par de horitas instalando Zend Optimizer 3.2.2 en Plesk 8.0.1 , que ha sido el tiempo que me ha llevado a mi averiguar la forma de instalarlo correctamente, asi es que vamos a ello:

Lo primero es descargar el archivo tar.gz desde el sitio oficial para ello ejecutaremos el siguiente comando desde la shell:

# wget http://downloads.zend.com/optimizer/3.2.2/...3-x86_64.tar.gz

Una vez descargado el archivo lo descomprimimos:

# tar -zxvf ZendOptimizer-3.2.2-linux-glibc23-x86_64.tar.gz

Ya hemos extraido los archivos asi es que podemos borrar el archivo tar.gz:

# rm -rf ZendOptimizer-3.2.2-linux-glibc23-x86_64.tar.gz

Entramos en el directorio donde se encuentran los archivos de instalacion:

# cd ZendOptimizer-3.2.2-linux-glibc23-x86_64

Ejecutamos el archivo de instalacion:

# ./install.sh

Respondemos de forma adecuada a todas las preguntas que se nos hacen en el proceso de instalacion, lo cual supone aceptar todo, una vez finalizado el proceso nos dirigimos al directorio en el que se encuentra el archivo php.ini:

# cd /etc

Abrimos el archivo php.ini con un editor de texto por ejemplo vi:

# vi php.ini

Buscamos las lineas de configuracion de Zend Optimizer en el archivo php.ini, para ello escribimos el siguiente comando:

# /zend

Debemos de encontrar las siguientes lineas al final del archivo:


zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.2.2
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.2.2
zend_optimizer.version=3.2.2
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

Una vez que las hemos localizado las copiamos al portapapeles y si es necesario a un archivo de texto para no perderlas, y pasamos al modo de insercion de texto en el editor vi pulsando la tecla i, una vez en el modo texto comentamos las lineas pasando a quedar estas en el archivo php.ini de la siguiente manera:


;zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.2.2
;zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.2.2
;zend_optimizer.version=3.2.2
;zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
;zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

Salimos del modo texto pulsando la tecla escape y guardamos el archivo con el siguiente comando:


# :wq

Entramos en el directorio php.d:


# cd php.d

Usamos el editor de texto vi para crear un nuevo archivo:


# vi zend-optimizer.ini

Pegamos en el las lineas que anteriormente habiamos copiado del archivo php.ini en el archivo zend-optimizer.ini, para ello lo usual es si estas usando Putty pulsar el boton derecho del raton, lo cual hara que se pegue el contenido que tenemos copiado en el portapepeles, lueego guardamos el archivo:

# :wq

Reiniciamos apache:

# service httpd restart

Y comprobamos que tanto Ioncube como Zend Optimizer se hayan inicializado correctamente con php


# php -v

Si todo ha ido bien deberiamos de obtener algo como esto:


PHP 4.3.9 (cgi) (built: Nov 2 2006 16:40:38)
Copyright © 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright © 1998-2004 Zend Technologies
with the ionCube PHP Loader v3.1.9, Copyright © 2002-2006, by ionCube Ltd., and
with Zend Extension Manager v1.2.0, Copyright © 2003-2006, by Zend Technologies
with Zend Optimizer v3.2.2, Copyright © 1998-2006, by Zend Technologies

Y eso es todo ya tenemos Zend Optimizer instalado en nuestra maquina, espero que esta explicacion le sea de utilidad a mas de uno.

Saludos amigossss