Teniendo MySQL instalado (
http://th3pr0ph3t-archbang.blogspot.com/2011/03/mysql.html), falta Apache, PHP y MySQL para tener mi entorno de trabajo listo.
Las rutas en arch son totalmente diferentes a las de ubuntu, y herramientas como a2ensite y a2dissite no existen.
Usando la guía que está en la wiki de arch,
https://wiki.archlinux.org/index.php/Apache,
El resumen de instalación es este:
Instalar paquetes:
# pacman -S apache php php-apache
Editar
/etc/httpd/conf/httpd.conf
:
Cargar el módulo php: agregar una directiva LoadModule:
LoadModule php5_module modules/libphp5.so
Agregar handlers para php:
Include conf/extra/php5_module.conf
Y por supuesto agregar un Include con la configuración del servidor.
Revisar
/etc/php/php.ini
:
open_basedir
Revisar
short_open_tag
Descomentar
extension=mysql.so
y
extension=mysqli.so
Revisar
date.timezone
Editar
/etc/rc.conf
y agregar
@httpd
a la lista de DAEMONS.
Reiniciar el servidor:
/etc/rc.d/httpd restart
Aplicaciones en castellano
Con Ubuntu en español, esto no es problema, pero en archbang en inglés, verás caracteres basura en lugar de eñes y tildes.
Es necesario mantener coherencia entre los conjuntos de caracteres que usan la base de datos y la aplicación web.
Por ejemplo, al crear la base de datos:
CREATE DATABASE basededatos
DEFAULT CHARACTER SET=latin1
COLLATE=latin1_swedish_ci;
Y al conectarse, desde php:
$conn = new mysqli(NULL, $usuario, $password, 'basededatos');
$conn->set_charset('latin1');
*La línea de set_charset no era necesaria en Ubuntu :/
Por una parte estoy contento de descubrir esto en casa y no al desplegar la aplicación a un servidor -- que sin duda NO usará ubuntu.
*Otra molestia que me dio mysql en archbang es que el motor de tablas predeterminado es InnoDB y no MyISAM.
Si httpd no arranca al inicio
En mi caso, el servidor apache no arrancaba en mi netbook, y /var/log/httpd/error_log decía:
...(EAI 3)Temporary failure in name resolution: mod_unique_id: unable to find IPv4 address of...
Esto ocurría porque sólo tenía la wireless y al momento de arrancar, no tenía una dirección ip.
Esto se arregló quitando el módulo que causaba el error, después de todo este servidor es para pruebas en localhost. Entonces, comenté en /etc/httpd/conf/httpd.conf la línea que decía:
#LoadModule unique_id_module modules/mod_unique_id.so