Mostrando entradas con la etiqueta webserver. Mostrar todas las entradas
Mostrando entradas con la etiqueta webserver. Mostrar todas las entradas

lunes, 5 de julio de 2010

“The plain HTTP request was sent to HTTPS port” en nginx

“The plain HTTP request was sent to HTTPS port” es un error que puede devolver NGINX a tratar de forzar la redirección a https.A mi me ha sucedido con phpmyadmin, y es por que me había olvidado de incluir en la configuración del virtual host:

fastcgi_param HTTPS on;



La solución completa sería:

location ~ \.php$ {
fastcgi_param HTTPS on;
fastcgi_pass 127.0.0.1:xxxx;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}


Articulo original [aquí]

miércoles, 30 de junio de 2010

thttpd, la confirmación de lo minimalista



Dentro del mundo de los webservers todos sabemos que Apache2 se lleva la fama y los aplausos. Por otro lado, Cherokee, nginx y lighttpd poco a poco se hacen con un hueco en difícil campo de los servidores web.
Esta semana he estado jugando un con las listas de correo en Mailman para la recién creada Asociación Comunidade O Zulo. Una Asociación que fomenta la tecnología y cultura libres, de la cual tengo el honor de ser presidente.
Sinceramente, configurar Mailman con Postfix sólo con "auth local" y apache2 es muy sencillo. Pero claro, si tienes un VPS con 128Mb de RAM , el tema se complica. Apache2 consume muchísimos recursos, tanto de RAM como de CPU.
Tocaba buscar una alternativa a Apache2. Lo cierto es que no pensé nunca en dejar Apache2 como servidor www, pero he de reconocer que para la configuración base es ideal y apenas tienes que tocar nada para que funcione. Una vez funcione el servicio, sí me he planteado cambiar el software servidor www.
Paseando por el wiki de Mailman intentando buscar el equilibrio perfecto entre rendimiento y consumo de recursos encuentro thttpd.
La solución que proponen es nginx+thttpd. Como nginx no soporta la ejecución de CGIs en modo "out of the box" proponen enviar las peticiones a CGIs vía directiva proxy_pass de nginx a una instancia de thttpd escuchando en otro puerto del mismo server. ¡Genial! Me ha parecido una idea estupenda y muy profesional. Lo cierto es que ayer de noche no conseguí que funcionase, y al final para salir del paso usamos lighttpd.
La idea no sólo me ha parecido genial a mí, si no que esta solución(la de usar thttpd) la están usando en PayPal.com y en otros sitios web.La instalación en Debian GNU/Linux es tan sencilla como "aptitude install thttpd". En la web del proyecto hay más información sobre directivas, instalación y demás.



viernes, 4 de junio de 2010

mod_bw , control ancho banda en Apache2



Como he comentado en anteriores posts, no suelo usar apache2 en las instalaciones y proyectos que de mi dependen al 100%. Prefiero soluciones como Cherokee y NGINX.El caso que es últimamente "juego" bastante con apache2, por suerte o por desgracia.Por desgracia cuando compruebo que aún existen administradores de sistemas que piensan que no hay vida después de apache2 ¡qué pena!. Por suerte por que no dejo de sorprenderme.Apache Software Foundation es un monstruo.Basta con echarle un vistazo a su sitio web para darse cuenta.No dejo de sorprenderme al comprobar lo maravilloso, increíble y prolífico que es el mundo del software libre. No prentendo que este post sea una lección de evangelización, simplemente quiero reconocer el trabajo de la gente de http://ivn.cl/. ¿Necesitas controlar el ancho de banda de tu servidor Apache2? Ellos lo han echo. Han desarrollado mod_bw para apache2. Funciona muy bien y está muy bien documentado en un fichero .txt que se puede leer antes de compilar el módulo.¿Compilar?!Tengo miedo! Nada de eso. Doy las claves para instalar y configurar mod_bw en apache2. Ya vereis como es muy sencillo.


[root@patriciaconde] aptitude update && aptitude install apache2-dev


Un poco de paciencia y ya tenemos instaladas las herramientas de desarrollo para apache2.Sólo utilizaremoso apxs, que es el acrónimo de APache eXtenSion tool, una herramienta para construir e instalar extensiones(módulos) para apache2.


[root@patriciaconde] wget http://ivn.cl/files/source/mod_bw-0.91.tgz
[root@patriciaconde] tar zxvf mod_bw-0.91.tgz
[root@patriciaconde] apxs2 -i -a -c mod_bw.c


Deberíamos visualiar algo parecido a ...


[root@patriciaconde] apxs2 -i -a -c mod_bw.c
/usr/share/apr-1.0/build/libtool --silent --mode=compile --tag=disable-static i486-linux-gnu-gcc -prefer-pic -DLINUX=2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -D_REENTRANT -I/usr/include/apr-1.0 -I/usr/include/openssl -I/usr/include/xmltok -pthread -I/usr/include/apache2 -I/usr/include/apr-1.0 -I/usr/include/apr-1.0 -c -o mod_bw.lo mod_bw.c && touch mod_bw.slo
(..)
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 644 /usr/lib/apache2/modules/mod_bw.so
[preparing module `bw' in /etc/apache2/mods-available/bw.load]
Enabling module bw.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Fácil, verdad? Ahora sólo tenemos que aplicar las directivas de mod_bw a un vhost de apache2.He subido una imagen ISO de Ubuntu 10.04 al raiz del webserver y he probado a descargar el fichero sin aplicar restricción alguna de ancho de banda.Después he modificado el fichero /etc/apache2/sites-available/default. El contenido del fichero con mod_bw activado es:


Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10240
MinBandwidth all -1

http://ivn.cl/
Más información para freaks

root@patriciaconde:~/compilaciones# apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Server built: Apr 13 2010 19:28:27
Server's Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"


[Pantallazo de una descarga con mod_bw activado en un Apache 2.2.14 con Ubuntu 10.04]

lunes, 26 de abril de 2010

Instalar logstalgia en Ubuntu 9.10

Si os ha gustado el vídeo anterior, verlo en "modo live" es todavía mejor.Os dejo unos pequeños pasos para instarlalo en una máquina corriendo Ubuntu 9.10.
.- Descargar la aplicación

[apermuy@jabba]cd /tmp && wget http://logstalgia.googlecode.com/files/logstalgia-1.0.0.tar.gz


.- Descomprimir el fichero

[apermuy@jabba] tar zxvf logstalgia-1.0.0.tar.gz && cd logstalgia-1.0.0

.-Instalar las dependencias necesarias para la compilación de los fuentes

[apermuy@jabba] aptitude install libsdl-console-dev ftgl-dev libpcre++-dev

.- A compilar se ha dicho

[apermuy@jabba] ./configure && make && make install

.- A ejecutar se ha dicho

[apermuy@jabba]/usr/local/bin/logstalgia /var/log/apache2/access-sitio-1.log

domingo, 25 de abril de 2010

Logstalgia para Apache

Vía @vnico me entero de la existencia del proyecto Logstalgia. Un proyecto que a modo de "batalla pong" muestra los logs del servidor web Apache2. A muchos de vosotros os parecerá una tontería, pero a mí me ha parecido espectacular. Aviso a navegantes, necesitáis soporte OpenGL y aceleración 3D activada.

jueves, 25 de febrero de 2010

Clean URL para Drupal con lighttpd

Típico en las instalaciones de Drupal es querer mostrar la URL del tipo http://misitio.com/articulo-windows-no-funciona . Pues con lighttpd es muy sencillo.Editamos lighttpd.conf, nos aseguramos de tener el módulo mod_rewrite habilitado:

server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_rewrite",
"mod_fastcgi",
"mod_redirect",
"mod_evhost",
"mod_usertrack",
"mod_rrdtool",
"mod_webdav",
"mod_expire",
"mod_flv_streaming",
"mod_evasive"
)

Ahora añadimos :

url.rewrite-final = (
"^/system/test/(.*)$" => "/index.php?q=system/test/$1",
"^/([^.?]*)\?(.*)$" => "/index.php?q=$1&$2",
"^/([^.?]*)$" => "/index.php?q=$1",
"^/rss.xml" => "/index.php?q=rss.xml"
)

Ahora reiniciamos a lucifer:

hansolo:~# /etc/init.d/lighttpd restart
Stopping web server: lighttpd.
Starting web server: lighttpd.
hansolo:~#



Esta configuración es para Drupal 6.x, por lo menos en esta versión sí funciona. En el wiki de lighttpd hay más información sobre mod_rewrite.

martes, 26 de enero de 2010

Instalando lighttpd en Ubuntu/Debian GNU/Linux desde los fuentes




Como he comentado en alguna ocasión, me gusta Apache2. Durante muchos años Apache Software Foundation ha realizado un gran trabajo, añadiendo funcionalidades y módulos, corrigiendo bugs y mejorando en cada versión de Apache2(y Apache 1.x, por supuesto). También he comentado en otras el gran trabajo de Alvaro López, y los excelentes resultados de rendimiento, superando ampliamente los obtenidos con Apache2.Actualmente busco un paquete de software de servidor web ligero y rápido, con soporte PHP5(vía fast-cgi sirve), que corra sin problemas en una máquina con 128MB de RAM(vps). Desde hace un par de semanas he testeado lighttpd y los resultados son más que satisfactorios.

A continuación, y a modo de recordatorio personal,comentaré como instalar lighttpd(version 1.4.25 de Enero de 2010) en una máquina corriendo Ubuntu 9.10, con las siguientes características.

Kernel: Linux polinico 2.6.31-14-generic-pae
Procesador: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+
RAM: 8262708k total
gcc: gcc-4.4 4.4.1-4ubuntu9
make: 3.81-6

Actualizamos las fuentes de los repositorios e instalamos los paquetes necesarios.

[root@polinico ~#]apt-get update && apt-get -y install gcc make build-essential libpcre3-dev libbz2-dev zlib1g-dev

Una vez instalados, necesitamos descargar lighttpd.

[root@polinico tmp#] wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz && md5sum lighttpd-1.4.25.tar.gz

Muchas veces obviamos el paso de la comprobación de la suma md5 del fichero, nunca está de más...

[root@polinico tmp#]wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz && md5sum lighttpd-1.4.25.tar.gz
--2010-01-26 23:20:36-- http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz
Resolviendo download.lighttpd.net... 64.34.173.165
Conectando a download.lighttpd.net|64.34.173.165|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 780629 (762K) [application/x-tar-gz]
Guardando: «lighttpd-1.4.25.tar.gz»

100%[======================================>] 780.629 205K/s en 4,5s

2010-01-26 23:20:41 (168 KB/s) - `lighttpd-1.4.25.tar.gz' guardado [780629/780629]

87e936ec272ddaba8a2fdfecd8c6b704 lighttpd-1.4.25.tar.gz

Desempaquetamos el fichero...

[root@polinico tmp#]tar zxvf lighttpd-1.4.25.tar.gz && cd lighttpd-1.4.25

Lo bueno de la compilación desde el código fuente, a parte de la optimización del binario resultante, es la posibilidad de habilitar/deshabilitar el soporte a protocolos/tecnologías/lenguajes...etc. Por defecto,si no indicamos nada al ejecutar configure, tendremos un binario de lighttpd con los siguientes plugins habilitados:

  • mod_access

  • mod_access_log

  • mod_alias

  • mod_auth

  • mod_cgi

  • mod_compress

  • mod_dirlisting

  • mod_evhost

  • mod_extforward

  • mod_flv_streaming

  • mod_fastcgi

  • mod_indexfile

  • mod_proxy

  • mod_redirect

  • mod_rrdtool

  • mod_scgi

  • mod_secdownload

  • mod_setenv

  • mod_simplehost

  • mod_ssi

  • mod_putasgae

  • mod_staticfile

  • mod_status

  • mod_trigger_b4_dk

  • mod_userdir

  • mod_usertrack

  • mod_webdav


Y como características destacadas

  • auth-crypt

  • compress-bzip2

  • compress-deflate

  • regex-conditionals



Si queremos optimizar y personalizar al máximo la compilación:

[root@polinico tmp#] ./configure --help|more

En caso de usar las opciones por defecto:

[root@polinico tmp#] ./configure && make && make install


Ya hemos instalado lighttpd!!! No era para tanto, verdad? Me he encontrado con el que script de arranque/parada de /etc/init.d puede dar problemas al indicar correctamente la localización del binario.Recordemos que por defecto es /usr/local/sbin. No me he parado a localizar el .pid de lighttpd, pero con "ps aux|grep lighttpd|grep etc|awk '{ print $2 }'"(chapuza) solucionamos la papeleta.Podéis descargar el script aquí.

Códigos de estado HTTP

Estoy preparando un post sobre lighttpd, y mientras lo termino, he leído en la wikipedia, un breve resumen sobre los códigos de estado http.

[Códigos de estado protocolo http]
  • 1xx Mensajes
- 100 111 Conexión rechazada
  • 2xx Operación exitosa
Descripción
200 OK
201-203 Información no oficial
204 Sin Contenido
205 Contenido para recargar
206 Contenido parcial
  • 3xx Redirección hacia otro URL
Descripción
300 Múltiples posibilidades
301 Mudado permanentemente
302 Encontrado
303 Vea otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
  • 4xx Error por parte del cliente
Descripción
400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
405 Método no permitido
406 No aceptable
407 Proxy requerido
408 Tiempo de espera agotado
409 Conflicto
410 Ya no disponible
411 Requiere longitud
412 Falló precondición
413 Entidad de solicitud demasiado larga
414 URL de solicitud demasiado largo
415 Tipo de medio no soportado
416 Rango solicitado no disponible
417 Falló expectativa
  • 5xx Error por parte del servidor
Descripción
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada

[ Ver articulo original ]

miércoles, 9 de septiembre de 2009

No sólo de Apache2 vive el hombre...




A raíz de una serie de problemas en el servidor VPS que aloja www.permuy.org, www.comunidadeozulo.org y demás, decido prescindir de Apache2. La máquina no está sobrada de RAM, y Apache2 se encarga de contribuir a ello, consumiendo nada más arrancas el servicio hasta 60Mb! Si no lo veo no lo creo!

Me habían recomendado lighttpd, pero en realidad, siempre había leído mejores críticas en cuanto a velocidad se refiere de cherokee. Por lo que he podido comprobar(a ojo) el consumo de memoria cherokee es mas bajo que el de Apache. Pero en velocidad, ni punto de comparación. Al final sigo con Apache en www.permuy.org, pero en casa y en la oficina he migrado ya ha cherokee.

¿Qué me ha gustado del Cherokee Project?
  • Facilidad de instalación: wget, configure, make y make install.
  • No tiene dependencias externas, salvo las librerías de C, claro.
  • Soporta: FastCGI, SCGI, PHP, CGI, SSI, TLS and SSL.
  • Muy rápido, tanto para servir páginas como para reiniciar el servicio.
  • Administración muy sencilla vía web a través de cherokee-admin.
  • La documentación está muy bien estructurada y muy bien redactada.
  • En GNU/Linux funciona de maravilla.
Pruebas de rendimiento.

He realizado dos pruebas con ab en Apache 2.2.x y Cherokee 0.99.24 y la verdad es que el segundo "se come" al primero. La máquina en cuestión es:
S.O : Ubuntu 9.04
Kernel : Linux alberto 2.6.28-15-generic
RAM: 1GB DDR2 533
Procesador: Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz

Prueba 1
Criterio: 1000 peticiones y concurrencia = 10
Resultados para Apache 2.2.11

Server Software: Apache/2.2.11
Server Hostname: localhost
Server Port: 80

Document Path: /drupal2
Document Length: 354 bytes

Concurrency Level: 10
Time taken for tests: 0.272 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1002
Total transferred: 649296 bytes
HTML transferred: 354708 bytes
Requests per second: 3670.06 [#/sec] (mean)
Time per request: 2.725 [ms] (mean)
Time per request: 0.272 [ms] (mean, across all concurrent requests)
Transfer rate: 2327.11 [Kbytes/sec] received

Resultados para Cherokee 0.99.24

Server Software: Cherokee/0.99.24
Server Hostname: localhost
Server Port: 80

Document Path: /drupal2
Document Length: 293 bytes

Concurrency Level: 10
Time taken for tests: 0.219 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1004
Total transferred: 544168 bytes
HTML transferred: 294172 bytes
Requests per second: 4557.68 [#/sec] (mean)
Time per request: 2.194 [ms] (mean)
Time per request: 0.219 [ms] (mean, across all concurrent requests)
Transfer rate: 2422.01 [Kbytes/sec] received


Tanto la tasa de transferencia con el tiempo empleado en realizar las peticiones son menores, si bien es cierto que con 1000 peticiones pocas conclusiones se pueden sacar, de momento Apache 0 - 1 Cherokee. Ahora vamos con la prueba 2, con 100000 peticiones y concurrencia = 10.

Prueba 2
Criterio: 100000 peticiones y concurrencia = 10
Resultados para Apache 2.2.11

Server Software: Apache/2.2.11
Server Hostname: localhost
Server Port: 80

Document Path: /drupal2
Document Length: 354 bytes

Concurrency Level: 10
Time taken for tests: 19.781 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Non-2xx responses: 100003
Total transferred: 64801944 bytes
HTML transferred: 35401062 bytes
Requests per second: 5055.42 [#/sec] (mean)
Time per request: 1.978 [ms] (mean)
Time per request: 0.198 [ms] (mean, across all concurrent requests)
Transfer rate: 3199.23 [Kbytes/sec] received

Resultados para Cherokee 0.99.24

Server Software: Cherokee/0.99.24
Server Hostname: localhost
Server Port: 80
Document Path: /drupal2
Document Length: 293 bytes
Concurrency Level: 10
Time taken for tests: 7.734 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Non-2xx responses: 100000
Total transferred: 54200000 bytes
HTML transferred: 29300000 bytes
Requests per second: 12930.18 [#/sec] (mean)
Time per request: 0.773 [ms] (mean)
Time per request: 0.077 [ms] (mean, across all concurrent requests)
Transfer rate: 6843.90 [Kbytes/sec] received

Llama mucho la atención que mientras Apache2 es capaz de "responder" poco más de 5000 peticiones por segundo, cherokee llega casi a las 13.000. Ni hablar del tiempo empleado, Apache a tardado más de 11 segundos! 11 segundo es mucho tiempo, pero mucho mucho! ¿Algo más?
Enhorabuena a Alvaro Lopez, por su gran trabajo realizado desde 2001.

lunes, 27 de abril de 2009

Cambiar fingerpint Apache2[ Actualización ]

Mañana marcho de vacaciones , haciendo una breve escala,hasta el día 6 de Mayo, así que hasta entonces tendré esto un poco parado. Han enviado un comentario sobre el post anterior del cambio de fingerprint en Apache2. Apuntan no es necesario compilar el paquete, que basta con habilitar mod_security. Lo cierto es que ahora no tengo tiempo, pero por lo poco que he leído sí se puede hacer. Entre mis planes está escribir algo sobre mod_security, me parece muy interesante.

viernes, 24 de abril de 2009

Cambiar fingerprint Apache2

A raíz de una conversación con un coleguilla, acerca Cherokee, me comentaba las bondades de este software, que estaba escrito en C, tiene soporte para PHP,CGIs y demás. También comentábamos el poco consumo memoria y recursos en general. Mi pregunta fue "¿Sabes o has cambiado el fingerprint de Apache2?". Nunca lo había hecho pero llegamos a la conclusión de que compilando desde las fuentes se podría modificar. Tenía razón. Intentaré explicarlo con un ejemplo. Pero antes de nada.¿Qué es un fingerprint? Como siempre, hay mucha información en la red, pero podemos definirlo como "la impresión de una huella en cualquier tipo de superficie". Extrapolando a términos de networking, podríamos definirlo como "la repuesta(huella) que devuelve un servicio ejecutándose en una máquina cuando recibe una petición(...)".¿Por qué modificar esta respuesta?. A esta pregunta respondería con otra: ¿Y por qué no? Supongo, y creo que no voy mal encaminado, que a quién le interese el tipo y versión del software que se ejecuta en una máquina, tendrá como mínimo un interés de dudosa finalidad. Voy a otorgarle el beneficio de la duda. También por que con un simple nmap podemos "descubrir" de un modo muy sencillo estos datos. Ejemplo:

root@debian alberto#nmap -A server.ejemplo -p 80
Starting Nmap 4.68 ( http://nmap.org ) at 2009-04-24 10:16 CEST
Interesting ports on server.ejemplo:
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS webserver 5.0
MAC Address: 00:50:56:A9:4D:AB (VMWare)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2000
OS details: Microsoft Windows 2000 SP4
Network Distance: 1 hop
Service Info: OS: Windows
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.792 seconds

Vamos al grano. Evidentemente, para modificar el fingerprint de Apache, debemos descargar las fuentes de Apache.org y compilar el paquete. No temais, es muy sencillo.Con el paquete httpd-2.2.11.tar.gz desempaquetado en nuestra máquina, procedemos a instalar unos cuantos paquetes necesarios para el proceso de compilación:

[root@debian]apt-get update && apt-get install gcc make

Dentro del directorio de httpd-2.2.11/include editamos el fichero ap_release.h,
localizamos las siguiente cadenas y modificamos los valores a nuestro gusto:

#define AP_SERVER_BASEVENDOR "La Sexta Software Foundation"
#define AP_SERVER_BASEPROJECT "Patricia Conde Server"
#define AP_SERVER_BASEPRODUCT "Jachonda"

#define AP_SERVER_MAJORVERSION_NUMBER 1
#define AP_SERVER_MINORVERSION_NUMBER 1
#define AP_SERVER_PATCHLEVEL_NUMBER 1
#define AP_SERVER_DEVBUILD_BOOLEAN 0

Ahora, como siempre, ./configure && make && make install. Si no ha dado ningún error, debemos añadir al fichero httpd.conf el "ServerSignature On" para comprobar que añade la "firma" de nuestro nuevo Patricia Conde Server.
Ejemplo de un Error 404 :

La pruebas las he realizado sobre una Debian GNU/Linux 5.0 NetInstall sobre VirtualBox 2.14 corriendo en Debian Testing con Kernel 2.6.27.

lunes, 13 de abril de 2009

UTF-8, Apache2 y PHP5

Hace tiempo,un año más o menos, escribí un post en el que comentaba los pasos para habilitar la codificación UTF-8 para el webmail squirremail.

Un año después, me envían un fichero SQL con información para alimentar campos para la BBDD del proyecto en el que estoy trabajando actualmente. La codificación de esta tablas está en