Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003
Uso Trac desde hace mucho tiempo, pero hace poco dejó de funcionar repentinamente. Podía acceder a ciertas cosas, pero no a lo importante. Tras curiosear un poco me encontré con un montón de estos errores en los logs de Apache:
[Thu Jan 29 09:07:38 2009] [notice] child pid 3383 exit signal Segmentation fault (11) [Thu Jan 29 09:13:25 2009] [notice] child pid 3385 exit signal Segmentation fault (11) [Thu Jan 29 09:13:39 2009] [notice] child pid 3388 exit signal Segmentation fault (11) [Thu Jan 29 09:14:12 2009] [notice] child pid 3389 exit signal Segmentation fault (11)
Es un problema provocado por Python (mod_python en este caso, aunque también fallaba usando mod_wsgi o fastcgi) debido a que apache utiliza una versión de la librería expat y Python otra diferente. Se puede ver cómo detectar el problema en este artículo, que sugiere usar LD_PRELOAD para solucionarlo, pero que a mi no me funcionó. Por el contrario, me bastó con instalar un único paquete y reiniciar el servidor web:
sudo apt-get install python-xml
Hay múltiples alternativas para tener Apache+MySQL+PHP en Windows, pero no había visto nada que, como Server2GO, permitiera un ejecutar y listo desde cualquier dispositivo de almacenamiento (incluso un CD o DVD, y hasta incluye un autorun.inf). Las versiones incluídas son Apache 2.x, MySQL 5.0 y PHP 5.2.x.
22/Jun/2008 | 2 comentarios | En Bitacoras.com
Tanto en la rama stable como testing de Debian están disponibles las dos versiones de PHP, por lo que habrá que instalar los siguientes paquetes:
sudo apt-get install apache2 libapache2-mod-php4 php4 php5 php5-cgi
Luego, en la configuración del virtual host, hay que sustituir el ScriptAlias que apunta a /usr/lib/cgi-bin/ por
ScriptAlias /php5-cgi /usr/lib/cgi-bin/php5
Luego, para el directorio que se quiera que funcione con PHP5, habrá que añadir:
Options +ExecCGI Action php5-cgi /php5-cgi AddHandler php5-cgi .php .php5
Eso puede añadirse tanto en la configuración global de Apache como en la del virtual host, pero yo prefiero añadirla en un archivo .htaccess, ya que me evita tener que modificar las configuraciones y reiniciar el servidor cada vez que quiero utilizar PHP5 en un directorio nuevo. Para eso es imprescindible que en la configuración del virtual host la propiedad AllowOverride esté a All para permitir el uso de los archivos .htaccess.
NOTA: Esto funciona en las últimas versiones de Apache. Hasta hace poco ( no sé que versión exactamente ) funcionaba con la configuración:
ScriptAlias /php5 /usr/lib/cgi-bin/
Tal y como habían prometido hace un par de meses, y basándose en el trabajo ya realizado con Racoon y Mobile Web Server, Nokia ha publicado PAMP, la version personal de Apache, PHP y MySQL.
Esto abre muchas posibilidades en desarrollo ( ya que puede accederse desde PHP a las funciones del sistema operativo ) para aunque que no tantas como lo hizo la publicación de Python.
El principal requisito de instalación es mucha memoria RAM: funcionará sin problemas en teléfonos con 128 MB ( N95, E90 ) o 64 MB ( E61, E61i ).
Actualización: se ha portado la versión 2.2.4 de Apache, a 5.2.2 de PHP y la 5.0.45 de MySQL, además de mantener mod_python ( ya existía con Racoon ).
A la hora de trastear con mod_rewrite el problema es no ver bien cómo se hace la reescritura y a veces no basta con visualizar el log de errores de Apache. Para eso está la directiva RewriteLog, que se puede añadir al archivo de configuración de Apache del siguiente modo:
RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 9
En la ruta indicada aparecerá el archivo como un log más de Apache, que podemos monitorizar con tail -f. Además hay 10 niveles: de 0 a 9 según el nivel de datos que queremos obtener.
NOTA: Cuidado, el rendimiento se ve muy afectado al usar un nivel mayor que 2.
XAMPP es un paquete de software destinado a simplificar la instalación de Apache, PHP y MySQL así como muchos extras como PEAR, Perl, GD, phpMyAdmin y hasta un servidor FTP y otro de correo electrónico. Lo realmente interesante de este paquete es que la instalación es tan sencilla como descomprimir y la puesta en marcha se reduce a ejecutar un script.
Está disponible para Linux, Mac OS X, Solaris y hasta Windows y por supuesto tiene licencia GPL.
Tengo montado un pequeño servidor web en mi equipo. Me interesa que ciertas personas accedan a él ocasionalmente pero también me interesa tenerlo protegido mínimamente con un sistema usuario-contraseña. Opté por usar las características de Apache y .htaccess.
Lo primero será crear el archivo de usuarios y contraseñas en el directorio a proteger:
htpasswd -c .htpasswd usuario
El parámetro -c indica que debe crearse el archivo .htpasswd. Para añadir nuevos usuarios basta con omitirlo.
Luego hay que crear el archivo .htaccess:
AuthUserFile .htpasswd
AuthName "Autentificate"
AuthType Basic
Satisfy any
Require valid-user
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from 10.0.0.
Satisfy any indica que el usuario deberá cumplir por lo menos una de las condiciones: o tener una IP autorizada o validarse con usuario y contraseña. Si no añadimos esta línea nos encontraremos con un hermoso Forbidden.
Lo importante son las últimas líneas, que indican qué direcciones están autorizadas a acceder sin validarse. Ponemos Deny from all para que a todas las direcciones se les pida validación. Las autorizadas deberán especificarse con Allow from direccion. Como veis también se pueden especificar rangos, espeficando las partes comunes y acabando con un punto.
Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons