Reemplazar Apache por Cherokee

En los topics anteriores, referentes a: Montar un Servidor Web en PC-BSD 7 he optado  por instalar Apache.

En esta ocasión, explicaré como sustituir Apache por Cherokee, un servidor web libre (licenciado con GPL), moderno, muy rápido, flexible,eficiente, ligero, estable, fácil de configurar,multiplataforma, etc, etc, etc. (visite: Cherokee-project).

Con lo mencionado anteriormente, no trato de desmerecer las bondades que nos brinda el buen y viejo Apache!!, pero creo también, que es el momento de darle un lugar a proyectos nuevos como lo es Cherokee, creado por Alvaro Lopez Ortega y actualmente mantenido por una comunidad de desarrolladores de software libre.

Instalación y configuración de Cherokee en PC-BSD 7

Basado en Normas de FreeBSD

1) Observa si se está ejecutando el servicio apache, si es así: detenerlo.

Si lo has inicializado en el fichero /etc/rc.conf como señalamos en el post Instalación de Apache en PC-BSD 7 es probable que esté en ejecución, o si ya lo tenias configurado en tu sistema FreeBSD u otro derivado de él puedes confirmarlo:

# netstat -a|grep ‘.http’
tcp46      0      0 *.http                 *.*                    LISTEN

La línea anterior significa que el servicio web está en ejecución, por lo tanto habrá que detenerlo:

# /usr/local/etc/rc.d/apache22 stop

ó

#apachectl stop

Seguidamente, volver a verificar si el servicio verdaderamente está detenido:

# netstat -a|grep ‘.http’

Si no hay una respuesta como la mostrada anteriormente, entonces el servicio quedó detenido satisfactoriamente.

2) Descargaremos e Instalaremos Cherokee via ports: (Esto tomará su tiempo)

# cd /usr/ports/www/cherokee/ && make install clean
===>  Cleaning for GeoIP-1.4.4_1
===>  Cleaning for cherokee-0.9.2

Cuando termine, limpiará el directorio de compilación, en este caso, los dos señalados lineas arriba.

3) ¿Dónde está ubicado Cherokee?

Pueden ver que se creó un directorio en: /usr/local/www/cherokee/

Y los ficheros de configuración están en: /usr/local/etc/cherokee/

4) Probaremos si el servicio quedó habilitado. Puedes hacerlo con netstat o desde un navegador web:

Aprovechamos probarlo desde un navegador web, y de paso limpiamos las cookies:

En Firefox:

Control + shift + Supr –> Seleccionar ‘Cookies’ —> Clear Private Data Now

En Opera:

Tools—> Delete Private Data—>Detailed Options —> Seleccionar ‘Delete all Cookies’ –>Delete

El objetivo de limpiar las cookies es para prevenir que al momento de lanzar el localhost, continúe mostrando el It works! (página de prueba de apache…) guardado en la caché del navegador, a pesar de haber detenido el servicio de Apache.

Luego de ello, cargar:

http://127.0.0.1/

No se preocupe si no carga el localhost, aún hay cosillas que hacer…

5) Es momento de Iniciar cherokee-admin

Desde un terminal, (Queda sobre-entendido: en modo superusuario) , lanzar la instrucción:

# cherokee-admin &
Cherokee Web Server 0.9.2 (Oct 18 2008): Listening on port 9090, TLS disabled,
IPv6 disabled, using poll, 10778 fds system limit, max. 5382 connections,
single thread

(Enter)

El servicio cherokee-admin queda en segundo plano.

6) Regresar al navegador web y cargar:

http://127.0.0.1:9090/

Ésta es la página que debería mostrarles si todo lo hicieron correctamente (Server is not running).

7) Como se darán cuenta, el servicio está detenido, por lo tanto procedan a iniciarlo: ‘Launch’

Ésta es la página que debería mostrar luego de iniciar el servicio (Server is running).

8.) En una nueva pestaña, volver a lanzar:

http://127.0.0.1/

Es probable que aún no inicie la página principal de cherokee, que se supone que es la que debería mostrarnos, aunque #netstat -a|grep ‘.http’ nos indique de que ya se inició el servicio.

Por lo tanto regresamos a la página de configuración: http://127.0.0.1:9090/ y pasamos a configurar algunos valores del cherokee-admin:

>> Ingresamos a la opción ‘General’:

>>Por el momento solo editaremos el rubro ‘Listen’: ingresemos 127.0.0.1

>>Guardemos el cambio (save), y volvamos a lanzar http://127.0.0.1/

9) En este punto se espera que la configuración haya terminado satisfactoriamente, y nos muestre la página de prueba de Cheroke:

10) Ahora verificamos que la integración con php esté habilitada:

Para ello creamos un directorio nuevo y un fichero index.php con un pequeño código php:

#cd /usr/local/www/cherokee
#mkdir phptest && cd phptest
#edit index.php

<?php

echo ‘Cherokee y php Funcionando!!!’;

?>
Control + c
command:exit
.
Si has seguido la guia Instalación y configuración de Joomla en PC-BSD 7, en lugar de crear un fichero php, podrías copiar el directorio de joomla ya configurado del DocumentRoot de Apache al  DocumentRoot de Cherokee:

#cp -rf /usr/local/www/apache22/data/joomla15  /usr/local/www/cherokee/

11) Cargamos la página de prueba creada:

http://127.0.0.1/phptest/

Si en pantalla nos muestra; Cherokee y php Funcionando!!! , todo habrá terminado bien, caso contrario, habrá que realizar una modificación más en el cherokee-admin:

http://127.0.0.1:9090/

(Si en lugar de crear el fichero php copiaste el directorio de joomla, lanzar: http://127.0.0.1/joomla15/ )

12) Si la página php aún no carga, ir a: Info Source de cherokee-admin.

Hacer clic en el nick por defecto: ‘php’ para expandir todas las opciones;

Inicialmente, cuando realicé la instalación de cherokee, el Connection ‘/tmp/cherokee-php.sock‘ no era ubicado por el servidor, por lo tanto las páginas php no se lograban cargar. Si a ud. le pasa lo mismo, edite la opción Interpreter, que inicialmente podría ser:

%phpcgi% -b /tmp/cherokee-php.sock

y sustituyalo por:

/usr/local/bin/php-cgi -b /tmp/cherokee-php.sock

Por último, guarda el cambio (save).

Si el proceso se hizo como lo explicado hasta aquí, la configuración debería ser correcta y el servidor debería estar perfectamente integrado con php. En caso contrario, es posible de que al no poder cargar alguna página php, le muestre una advertencia como esta:

503 Service Unavailable
Cherokee web server 0.9.2 (UNIX), Port 80

13) No olvide que dejamos ejecutándose en background a cherokee-admin.

a) Ver el proceso:

#jobs

[1]  + Running                       cherokee-admin

b) Matar al proceso:

#kill %1

ó

# killall cherokee-admin

Si actualizamos (F5) o volvemos a iniciar cherokee-admin ( http://127.0.0.1:9090/ ), ya no tendremos acceso al servicio de configuración (Para un posterior acceso, ejecutar cherokee-admin &).

14) Editar el fichero: /etc/rc.conf

Para hacer que cherokee se cargue al iniciar el sistema. añadir:

cherokee_enable=»YES»

Y dejar comentado la referencia a Apache para desabilitar su ejecución al inicio:

#apache22_enable=»YES»

Todo lo mostrado anteriormente es la formá básica de configurar cherokee, no tuvimos que meter dedo a los ficheros de configuración gracias a cherokee-admin. Si desea realizar una configuración avanzada con las medidas de seguridad necesaria puede visitar cherokee-project-doc.sa, o también poseen la documentación en el directorio: /usr/local/share/doc/cherokee.

Ir a: Montar un Servidor Web en PC-BSD 7

2 thoughts on “Reemplazar Apache por Cherokee

Deja un comentario