Configurando Servidores Ubuntu, Apache y MySQL para Drupal
By Carlos Miranda Levy - Posted on 08 Abril 2010 Crear sitios webs, espacios virtuales colaborativos y comunidades interactivas en línea requiere de plataformas dinámicas capaces de crecer y escalar para poder responder el tráfico creciente que han de recibir si son exitosas. Recientemente hemos migrado nuevamente la red de portales y redes sociales de CIVILA, Ciudades Virtuales Latinas a una nueva plataforma y como una forma de agradecer la abundante cantidad de recursos, ayuda y documentación en línea que hemos encontrado y que nos ha permitido tener éxito, hemos documentado los pasos específicos a seguir para configurar una plataforma de aplicaciones web estable, ágil y escalable.

¿Por qué Ubuntu, Apache mpm worker y fcgid?
Luego de varias pruebas, consultas e investigaciones sobre las mejores opciones y combinaciones para soportar la plataforma Drupal sobre la cual desarrollando nuestras iniciativas desde el 2004, decidimos basar nuestra plataforma en la distribución Ubuntu de Linux, Apache con mpm worker y fcgid y la base de datos MySQL, colocando todo en servidores en nube. Esta selección de componentes y arquitectura brinda la combinación ideal de rendimiento, flexibilidad y estabilidad que buscamos. Realizadas la introducción y las aclaraciones de lugar, procedamos a seguir los pasos para configurar un servidor Ubuntu con Apache mpm worker y fcgid, PHP5 y un servidor MySQL para la base de datos. Nótese que si bien las instrucciones fueron formuladas originalmente para Ubuntu 9.10 64bit, y las capturas de pantallas y ejemplos corresponden dicha versión, las mismas han sido probadas y funcionan correctamente para Ubuntu 10.04 LTS Server Edition 64bit, el cual fue lanzado el último día de la elaboración de esta guía.

Acceso Remoto a Servidores y Clientes Shell
Para poder acceder y configurar servidores remotos (como los que se contratan y albergan en centros de hosting o data centers), la alternativa más flexible y conveniente es usar un cliente de acceso al shell de los servidores.

Putty en Windows 7

Los usuarios de Linux y Mac pueden seguir las instrucciones acá presentada susando la aplicación Terminal (que se encuentra en el menú de Accesorios), mientras que los usuarios de Windows necesitarán una aplicación como el excelente cliente gratuito Putty para realizarlas.

Alternativamente, los usuarios de Windows pueden instalar Linux en sus sistemas Windows, usando soluciones como Wubi o Sun Virtualbox. Todos los ejemplos de estas instrucciones los realicé en Ubuntu ejecutándose en Windows 7 a través de Virtualbox.

Preparando y Actualizando el Servidor Ubuntu
Antes de proceder con la instalación de cualquier aplicación, es importante asegurarnos de que las funcionalidades básicas necesarias del sistema estén actualizadas y debidamente configuradas para evitar mensajes de error y posibles complicaciones luego. Ubuntu, y Linux en general, trabaja bajo una arquitectura con funcionalidad básica y mínima que puede ser extendida con la instalación de "paquetes" que se pueden descargar en forma flexible de bibliotecas o repositorios de código. Cada distribución de Linux tiene sus propias herramientas para administrar, instalar, configurar y desinstalar paquetes. La distribución de Linux Debian, de la cual Ubuntu es una variante, cuenta con las herramientas Advanced Packaging Tool o APT para instalar y desinstalar paquetes mediante y el Debian Package Management System o DPKG. A lo largo de esta guía En los pasos a continuación, usaremos la instrucción apt-get install nombre-del-paquete para descargar e instalar paquetes y dpkg-reconfigure nombre-delpaquete para configurarlos cuando sea necesario. En adición, usaremos apt-get update para verificar las versiones de los paquetes disponibles en los repositorios y apt-get upgrade para actualizar los paquetes instalados a las versiones más recientes de los mismos. Primero nos aseguramos de habilitar el soporte de idiomas, en nuestro caso, inglés y español.
apt-get install locales apt-get install language-pack-en-base apt-get install language-pack-es-base dpkg-reconfigure locales

Luego configuramos la zona horaria del servidor.
dpkg-reconfigure tzdata

Completamente opcional y sólo necesario si vamos a construir paquetes Debian está el paquete build-essential, que instala los compiladores C y C++ y componentes asociados entre otras cosas.
apt-get install build-essential

Finalmente nos aseguramos de que los paquetes instalados en nuestra distribución de Ubuntu estén al día.
apt-get update apt-get upgrade

Fortaleciendo la Seguridad del Servidor Ubuntu y su Acceso
La seguridad de un servidor y los controles de acceso al mismo son temas de vital importancia que no deben subestimarse, postergarse o tratados en forma genérica. Si bien cada servidor e instalación es única, hay varias simples medidas que podemos tomar para hacer que nuestros servidores sean más seguros y minimizar el riesgo de ataques de ciber-piratas y reducir la frecuencia y posibilidad de los mismos.

se recomienda crear un usuario administrativo. que no pueda ser descifrada por personas o robots en un millón de intentos. haciéndolo miembro del grupo sudo (del inglés "super user do" o "super usuario hace"). en caso de que no lo hayamos instalado nosotros mismos y sea contratado en una empresa de servicios. es cambiar la contraseña del usuario principal o root. usermod -a -G sudo usuario-admin En versiones previas al Ubuntu Lucid 10. dichos permisos ya están especificados en el archivo de configuración por lo que ya los veremos adicionados al seguir los pasos siguientes: . adduser usuario-admin Una vez creado. era necesario luego de adicionar nuestro usuario al grupo sudo.. adicionar los permisos de los miembros de dicho grupo. Para ello. Para ello usamos el comando. y preservarlo como medida última de seguridad y acceso en caso de que se corrompan las informaciones de usuarios de acceso y además forzando a que sea necesario confirmar acciones administrativas que puedan tener consecuencias severas. Nunca deja de sorprender al revisar los registros de cualquier (sí.Usuario Root y Usuario Administrativo Lo primero que debemos hacer al configurar el servidor. Una norma de seguridad práctica es nunca usar el usuario root para administrar el servidor.. passwd Debemos usar una contraseña compleja. Si fueramos a llamar dicho usuario con el nombre de usuario-admin. En las versiones más recientes de Ubuntu. la cantidad de ataques que recibe al día por usuarios y robots malintencionados que buscan descifrar la clave del usuario root. existen varios programas de ayuda que nos permiten almacenar claves en forma segura en nuestro computador o en una memoria usb. lo crearíamos con el comando..04 LTS. al cual otorgaremos permisos especiales y la posibilidad de escalar sus permisos a los del usuario root en una forma segura y sin comprometer la seguridad del sistema. adicionamos dicho usuario al grupo de usuarios con posibilidad de escalar sus permisos a los del super usuario root. Si lo deseamos. pero que a la vez no la olvidemos y no necesitemos anotarla en un papelito.. cualquier) servidor.

la línea %sudo ALL=(ALL) ALL. Tres medidas preventivas básicas reducen el riesgo y nos protegen de los ataques de ciber-piratas y robots malintencionados que buscan penetrar en nuestro sistema: • • • Usar pares de llaves pública y privada para autenticar el acceso a los servidores en vez de la tradicional combinación de usuario y contraseña.04 las líneas sobre NOPASSWORD no están incluidas. Cambiar el puerto en el que se realizan las conexiones shell del tradicional puerto 22 a cualquier puerto entre 1025 y 65536. En Ubuntu 10. que es la que nos interesa ya viene incluida en Ubuntu 10. En todo caso. Ya contamos con un usuario administrativo que podemos y debemos usar para acceder y administrar el servidor sin necesidad de hacerlo como el super usuario root. . Esto hace más difícil el ataque. la cual puede ser interceptada por un ciberespía o descifrada por un robot ciber-pirata.10. ya que primero debe descifrarse cuál puerto está configurado para el acceso shell.Editamos la configuración de sudo para otorgar permisos plenos a los usuarios de dicho grupo al escalar: visudo Esto abre el archivo de configuración del grupo sudo. pero eso es irrelevante. al final del cual debemos colocar las líneas siguientes para permitir a los usuarios miembros del grupo sudo escalar sus permisos a los del super usuario: ## Permisos plenos al escalar con sudo %sudo ALL=(ALL) ALL Nota: Esta captura de pantalla corresponde a Ubuntu 9. ya que lo primera que los ciber-piratas y robots intentarán es descifrar su contraseña. Fortaleciendo la Seguridad del Acceso Shell Poder acceder a nuestros servidores y administrarlos en forma remota desde cualquier lugar a través del shell es una gran ventaja. pero esto implica potenciales riesgos de seguridad e invita ataques de ciber-piratas que intentarán descifrar dicho acceso.04. Una vez realizada la adición. No permitir el acceso del usuario root. terminamos la edición del archivo pulsando Ctrl-X y confirmando que deseamos guardar los cambios con la tecla Y.

Los pasos siguientes deben realizarse en la aplicación Terminal desde Linux o Mac en nuestro computador local.. puedes considerar usar la aplicación PuttyGen para generar las llaves y usarlas con el cliente shell Putty sin necesidad de seguir estos pasos. ssh usuario-admin@nombre-o-ip-del-servidor . Ahora que tenemos el par. ssh-keygen -t rsa Si no cambiamos el nombre y directorio para las llaves. Lo primero es acceder al servidor. la llave privada debe permanecer en nuestro computador. el comando anterior generará una llave privada (id_rsa) y una pública (id_rsa.. Lo primero que haremos será verificar la existencia del directorio en el cual almacenaremos las llaves generadas. mkdir ~/.ssh exista bajo el directorio home de nuestro usuario actual. Ahora vamos a completar los pasos necesarios para la configuración necesaria en el servidor.ssh/id_rsa. procedemos a generar el par de llaves. scp ~/.pub usuario-admin@ip-o-nombre-servidor:/home/usuario-admin/ Ya está lista la parte de la configuración a realizar en nuestro computador. el comando nos responderá con un mensaje de error indicando que el directorio existe. pero la llave pública debe ser colocada en el servidor para que pueda completarse el proceso de autenticación al acceder al mismo. NO EN EL SERVIDOR. lo cual no es problema alguno y es lo que deseamos. En dicho caso.pub) en el directorio /.ssh Una vez nos aseguramos que el directorio . Dicho directorio es muy probable que ya exista si hemos accedido antes al servidor vía shell desde el ordenador en que estamos.Generando Par de Llaves Pública y Privada de Acceso Siguiendo tres simples pasos en nuestro computador local (no en el servidor). Si usas Windows.ssh dentro del directorio home de nuestro computador. podemos generar las llaves y almacenarlas en nuestro computador de acceso y en el servidor remoto.

. PermitRootLogin no rechazará cualquier intento de acceso del usuario root. Port 12345 Protocol 2 PermitRootLogin no X11Forwarding no UseDNS no AllowUsers usuario-admin • • • • Port ##### es un valor aleatorio cualquiera desde 1025 hasta 65536. Este directorio lo creamos debajo del directorio /home de nuestro usuario administrativo. salimos pulsando Ctrl-X y confirmando que desamos grabar pulsando Y. mv /home/usuario-admin/id_rsa. AllowUsers nombre-de-usuario permite indicar los usuarios a ser considerados para acceso y autenticación. mkdir /home/usuario-admin/.Luego creamos un directorio especial para albergar las llaves públicas de nuestro usuario administrativo en el servidor.ssh chmod 600 /home/usuario-admin/. Protocol 2 indica que usaremos la versión 2 del protocolo ssh. la adicionaremos al final. debemos ajustar los permisos y propiedad de los mismos. editaremos las siguientes líneas y si faltase alguna.. sudo nano /etc/ssh/sshd_config En dicho archivo. debemos modificar el archivo de configuración para el acceso shell en el servidor.ssh/authorized_keys Finalmente. opción favorita de los ciber-piratas. chown -R usuario-admin:usuario-admin /home/usuario-admin/. El resto es rechazado de inmediato sin evaluar sus credenciales. ssh usuario-admin@ip-o-nombre-servidor -p12345 . Debemos recordar este número porque lo necesitaremos en futuros accesos al servidor vía shell.ssh chmod 700 /home/usuario-admin/..d/ssh restart Debemos tener en cuenta que el comando ssh para acceder al servidor desde Terminal ahora debe indicar el puerto especificado en la forma..pub /home/usuario-admin/. debemos también modificar las líneas siguientes: PasswordAuthentication no UsePAM no Una vez realizados los cambios deseados. sudo /etc/init. Finalmente.ssh/authorized_keys Una vez listo el directorio y el archivo de llaves autorizadas.ssh Y copiamos a dicho directorio la llave pública que subimos anteriormente desde nuestro computador. Cambiarlo dificulta los ataques genéricos de ciber-piratas y robots. reiniciamos el servicio de ssh para que los cambios entren en efecto. Si deseamos eliminar la autenticación vía usuario y password y usar solamente la autenticación con el par de llaves.

el puerto 80 (web). Uncomplicated Firewall (UFW) es una alternativa más simple de instalar. el puerto 21 (ftp) y el puerto 3306 (MySQL). escribimos: sudo sudo sudo sudo sudo ufw ufw ufw ufw ufw allow allow allow allow allow 12345/tcp 80/tcp 443/tcp 21 3306/tcp . indicar en la ventana shell del servidor: sudo apt-get install ufw Para "abrir" o permitir acceso al puerto shell 12345. sus reglas pueden resultar confusas para muchos usuarios e innecesariamente detalladas para una configuración básica de servidor web. acceso ftp y shell y base de datos MySQL. Para instalar Uncomplicated Firewall (UFW). en particular en lo que a autenticar con el par de llaves se refiere. configurar y administrar que a la vez sirve de interfaz para iptables. ha sido necesario reiniciar el servidor para que los cambios entren en funcionamiento.En mi experiencia. Sin embargo. el puerto 443 (web seguro o https). Activar y Configurar Firewall La opción más común y frecuente para proteger el servidor es usar iptables.

Luego procederá con la instalación y terminará activando Apache 2 con mpm worker y habilitando el módulo fcgid. configurado con mpm worker. PHP5 y fcgid. usaremos el servidor web Apache2. Preparación Previa Es recomendable antes de proceder a instalar Apache y PHP. incluso en forma permanente cuando se reinicia el servidor. activamos el firewall: sudo ufw enable Y listo. ya que fue lo primero que hicimos en la sección "Preparando el Sistema". podemos descargar e instalar Apache con los paquetes que necesitaremos para optimizar Drupal y tener un rendimiento óptimo y escalable. podemos habilitar el módulo: sudo a2enmod fcgid . este paso no es necesario. escalable y de alto rendimiento.Una vez definidas nuestras reglas. Si estás siguiendo las instrucciones desde el principio de esta guía. ya tenemos el firewall configurado y activado. sudo sudo sudo sudo sudo sudo apt-get install locales apt-get install language-pack-en-base apt-get install language-pack-es-base dpkg-reconfigure locales apt-get update apt-get upgrade Apache mpm worker y PHP5 como fcgid Una vez estamos seguros de que nuestro sistema está al día. sudo apt-get install apache2-mpm-worker libapache2-mod-fcgid El sistema nos mostrará un resumen de los paquetes a instalar y descargar. pidiendo nuestra confirmación con una Y. asegurarnos de que nuestro sistema y sus paquetes están actualizados y contamos con la información local de idioma. Si queremos estar seguros. Podemos verificar su estado en cualquier momento escribiendo: sudo ufw status Instalar y Configurar el Servidor Web Apache Para una infraestructura flexible.

buscamos la directiva ServerName. Veremos un mensaje al hacer la actualización informando que el paquete será ignorado para actualizar: sudo apt-get update sudo apt-get upgrade sudo dpkg -s libapache2-mod-fcgid Personalización y Configuración Si bien no es crítico.04 Nota.ubuntu. debemos revertir el paquete a la versión 1:2.com/karmic/libapache2-mod-fcgid . ServerName nombre-para-el-servidor Cerramos el archivo con Ctrl-X y confirmamos que deseamos grabar con Y.2-1_amd64. escribimos: sudo dpkg -s libapache2-mod-fcgid Y podemos probar que dicha versión se mantendrá aún cuando hagamos actualizaciones.com).04 incluyen la versión 1:2.deb • Finalmente. En el caso de nuestro ejemplo. .Corrección para Ubuntu 10.04): • Primero descargamos la versión 1:2.deb • Luego lo instalamos: sudo dpkg -i libapache2-mod-fcgid_2. Para evitar esto. los repositorios de Ubuntu 10.d/apache2 reload sudo apache2ctl graceful Para confirmar la versión actual de libapache2-mod-fcgid instalada. la adicionamos al final con el nombre que deseamos para el servidor. así no tenemos que perder tiempo recordando su ip y además la configuración se mantiene si cambiamos el ip asignado a la máquina. la cual causa que los archivos subidos vía php y aplicaciones que lo usan (como Drupal) se corrompan al ser transferidos.3. puedes re-cargar y reiniciar Apache: sudo /etc/init. es buena práctica (y algo que nos facilita el trabajo) darle un nombre real a nuestro servidor.com/ubuntu/pool/universe/liba/libapache2mod-fcgid/libapache2-mod-fcgid_2.2-1 de libapache2-mod-fcgid de uno de los repositorios o fuentes confiables enlazados en http://packages.conf En este archivo.2-1. haciendo lo siguiente (ver más detalles en Solving File Upload Corruption issues with Ubuntu 10.ubuntu.4-2 del paquete libapache2-modfcgid. sudo nano /etc/apache2/apache2. el enlace más cercano era Korea. "aguantamos" esta versión del paquete para que no sea actualizada como parte de los procesos de mantenimiento y actualización que hacemos: sudo -s echo libapache2-mod-fcgid hold | dpkg --set-selections exit Es todo.archive.midominio. por lo que hicimos: wget http://kr. ejecutando Ubuntu 64bit desde Singapur. Es buena idea configurar un FQDN para identificarlo (por ejemplo servidor1. y si no existe.2-1_amd64.

cerramos el archivo con Ctrl-X y confirmamos que deseamos grabar con Y. el lenguaje de programación que nos permite construir aplicaciones en línea. Para continuar. podemos proceder a instalar PHP. o si le asignamos un FQDN a dicho ip. Junto con el módulo básico de PHP. cambiándolos a: ServerTokens Prod ServerSignature Off Nuevamente. sudo apt-get install php5-cgi php5-curl php5-gd php5-mysql php5-sqlite php5-xsl php5-imagick php5-mcrypt php5-mhash php5-memcache php5-xmlrpc El sistema nos presentará un desglose de los paquetes a instalar.Podemos restringir la información que divulga el servidor sobre su configuración para eliminar riesgos haciendo cambios en el archivo de seguridad de Apache: sudo nano /etc/apache2/conf. reiniciamos el servicio Apache para que este cambio tome efecto. Ya casi estamos listos para habilitar y activar sitios web interactivos. debemos confirmar presionando Y y Enter. editamos los valores de ServerTokens y ServerSignature. sitios web interactivos y plataformas de contenido dinámico y colaborativo en línea. descargaremos varios módulos complementarios que amplían su funcionalidad y que necesitaremos en el futuro para varias prestaciones de nuestras páginas interactivas. Instalar y Configurar PHP5 Instalado Apache. puede hacer falta reiniciar el servidor completamente para que los cambios entren en acción. . navegando al ip. sudo apache2ctl graceful En mi experiencia. navegando a dicha dirección web. Finalmente. incluyendo paquetes adicionales requeridos por los paquetes que especificamos explícitamente. Ahora podemos verificar nuestro servidor funcionando.d/security En dicho archivo.

Pero no lo haremos aún.. Ten en cuenta que en la instrucción anterior no incluimos el módulo estándar php5 ya que usaremos el php5-cgi. ya que primero haremos algunos ajustes necesarios para configurar adecuadamente php y fcgid en Apache en la sección siguiente.d/apache2 reload Configurando Apache y PHP con FCGID Debemos adicionar directivas especiales para la configuración del php como fcgid. AddHandler fcgid-script . lo que pasa es que dicho módulo ahora viene incluido en el módulo php5-mysql. sudo /etc/init..php # Where to look for the php. Una vez finalizada la instalación del PHP. escribimos. según sugiere Khalid Baheyeldin de 2bits. debemos reiniciar Apache para que lo reconozca y active dentro del servidor web.Si estás familiarizado con la instalación de php5 o comparas con otras instrucciones y te preguntas dónde está el módulo php5-mysqli...d/php-fcgid.com: • Si es un servidor de bajo tráfico y capacidad. Para crear dicho archivo.ini file? DefaultInitEnv PHPRC "/etc/php5/cgi" # Maximum requests a process handles before it is terminated MaxRequestsPerProcess 1000 # Maximum number of PHP processes MaxProcessCount 5 # Number of seconds of idle time before a process is terminated IPCCommTimeout 240 IdleTimeout 240 #Or use this if you use the file above FCGIWrapper /usr/bin/php-cgi .php ServerLimit StartServers MinSpareThreads MaxSpareThreads ThreadsPerChild MaxClients MaxRequestsPerChild 500 3 3 10 10 300 1000 . sudo nano /etc/apache2/conf.conf Y en el interior del mismo colocamos las siguientes instrucciones. las cuales podemos colocar en un archivo separado para que Apache las cargue al iniciar.fcgi .

AddHandler fcgid-script . lo haremos para el sitio default que comprobamos en el paso anterior que está activo.• Si es un servidor con abundante memoria y que soportará una carga significativa de tráfico.> del sitio que deseamos usar con FCGID.. debemos adicionar la directiva ExecCGI en la línea de Options de las secciones <Directory .> y adicionamos ExecCGI a las mismas. sudo nano /etc/apache2/sites-available/default Y buscamos las líneas Options dentro de <Directory ..fcgi . Aprovechamos también para asegurarnos de que dentro de de <Directory . En este caso..php # Maximum requests a process handles before it is terminated MaxRequestsPerProcess 1500 # Maximum number of PHP processes.. MaxProcessCount 35 # Number of seconds of idle time before a process is terminated IPCCommTimeout 240 IdleTimeout 240 # Large site ServerLimit ThreadLimit StartServers MinSpareThreads MaxSpareThreads ThreadsPerChild MaxClients MaxRequestsPerChild 2048 100 10 30 100 64 2048 5000 Salimos del archivo con Ctrl-X y confirmamos que deseamos guardarlo con Y. La línea AllowOverride All permite una mayor facilidad en la configuración de Drupal y su buen buen funcionamiento.ini file? DefaultInitEnv PHPRC "/etc/php5/cgi" # Where is the PHP executable FCGIWrapper /usr/bin/php-cgi . adicionándolo o cambiando el None por All si es necesario. .. permitiendo que Apache lea los archivos .php # Where to look for the php.> diga AllowOverride All..htaccess en cada directorio. Finalmente.

.) Salimos con Ctrl-X y confirmamos que deseamos grabar los cambios con Y. Ahora debemos recargar Apache para que los cambios surtan efecto.php En su contenido..) DocumentRoot /var/www <Directory /> Options FollowSymLinks ExecCGI AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow.php que ejecute la funcion phpinfo() y nos muestre información del mismo: sudo nano /var/www/infodelservidor. creemos un archivo llamado infodelservidor..(.. sudo /etc/init. <? phpinfo() ?> . Por ejemplo.d/apache2 reload Para probar que todo funciona. creamos un archivo php en el sitio default y combrobamos que se ejecute correctamente.deny allow from all </Directory> (. coloquemos. Debemos fijarnos en la pantalla por si se despliega algún error o aviso del sistema...

pulsamos Ctrl-X y confirmamos que queremos guardar con Y. Configurando PHP para Alto Tráfico y Carga de Archivos en Drupal Para evitar problemas y errores de memoria y capacidad de subida de archivos por parte de los usuarios.ini que controla la configuración de PHP5. ..Cerremos con Ctrl-X y confirmemos que deseamos guardar los cambios con Y.php. debemos aumentar los valores de algunas variables relevantes en el archivo php.ini. por lo que podemos editarlo desde allí con: sudo nano /etc/php5/cgi/php. buscamos las instrucciones que deseamos cambiar y les asignamos valores mayores a los que tienen por defecto. donde además podemos comprobar que se usa fcgid en Server API y que la configuración de PHP cargada es la correspondiente a cgi.. colocando por ejemplo: memory_limit = 256 upload_max_filesize = 64M post_max_size = 128M Una vez hechos los cambios. De acuerdo a nuestra instalación.ini se encuentra en el directorio /etc/php5/cgi. el archivo php. Esto incluye ampliar los valores de las variables: • • • memory_limit: la cantidad máxima de memoria que puede consumir un script de PHP. upload_max_filesize: el tamaño máximo de los archivos que pueden cargar los usuarios.ini Una vez dentro del archivo php. post_max_size: la memoria máxima a ser usada por un envío de contenidos. Ahora podemos navegar a nuestro servidor en cualquier explorador de Internet y ver el archivo en ejecución en http://dominio-o-ip-del-servidor/infodelservidor.

De la misma forma. sites-available y sites-enabled. el sistema ha sido instalado en el directorio /etc/apache2. módulos-disponibles).*/memory_limit = 256M/' /etc/php5/cgi/php.ini sudo sed -i 's/post_max_size = . podemos también usar los comandos siguientes para hacer la actualización de los valores de dichas directrices en forma automática y sin necesidad de editar el archivo y encontrar las directrices en el mismo: • • • sudo sed -i 's/memory_limit = . bajo /etc/apache2. Podemos ver los componentes básicos del sistema. mods-enabled. todos los módulos disponibles se encuentran en un directorio llamado modsavailable (que significa en inglés.*/post_max_size = 128M/' /etc/php5/cgi/php. Básicamente.*/upload_max_filesize = 64M/' /etc/php5/cgi/php. también bajo /etc/apache2. cd /etc/apache2 ls Acá podemos ver 4 directorios esenciales para el manejo de Apache en Ubuntu: mods-available.ini sudo sed -i 's/upload_max_filesize = . dirigiéndonos al directorio /etc/apache2 y ejecutando el comando ls. activar y desactivar sitios webs sites y módulos de Apache.ini. Módulos y Sites Disponibles y Habilitados en Ubuntu Ubuntu ofrece una forma bastante cómoda de manejar.Alternativamente a editar manualmente el php. . sitios-disponibles).ini Módulos y Sitios Web en Apache y Ubuntu Si seguimos los pasos anteriores para instalar Apache en Ubuntu usando apt-get install apache2. todos los sitios webs en este servidor se encuentran en un directorio llamado sitesavailable (que significa en inglés.

lo hacemos en /etc/apache2/sites-available. Es allí también donde debemos hacer los cambios en la configuración de los sitios. lo debemos realizar siempre allí. Cuando adicionamos un módulo con apt-get install. En los directorios mods-enabled y sites-enabled apenas hay enlaces (symlinks) para los módulos y sitios web activos. . Cualquier cambio en los módulos o en sus archivos de configuración. Si lo adicionamos manualmente. En forma similar. debemos colocarlo allí. Dichos enlaces (symlinks) apuntan a los archivos físicos de los módulos y sitios web en los directorios mods-available y sites-available. se coloca automáticamente en /etc/apache2/mods-available.Los módulos activos se encuentran listados en el directorio mods-enabled (que significa en inglés módulos habilitados) y los sitios web activos en el directorio sites-enabled (que significa a su vez sitios habilitados). cuando queremos crear un sitio web en el servidor.

. Activamos y desactivamos módulos Apache con a2enmod y a2dismod. Instalar y Activar Módulos de Apache en Ubuntu Módulos Disponibles y Activados en Ubuntu En Ubuntu. todos los módulos de Apache instalados y disponibles para activar se encuentran en un directorio llamado mods-available (que significa en inglés. Activamos y desactivamos los sitios web con a2ensite y a2dissite. Los módulos activos se encuentran listados en el directorio mods-enabled (que significa en inglés módulos habilitados). En las páginas siguientes exploramos y explicamos en detalle estas instrucciones con ejemplos aplicados de su uso.. bajo /etc/apache2. . Descargamos e instalamos los módulos Apache en /etc/apache2/mods-available. módulos-disponibles). • • • • Creamos y configuramos los sitios web en /etc/apache2/sites-available.En resumen.

usamos las instrucciones a2enmod y a2dismod (del inglés "Apache 2 enable module" o "Apache 2 habilitar módulo" y "Apache 2 disable module" o "Apache 2 desactivar módulo").conf ni php5. hacemos: sudo a2dismod php5 sudo /etc/init. Habilitando y Desactivando Módulos en Apache: a2enmod y a2dismod Para activar y desactivar módulos en Apache. debemos colocarlo allí. .d/apache2 reload Por ejemplo. lo debemos realizar siempre allí. Si existe allí. para desactivar PHP. lo cual nos confirma que han sido desactivados. Lo primero es asegurarnos de que se encuentra físicamente en el directorio /etc/apache2/modsavailable. Cualquier cambio en los módulos o en sus archivos de configuración.d/apache2 reload Si miramos ahora en el directorio /etc/apache2/mods-enabled veremos que ni php5. En el directorio mods-enabled apenas hay enlaces (symlinks) para los módulos activos.Cuando adicionamos un módulo con apt-get install. se coloca automáticamente en /etc/apache2/mods-available. Si lo adicionamos manualmente. basta con escribir el comando de activación seguido del nombre del módulo y luego recargar Apache. Dichos enlaces (symlinks) apuntan a los archivos físicos de los módulos en el directorio mods-available.load aparecen listados allí. sudo a2dismod nombre-del-modulo sudo /etc/init.

debemos instalar y activar el módulo rewrite de Apache y luego reiniciar Apache para que tenga efecto. debemos realizar un pequeño cambio en el archivo de configuración apache2.socinfo.php?q=$1 [L. Direcciones Web Amistosas Drupal nos permite presentar los contenidos en la web en direcciones amistosas y flexibles. sudo a2enmod rewrite En adición.QSA] </Directory> . el cual editamos escribiendo: sudo nano /etc/apache2/apache2. Módulos de Apache Importantes y Recomendados para Drupal en Ubuntu Los pasos siguientes no son estrictamente necesarios para el funcionamiento de Drupal. Para ello.com/ubuntu/apache/modulos o cualquier combinación que deseemos. podemos instalar y configurar en el próximo paso algunos módulos importantes y recomendados para el buen funcionamiento de Drupal. De esta forma. fáciles de leer y recordar y que aumentan el posicionamiento de nuestros contenidos en los buscadores de Internet.conf.conf Colocamos al final del mismo las siguientes líneas: <Directory /home/usuario-admin/public_html/> AllowOverride All RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.Ahora que sabemos instalar y desinstalar módulos de Apache en Ubuntu. pero se recomienda seguirlos antes de instalar Drupal ya que completan la funcionalidad y valor del sistema.*)$ index.socinfo. Usuarios avanzados pueden seguir alternativas diferentes de acuerdo a su experiencia y preferencias.com/q?=node/512. podemos definirlo con la dirección www. en vez de un artículo tener la dirección www.

instalaremos sendmail: sudo apt-get install sendmail sudo /etc/init. actualizamos los datos del repositorio y lo descargamos: sudo apt-get update sudo apt-get install imagemagick --fix-missing Debemos tener en cuenta que para activarlo en Drupal. Otros Módulos Hay otros módulos que puede interesarnos instalar dependiendo de los módulos de Drupal a usar. build-essential: Necesario sólo en caso de que vayamos a compilar algunas opciones. reiniciamos el servidor Apache para que los cambios surtan efecto: sudo /etc/init. generar y combinar imágenes en el servidor. curl: . simplemente. suscripciones.d/apache2 restart Envío Correo-e desde el Sitio Web Para tareas como confirmación de registro. entre ellos los más populares son sendmail y postfix. Afortunadamente esta funcionalidad viene integrada en Drupal sin mayor complicación. Pero en general mientras menos módulos de Apache instalamos mejor. Estos incluyen: • • Hay quienes prefieren instalar curl para manejar cron y este módulo también es requerido por varias aplicaciones de integración con otras plataformas y comercio electrónico. hacen falta pasos adicionales. dependiendo si usamos el módulo Image (hay que copiar un archivo a /includes) o ImageAPI (hay que activar el módulo ImageMagick que viene con ImageAPI).Terminamos la edición con Ctrl-X y confirmamos que deseamos guardar los cambios con Y. etc. es necesario contar con la capacidad de enviar mensajes de correo a los usuarios de nuestro sitio web. re-envío de contraseñas olvidadas. Finalmente. Por ser el más común.d/apache2 restart ImageMagick Permite manipular. Para instalarlo. Existen varios módulos de Apache que nos permiten esto. pero requiere que Apache esté configurado para ello. Y en ambos casos hay entonces que indicarle a Drupal que deseamos usar ImageMagick como nuestra herramienta de gráficos. notificación de nuevos contenidos y actualizaciones a usuarios.

Es allí también donde debemos hacer los cambios en la configuración de los sitios. En el directorio sites-enabled apenas hay enlaces (symlinks) para los sitios web activos. bajo /etc/apache2. lo hacemos en /etc/apache2/sitesavailable.Crear y Activar Sites en Apache con Ubuntu Sites Disponibles y Habilitados en Ubuntu Básicamente. Los sitios web activos se encuentran listados en el directorio sites-enabled (que significa sitios habilitados). Cuando queremos crear un sitio web en el servidor. Dichos enlaces (symlinks) apuntan a los archivos físicos de configuración de los sitios web en el directorio sites-available. sitios-disponibles). Habilitando y Desactivando Sitios Web en Apache: a2ensite y a2dissite . todos los sitios webs en este servidor se encuentran en un directorio llamado sitesavailable (que significa en inglés.

Si queremos reactivar el sitio web por defecto. Podemos verlo incluido en el directorio de sitios webs activos /etc/apache2/sites-active: ls /etc/apache2/sites-enabled Si queremos desactivar el sitio web "default". es necesario reiniciar el servidor para activar el cambio).d/apache2 reload Esto colocará enlaces nuevamente en el directorio /etc/apache2/sites-enabled para el sitio web default albergado en /etc/apache2/sites-available. debemos cargar Apache nuevamente: sudo /etc/init. basta con usar a2ensite y cargar apache nuevamente: sudo a2ensite default sudo /etc/init.d/apache2 reload Si navegamos ahora a la dirección web o IP de nuestro servidor. En los pasos anteriores configuramos Apache y pudimos verificar que el servidor web estaba activo visitando el ip o dirección del mismo. el navegador nos mostrará una página de error (en algunos sistemas de hosting que usan cache. . basta con escribir el comando: sudo a2dissite default Ejecutado el comando anterior. usamos las instrucciones a2ensite y a2dissite (del inglés "Apache 2 enable site" o "Apache 2 habilitar sitio" y "Apache 2 disable site" o "Apache 2 desactivar sitio").Para activar y desactivar sitios web. La página web mostrada corresponde al sitio web por defecto (default en inglés). podemos ver que ya no está incluido en los sitios activos: ls /etc/apache2/sites-enabled Pero para que la desactivación entre en efecto.

Cuando creamos un usuario en Apache. un usuario administrativo para cada sitio web en el servidor para así poder auditar y controlar los accesos al mismo. Estructura de Directorios para Sitios Web Drupal en Apache Es importante definir. Backup: Donde albergamos copias temporales de la web mientras hacemos cambios o actualizaciones. este "sitio web" puede albergar y servir múltiples sitios desde una sola instalación. típicamente necesitamos los siguientes directorios: • • • • Público: Donde se colocan los archivos visibles en la web. Para ir al directorio home del usuario con el que estamos ingresados en el servidor. En el caso de Drupal. En la gestión de sitios webs. por lo general se crea un directorio para el mismo bajo el directorio /home. o mejor dicho.. Para nuestro ejemplo e instrucciones. cgi-bin: Donde se colocan ciertos archivos ejecutables. sugerimos la estructura estándar siguiente: . Es decir que para el usuario-admin de nuestro ejemplo. hay un directorio usuarioadmin dentro del directorio home del directorio raíz (/) de de nuestro servidor. podemos escribir cd /home/nombre-de-usuario o simplemente.En los pasos siguientes veremos cómo crear el espacio físico o directorios para los sitios web y la configuración de los mismos.. por lo que nuestra opción es práctica y conveniente. Nosotros preferiremos un sitio web por cada usuario en el servidor. control y manejo de su seguridad cómodamente. Esto nos facilitará su gestión. actualización. cd ~ Hay múltiples formas de estructurar los directorios para albergar sitios web. Logs: Donde se almacenan los registros y bitácoras de acceso al sitio. crear y usar una estructura eficiente y coherente para los directorios en los que albergamos nuestros sitios web.

En Ubuntu. y distribuciones Debian de Linux.. Permisos de Usuarios y Directorios para Sitios Web en Apache Exiten dos usuarios básicos cuyos permisos debemos configurar para el adecuado funcionamiento de los sitios web. Para facilitar la administración del sitio web. la estructura de directorios se verá así. adicionamos el usuario administrativo al grupo wwwdata. nuestro usuario debe ser miembro de sudo y www-data y el comando anterior debe listar su nombre.Una vez configuremos Drupal con instalación multisitio.... el usuario del servidor web Apache normalmente se llama www-data y debe encontrarse en el grupo www-data. podemos verificar que ha sido adicionado al grupo escribiendo. . seguido de ambos grupos. En otras distribuciones de Linux se llama nobody o apache. Este usuario www-data debe tener acceso a los directorios públicos del sitio web para poder leer y mostrar sus contenidos. En el paso siguiente veremos las consideraciones de seguridad para dichos directorios.. ejecución de aplicaciones y almacenamiento de archivos: • • el usuario dueño del sitio.. groups Si hemos seguido las instrucciones correctamente desde el principio hasta acá. el usuario Apache. sudo usermod -a -G www-data usuario-admin Si estamos accediendo el servidor como el usuario-admin.

de forma tal que un solo servidor puede "servir" múltiples sitios webs. el primer 7 da todos los permisos al usuario dueño del archivo.conf. el segundo 7 da todos los permisos a los usuarios del grupo al cual pertenece el dueño (www-data de Apache) y el 5 indica permisos de lectura (r) y ejecución (x). debemos asegurarnos de que nuestro directorio web public_html es parte del grupo www-data de Apache: sudo chgrp -R www-data /home/usuario-admin/public_html Otorgamos los permisos adecuados para que el directorio web y los archivos y directorios creados dentro del mismo sean visibles en la web. podemos proceder a crear el directorio public_html dentro del directorio de nuestro usuario en /home: mkdir ~/public_html También podemos escribir mkdir /home/usuario-admin/public_html. por ejemplo con el nombre de files y otorgar los permisos adecuados. El archivo principal que define el sitio web por defecto (default) de nuestro servidor es port. ¿Lo recuerdas? . según la estructura propuesta en el paso anterior. mkdir ~/public_html/files sudo chmod -R 2775 /home/usuario-admin/public_html/files El 2 hace que sea permanente el permiso para los archivos creados en el futuro. donde usuario-admin es el nombre del usuario con el que estamos trabajando. De acuerdo a lo propuesto y para continuar con el ejemplo del paso siguiente. para el resto del mundo.Si no lo hemos creado. podemos crear un directorio en el cual puedan almacenarse y grabar archivos. usamos el comando. indica que el servidor web debe escuchar en el puerto 80 por cualquier dominio o consulta que reciba. los cuales no son más que la definición de los sitios que deseamos albergar. mkdir ~/logs A continuación. Podemos ver su contenido usando el comando: cat /etc/apache2/ports. Dichas consultas. Este directorio no tiene requerimientos especiales de seguridad. Pero este paso no es necesario ahora. Creando Sitios Web con Virtual Hosts en Ubuntu La ruta más común para crear sitios web en nuestro servidor Apache es a través de anfitriones virtuales o virtual hosts. ya que los registros los escribe el usuario raíz o root. usuarios y grupos para mostrar y ejecutar adecuadamente sitios web en Apache. creamos también un directorio para albergar los logs o registros del servidor. pero no de escritura (w).. sudo chmod -R 2755 /home/usuario-admin/public_html Si lo deseamos. Con esto hemos configurado los permisos. serán procesadas según las directivas del sitio web default definido en el directorio /etc/apache2/sites-available.. ya que luego tendremos una estructura diferente para Drupal y deberemos crear un directorio de archivos en una ubicación distinta como veremos en el paso Instalación y configuración de Drupal. Sí debemos asegurarnos de que no esté bajo la ruta de archivos visibles en la web.conf Básicamente.

0.com ServerName dominio-del-sitio..0.html DocumentRoot /home/usuario-admin/public_html <Directory /> Options FollowSymLinks ExecCGI AllowOverride All </Directory> <Directory /home/usuario-admin/public_html/> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow. La forma más fácil es copiar el archivo default y modificarlo.php </Directory> <VirtualHost *:80> ServerAdmin info@dominio-del-sitio.com DirectoryIndex index.htaccess necesarios en la instalación por defecto de Drupal..dominio-del-sitio.deny Allow from all </Directory> LogLevel warn ErrorLog /home/usuario-admin/logs/error.. debemos colocar AllowOverride All dentro de las secciones <Directory .>. <Directory /home/usuario-admin/public_html> AddHandler fcgid-script . creamos un archivo con el nombre del dominio. Un modelo de archivo de definición de host en Ubuntu sería. para poder usar los archivos ..deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow.>.com En nuestro caso es importante incluir las cuatro primeras líneas del ejemplo debajo sobre el AddHandler y FCGIWrapper.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks ExecCGI AllowOverride All Order deny. en el directorio /etc/apache2/sites-available.com ServerAlias www. cd /etc/apache2/sites-available/ sudo cp default dominio-del-sitio..0/255.0.0..log CustomLog /home/usuario-admin/logs/access.allow Deny from all Allow from 127.0 ::1/128 </Directory> </VirtualHost> .Para habilitar nuevos sitios web en nuestro servidor. En adición.php FCGIWrapper /usr/lib/cgi-bin/php5 .com sudo nano dominio-del-sitio. y también que se encuentre ExecCGI en las líneas Options de cada sección <Directory .

asegurarnos de que nuestro sistema y sus paquetes están actualizados y contamos con la información local de idioma. este paso no es necesario. Es recomendable antes de proceder a instalar MySQL. sudo /etc/init. Una de las recomendaciones que más impacto puede producir en el rendimiento de nuestros portales es albergar y ejecutar la base de datos en un servidor distinto al que alberga la aplicación de contenidos. sudo sudo sudo sudo sudo sudo apt-get install locales apt-get install language-pack-en-base apt-get install language-pack-es-base dpkg-reconfigure locales apt-get update apt-get upgrade Una vez estamos seguros de que nuestro sistema está al día. Es importante que esta contraseña sea compleja y no la olvidemos ni divulguemos. . de forma tal que distribuyamos la carga de procesamiento en dos servidores: uno con la aplicación (en nuestro caso Drupal) y otro con la base de datos (MySQL).Grabamos con Ctrl-X. reiniciamos Apache y nuestro nuevo sitio estará listo.. Luego procederá con la instalación y se detendrá nuevamente para pedirnos una contraseña maestra para el usuario root de MySQL. confirmando con Y y procedemos a habilitar el sitio.. sudo apt-get install mysql-server El sistema nos mostrará un resumen de los paquetes a instalar y descargar. pidiendo nuestra confirmación con una Y seguida de Enter. sudo a2ensite dominio-del-sitio. ya fue lo primero que hicimos en la sección "Preparando el Sistema". Si estás siguiendo las instrucciones desde el principio de esta guía.d/apache2 reload Instalar y Configurar Servidor MySQL MySQL es la plataforma que usamos para albergar y manejar la base de datos del sistema. podemos descargar e instalar el paquete de MySQL.com Finalmente.

la cual debe continuar y concluir sin mayor complicación. más bien debemos. podemos. Primero nos pide la contraseña del usuario root de MySQL y una vez introducida. si lo deseamos. Fortaleciendo la Seguridad de MySQL Una vez instalado MySQL y antes de abrirlo al mundo como plataforma en producción.Introducimos la contraseña e indicamos OK y se nos pide que la introduzcamos de nuevo para confirmar antes de proseguir con la instalación. ejecutar el script predefinido que nos ayuda a dar los primeros pasos y tomar las medidas básicas de seguridad para el servidor de bases de datos.. Enter current password for root (enter for none): Change the root password? [Y/n] n . nos invita a cambiarla. sudo /usr/bin/mysql_secure_installation El uso del script es bastante sencillo..

se recomienda instalar y configurar el sistema de bases de datos en un servidor dedicado aparte. las cuales debemos responder con una Y para fortalecer la seguridad y el script se encarga del resto.De ahí en lo adelante se limita básicamente á realizarnos una serie de preguntas. MySQL solo acepta . MySQL está seguro y hemos eliminado riesgos innecesarios. Por defecto. Para sitios web de alto tráfico. no te preocupes. Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y Si ves un mensaje de error de que la tabla test no existe como en la pantalla de ejemplo debajo. En el caso de optar por esta arquitectura. Configurando Acceso a Servidor MySQL dedicado El uso de recursos por la aplicación de bases de datos es una de las razones más comunes que afecta el rendimiento de una web con aplicación de manejo de contenidos como Drupal. puede que la misma no haya sido incluida. es necesario entonces permitir el acceso del servidor de aplicaciones (donde está Drupal) al servidor de bases de datos. separado y distinto del de aplicaciones. Es todo. que dependiendo de cómo fue configurado MySQL.

Preparar Base de Datos MySQL para Instalación de Drupal Antes de instalar Drupal. debemos crear la base de datos a ser usada por el sistema y el usuario que usará Drupal para acceder. reiniciamos MySQL con el comando: /etc/init. identificándonos como el usuario principal root y que nos pregunte el password.. pero estaría visible a cualquiera que esté cerca y es mejor escribir solo -p para que el sistema nos pregunte y no sea visible cuando lo digitemos. no significa que cualquier servidor tendrá acceso a los datos.0. . podemos indicar el ip del mismo en la directiva bind-address. Para desactivar la limitación de acceso sólo local. La solución está en desactivar o modificar dicha directiva editando el archivo de configuración de MySQL my.1 Y cerramos el archivo pulsando Ctrl-X y Y para confirmar que deseamos guardar los cambios. podemos simplemente desactivar esta restricción. Alternativamente.0.0. leer y escribir en ella.0. Nótese que desactivar la restricción de acceso válido solo para el servidor local.cnf.0. #bind-address = 127. mysql -h localhost -u root -p Este comando indica que queremos ejecutar la plataforma MySQL usando bases de datos almacenadas en el servidor local desde el cual lo ejecutamos. sino que el servidor de bases de datos aceptará pedidos de cualquier servidor. podemos escribir el password luego de -p. Pero el acceso mismo en sí debe ser otorgado como explicaremos más adelante.0.cnf Y buscamos la línea que contiene bind-address y colocamos el signo # al inicio de la misma para desactivarla.1 con su ip.1 en su configuración inicial. si instalamos MySQL con las opciones por defecto en un servidor Ubuntu. Si más de un servidor de aplicación(es) va a acceder al sistema de bases de datos.pedidos de acceso de aplicaciones ejecutándose en el mismo servidor en que él se encuentra. Para que los cambios tengan efecto. escribimos: sudo nano /etc/mysql/my. tal y como lo define la directiva bind-address = 127. Si lo deseamos. Para ello ingresamos en MySQL escribiendo.d/mysql restart Ya estamos listos para que otros servidores puedan acceder a nuestras bases de datos según los permisos específicos que otorguemos. en vez de desactivarla colocando el # delante. sustituyendo el 127. si sólo un servidor de aplicación(es) va a acceder a la base de datos.

... Es importante escribir el .456. • • • db_user es el nombre del usuario al que otorgamos todos los privilegios de acceso a la base de datos. al final de la instrucción y antes de pulsar Enter. Una vez creada la base de datos creamos el usuario para acceder a la misma y le asignamos los permisos en un solo paso: GRANT ALL PRIVILEGES ON drupalsite_db. password es la contraseña que creamos y que validará el acceso.012 Es importante anotar esta información ya que la necesitaremos luego al instalar y configurar Drupal. podemos indicar localhost en vez de un IP. 123.Una vez dentro. . procedemos a crear la base de datos. ya que es el .012 IDENTIFIED BY 'password'. lo que indica a MySQL que la instrucción está completa y debe ejecutarla. Para asegurarnos que los permisos entren en efecto de inmediato. Por ejemplo. escribimos: flush privileges.* TO db_user@123. Si Drupal y MySQL se ejecutan en el mismo servidor.456. quit. En nuestro ejemplo. si deseamos llamar la base de datos "drupalsite_db". escribimos: create database drupalsite_db. es el ip del servidor desde el cual se accederá a la base de datos. Ahora podemos salir de MySQL escribiendo.789..789.

asegurémonos de haber: • • • Instalado y activado los módulos necesarios y recomendados en el paso Módulos de Apache Importantes y Recomendados para Drupal en Ubuntu. en nuestro ejemplo asumimos que Drupal es la aplicación principal para el despliegue y manejo de contenidos en nuestro sitio web. Preparación de Instalación de Drupal Vía Shell Descarga y Descompresión de la Aplicación Drupal Si bien podemos instalar Drupal en un subdirectorio de nuestro sitio web. Revisión Final antes de Proceder Ya estamos prácticamente listos para instalar Drupal. La instalación de Drupal consta de dos pasos: • • En el Servidor: Descargar. Hay una tercera fase. configurar. el sitio web y su estructura de directorios y el sistema de bases de datos (MySQL) y la base de datos a usarse. podemos proceder a instalar Drupal en el servidor de aplicaciones. obviamente. En la Web: Ejecutar la instalación vía web. preparados y configurados el servidor web (Apache). que consiste en revisar. haremos la configuración desde el servidor y luego la instalación de Drupal desde la web. por lo que lo instalaremos en el directorio principal del mismo. descomprimir y configurar los archivos de la aplicación Drupal. Instalar y Configurar Drupal Una vez instalados.ini en Configurando PHP para Alto Tráfico y Carga de Archivos en Drupal. Realizado los cambios sugeridos en php. respondiendo las preguntas correspondientes hasta completar la configuración. En los próximos pasos. para lo cual nos desplazamos allí en el servidor web o de aplicaciones: cd /home/usuario-admin/public_html .Ya la base de datos está lista para que podamos instalar Drupal. Realizado los cambios sugeridos en la definición del o los virtual hosts. en particular el AllowOverride All como se indica en Creando Sitios Web con Virtual Hosts en Ubuntu. pero antes. adecuar y extender las configuraciones una vez completada la instalación.

htaccess .gz . por lo que.La versión más reciente de Drupal puede descargarse siempre desde la página principal de www. Si no hemos creado dicho directorio.. Debemos también mover el archivo oculto .gz Drupal es descargado como un archivo comprimido que debemos desempacar con el comando: tar -zxvf drupal-6.tar.16.tar.16/./backup Podemos listar los archivos del directorio con el comando ls para ver los resultados de nuestra instalación hasta ahora.htaccess: mv drupal-6.16 Si lo deseamos.org/files/projects/drupal-6. Una vez movidos los archivos. podemos guardar en el directorio backup que creamos en el archivo descargado para poder restaurar la configuración original en caso de dificultades o como medida de prevención.drupal.16. Copiamos el enlace adecuado de dicha página y lo descargamos en nuestro directorio principal del servidor con wget: wget http://ftp. . encontrándonos en /home/usuarioadmin/public_html escribimos: mv drupal-6. podemos hacerlo ahora.drupal. mkdir ~/backup mv drupal-6. podemos eliminar el directorio creado: rmdir drupal-6.gz Esto creará el directorio drupal-6.tar.16/* .org.16 y colocará dentro del mismo todos los archivos de Drupal.16. Debemos moverlos a nuestro directorio principal.

org/files/projects/es-6.tar.drupal.x-1.gz .php chmod 777 sites/default/settings.php sites/default/settings.settings.Permisos del Archivo de Configuración y el Directorio para archivos subidos Ahora debemos copiar y dar permiso de escritura al archivo de configuración: cp sites/default/default.org/project/es: wget http://ftp.4.php Y aprovechamos y creamos ahora un directorio files en el cual los usuarios podrán subir archivos y le otorgamos los permisos correspondientes: mkdir sites/default/files chmod -R 2775 sites/default/files Traducción al Español Para poder instalar Drupal en español debemos descargar y descomprimir el archivo más reciente de traducción. en el directorio principal en el cual estamos instalando Drupal. Nos movemos al directorio principal de la web: cd ~/public_html Luego descargamos el archivo de traducción al español disponible en http://drupal.

gz Antes de proseguir. movemos el archivo con las traducciones que descargamos al directorio de backup: mv es-6../backup Ahora podemos proceder a realizar la instalación vía web.gz .x-1.x-1.Y lo descomprimimos ahí mismo: tar -zxvf es-6. podemos ir a la dirección web de nuestro sitio o su ip y debe iniciarse el proceso de instalación de Drupal. Instalación Web de Drupal Una vez preparados los directorios. .4. navegando en nuestro explorador de Internet al IP o dirección que hemos configurado para nuestro sitio web.4. base de datos y descargado y descomprimido Drupal como explicamos en los pasos anteriores.tar.tar. módulos.

al pulsar Guardar y continuar. debemos indicarlo haciendo click en Advanced Options para que se muestren unos campos adicionales que nos permiten indicar el ip o FQDN del servidor de bases de datos. Si todo está bien... .Cuando se nos pregunte por la base de datos. veremos un par de pantallas en las que se nos informa del proceso de instalación y de la configuración de las traducciones para los componentes básicos del sistema. si esta se encuentra en otro servidor.

reconstruir índices. usuario administrador y contraseña. Verificación de la correcta subida de archivos. etc.php Configuración y Verificación Post-Instalación Drupal Una vez concluida la instalación. Lo primero que debemos hacer es configurarlo y . se nos informa que hemos concluido felizmente la instalación y que ya podemos ver nuestro nuevo y flamante sitio web Drupal en la dirección configurada: Una vez terminada la instalación. se nos muestra una pantalla en la que debemos introducir las informaciones y configuraciones generales del sitio web: Su nombre. Verificación del envío de mensajes a usuarios.A seguidas. Luego de esta pantalla. tales como limpiar caches. Cambios especiales para imagemagick y jquery (opcionales) Configurar Cron La aplicación cron ejecuta periódicamente tareas de mantenimiento de Drupal.php para evitar riesgos de seguridad. chmod 444 ~/public_html/sites/default/settings. Esto incluye: • • • • Configuración y verificación de Cron. enviar correos. la hora del sitio y sus formatos. su ubicación y permisos. hay varias acciones que es bueno realizar para asegurar un buen funcionamiento y verificar que todo esté bien instalado. etc. debemos cambiar los permisos del archivo settings.

asegurarnos que funciona.). en el cual se indican las tareas periódicas a realizar por el sistema. Podemos verificar que cron no se ha ejecutado si visitamos la página de reporte de Drupal en dominio-del-sitio. Esperamos de ejecución y volvemos a visitar dominio-delsitio. 2:05.com/admin/reports/status. debe mostrarnos que el cron se ha ejecutado exitosamente hace unos momentos. Para ello. vamos a la página de módulos siguiendo la secuencia de menú "Administrar > Construcción del Sitio > Módulos" o directamente a la dirección "http://dominio-delsitio/admin/build/modules". casi al final de la lista de módulos "Core . Esto lo logramos en dos pasos: Primero. miramos la hora en nuestro servidor y cambiamos el 5 por un valor que programe la tarea deseada para su ejecución en los próximos minutos y así podemos verificar que funciona. Terminamos de editar el archivo con Ctrl-X y pulsamos Y para confirmar que deseamos guardar los cambios. Ahí está también la dirección de archivos temporales que podemos mover bajo la de archivos si queremos para tener más control. etc. Como queremos ejecutarlo de inmediato. Para configurarlo. a la 1:05. pero no es necesario. que pase la hora Si no es así. Esto se hace editando el archivo de crontab. escribimos en el servidor: sudo crontab -e En el interior de este archivo colocamos: 5 * * * * wget -O .Opcional" y seleccionamos el botón "Guardar Configuración" para activarlo.com/admin/reports/status y vemos el indicador de cron al final de la página. El próximo paso es configurar el módulo y la subida de archivos en general. Esto se encuentra siguiendo la secuencia de .php Donde 5 seguido de * * * * quiere decir que se ejecutará 5 minutos luego de cada hora (es decir. verificamos el lugar donde se subirán los archivos y que Drupal no indique ningún error.-q -t 1 http://dominio-del-sitio. Si todo está instalado y configurado correctamente. seleccionamos la casilla junto al título del módulo Upload. que "Permite a los usuarios subir archivos y anexarlos a contenido".com/cron. podemos verificar el log del sistema para ver si hay algún mensaje de error al respecto sudo nano /var/log/syslog Verificar la Correcta Subida de Archivos en Drupal Lo primero es activar el módulo Upload. Una vez allí.

los cambios ocurren en forma rápida y continua. en lo que por lo general constituye una evolución constantemente de los sistemas hacia una mayor eficiencia. Finalmente. encontrar y realizar dichos cambios. no sólo de cada sistema en particular. Esto lo hacemos siguiendo siguiendo la secuencia de menú "Administrar > Administración de Usuario > Permisos" o directamente a la dirección "http://dominio-del-sitio/admin/user/permissions". Una vez completado esto. Esto se debe en parte al proceso de prueba y verificación colaborativa común en los proyectos de Open Source. Un límite de 64Mb por archivo y 512M por usuario debe ser suficiente en una comunidad común. Compatibilidad de Módulos Contribuidos de Drupal con PHP 5.3. siguiendo el menú "crear contenido". la comunidad ha respondido rápidamente identificando y proponiendo los cambios necesarios en el sistema principal o "core" y en varios módulos contribuidos que requieren adecuación para garantizar compatibilidad con PHP 5. La introducción de la versión 5. Al no encontrarse las soluciones y cambios incorporadas en las versiones estables y oficiales. el cambio es mínimo y la solución y adaptación relativamente fácil. y a los "usuarios anónimos" a "acceder a los comentarios". pero aún así es menester rastrear. versatilidad y rendimiento. Y ya que estamos ahí. "borrar las entradas de bitácora propias" y "editar las entradas de bitácora propias".menú "Administrar > Configuración del Sitio > Sistema de Archivos" o directamente a la dirección "http://dominio-del-sitio/admin/settings/file-system". En el caso de Drupal. Pero esto implica el reto de mantener la compatibilidad con las versiones anteriores. Luego.3. eficacia.3 En el mundo de la informática. probar descargando o viendo los archivos para confirmar que subieron bien. al final de la página. Es importante luego de subir los archivos adjuntos y guardar el contenido.3 de PHP implicó cambios en el manejo de variables y en particular de arreglos o arrays que afectan el funcionamiento de buena parte de las aplicaciones existentes desarrolladas en PHP. sino con el resto de sistemas con los que cada uno interactúa y comunica. siguiendo la secuencia de menú "Administrar > Configuración del Sitio > Descargas de Archivos" o directamente a la dirección "http://dominio-del-sitio/admin/settings/uploads". anexamos uno o más archivos para asegurarnos de que esta funcionalidad esté correcta. Afortunadamente. a través del cual los cambios se introducen inicialmente en versiones "dev" o "beta" y sólo en las versiones oficiales luego de que han sido probados y verificados por una cantidad significativa de usuarios. Colocamos un título y texto de prueba y luego. podemos aprovechar para permitir a los "usuarios autenticados" a "crear entradas de bitácora". configuramos el tamaño y tipo de archivos que pueden subir los usuarios. no han liberado versiones actualizadas con las correcciones en el caso de varios módulos populares e importantes para numerosas instalaciones de Drupal. damos permiso de "subir archivos" a los "usuarios autenticados" y de "ver archivos cargados" tanto a los "usuarios anónimos" como a los "usuarios autenticados". los responsables de mantener y actualizar las versiones oficiales del sistema principal y estos módulos contribuidos. el usuario común puede tener un poco de dificultad encontrando los cambios necesarios para alcanzar su compatibilidad con PHP 5. podemos usar nuestro usuario administrativo o el usuario de prueba si creamos uno y publicar un blog (con el usuario de prueba) o un artículo o página (con el usuario administrativo). A pesar de la rápida respuesta. habrá dos conjuntos de opciones: las generales y las de los usuarios autenticados o registrados. además de los "usuarios autenticados". Debemos tener en cuenta que si ya hemos creado usuarios en el sistema. que ya tiene ese permiso por defecto. en particular dado que en ocasiones hay más de una discusión sobre .

3 • Versión: Drupal 6. Antes de aplicar los cambios o parchos listados a continuación. Actualizando Módulo (core) Node de Drupal para PHP 5.org/node/613528#comment-2250424 • . introduzco una breve lista de cómo descargar y aplicar los cambios y la fuente para dicho cambio.3 • Versión: 6. se recomienda revisar la fuente de los mismos por si hay algún cambio nuevo o corrección y además verificar la versión de nuestra instalación de Drupal y de cada módulo en cuestión.org/node/587568#comment-2505664 • Actualizando Módulo (core) Comment de Drupal para PHP 5. Cada corrección indica la versión en particular del módulo que corrige.cómo hacerlo y que el proceso es abierto y libre. dependiendo del flujo. para los módulos que uso y que tienden a ser populares.16 .3 • Versión: Drupal 6.03-Mar-2010 (verificar que no hay una versión más nueva antes de aplicar el parcho) Fuente: http://drupal. Pero las soluciones están ahí en cada caso.16 . a la fecha de mayo 26 del 2010. intervención y participación de la comunidad.3.16.29-Jul-2009 (verificar que no hay una nueva antes de aplicar el parche) Fuente: http://drupal.org/node/587568#comment-2718536 • Actualizando Módulo Calendar de Drupal para PHP 5. En el caso de los módulos del sistema principal "node" y "comment".2 . Para simplificar la búsqueda y aplicación de las actualizaciones de los módulos principales y contribuidos de Drupal que necesitan cambios para compatibilidad con PHP 5.03-Mar-2010 (verificar que no hay una versión más nueva antes de aplicar el parcho) Fuente: http://drupal. las correcciones son para Drupal 6.x-2.

Actualizando Módulo Date de Drupal para PHP 5.x-dev .11-Jul-2010 (verificar que no hay una nueva versión antes de aplicar el parcho) Fuente: http://drupal.x-2.3 • • Versión: 6.org/node/518816#comment-3008038 http://drupal.03-Mar-2009 (verificar que no hay una nueva versión más nueva antes de aplicar parcho) Fuente: http://drupal.org/node/518816#comment-3027232 http://drupal.1-rc1 .x-1.org/node/582934 • .3 • Versión: 6. es necesario aplicar dos parches distintos: • • Versión: 6.4 .org/node/549884#comment-2250444 Si usamos la versión dev de Date.16-Sep-2009 (verificar que no hay una nueva versión antes de aplicar el parche) Fuente: http://drupal.org/node/772180#comment-2904768 (marcado como duplicado) Actualizando Módulo GMap de Drupal para PHP 5.x-2.

3 Los parches disponibles fallan al aplicarse. . Pero el cambio es mínimo y se puede hacer manual Buscar dentro de.01-Apr-2009 (verificar que no hay una nueva antes de aplicar parcho) Fuente: http://drupal.Actualizando Módulo Google Analytics de Drupal para PHP 5...5 .org/node/679404#comment-2668756 • Actualizando Módulo SWFtools de Drupal para PHP 5.x-2.3 • Versión: 6.x-2.org/node/589326 • Actualizando Módulo ImageFUpload de Drupal para PHP 5..3 • Versión: 6.27-Abr-2009 (verificar que no hay una versión más nueva antes de aplicar el parcho) Fuente: http://drupal.. la línea.2 .

spammers o fuentes que no debemos confiar porque ocultan o disfrazan su identidad. • • Versión: 6. direcciones IP. y otros metadatos de cada acceso a nuestro website y determina si corresponde a robots maliciosos. Uno de los mecanismos más eficientes de mantener a esos robots masivos automatizados fuera de nuestros espacios interactivos es usar el servicio Bad Behavior.11 .org/node/846604#comment-3173086 Actualizando Módulo Views de Drupal para PHP 5.08-Apr-2009 (verificar que no hay una nueva antes de aplicar el parcho) Fuente: http://drupal. Lamentablemente la versión vigente del módulo de Bad Behavior para Drupal no se actualiza desde el 2008 y en la actualidad genera errores al ser usada con la versión actual de Drupal y las últimas .06-Jul-2010 (verificar que no hay una nueva antes de aplicar el parcho) Fuente: http://drupal. robots y usos maliciosos y deshonestos por parte de individuos y empresas inescrupulosas que pululan por la red en búsqueda de oportunidades para inundar espacios ajenos con publicidad y código engañoso.x-3..x-2.3 • • Versión: 6. Bad Behavior es una iniciativa de código libre cuyo código y aplicaciones se encuentran disponibles sin costo.y sustituirla por.x-3. el cual analiza los encabezados HTTP.org/node/452384#comment-3157454 Protegiendo nuestro sitio web Drupal de robots.1 .0-rc2 . spammers y ataques maliciosos Toda web que incluye componentes interactivos abiertos a la participación del público se encuentra expuesta al ataque de spammers.17-Jun-2010 (verificar que no hay una nueva antes de aplicar el parcho) Fuente: http://drupal.org/node/619632#comment-2999502 Actualizando Módulo Location de Drupal para PHP 5.3 • • Versión: 6..

. aunque la versión dev fue actualizada en enero y creo que incluye estos cambios. que aumenta grandemente su eficacia bloqueando spammers y robots. Para poder activar la protección de Project Honeypot.2_patched_20100411. which extends to three years and five years for Desktop and Server versions of Ubuntu. detallando los pasos correctos para activarlo con la versión 2. afortanadamente. because they come with a commitment by the developer(s) of guaranteed long term support. En el 2009.versiones de la librería de Bad Behavior. Nonetheless. debemos ir a su web www. no es tan común en Linux como sus versiones equivalentes en el mundo Windows y es probable que no se encuentre instalado en nuestro servidor. updates and security upgrades. cd ~/public_html/sites/all/modules wget http://drupal.zip unzip badbehavior_v2.1. respectively. Si todo esto parece confuso. well proven releases and.2_patched_20100411. Para instalar unzip en un servidor Linux corriendo Ubuntu solo debemos escribir: sudo apt-get install unzip.org y registrarnos para obtener una clave de acceso http:BL (http:BL Access Key). Cautious web masters and network manager tend to prefer LTS versions (or their equivalent in other platforms) because they tend to be solid.zip Nota: El comando unzip. even thousands of bits of coding units. 2010. que nos permite descomprimir el archivo que descargamos. each serving specific tasks and many times serving multiple functions. as the LTS label implies. Pero la versión oficial del módulo sigue sin cambios. gregarios hizo disponible una versión no-oficial actualizada con el patch para soportar Project Honeypot y las librerías de Bad Behavior.org/files/issues/badbehavior_v2.projecthoneypot. hay un directorio innecesario en el mismo llamado __MACOSX. robots y spammers bloqueados pueden verse en admin/reports/badbehavior Solving File Upload Corruption Issues with Ubuntu 10. Luego sólo tenemos que ir a la página de módulos (admin/build/modules) en nuestro navegador y lo seleccionamos en la lista de módulo para activarlo.org/node/422974#comment-2834608 Para instalarlo. Por la forma en que fue comprimido el archivo .zip propuesto y descomprimirlo en el folder modules de Drupal. Si somos quisquillosos sobre lo que se encuentra en nuestro servidor. basta con descargar el archivo . simplificando el proceso de descarga e instalación en: http://drupal. el usuario de Drupal gregarios introdujo un parche que actualiza el módulo para permitir usarlo con el nuevo Project Honeypot. packages. y en diciembre del 2009. propuse una actualización para la documentación del módulo. Canonical announced the much awaited official release of Ubuntu Lucid Lynx 10. their most recent Long Term Support (LTS) version.04 On April 30. pero muchos usuarios prefieren no usar versiones dev en sitios activos y públicos.04. libraries.x de Bad Behavior. podemos eliminarlo escribiendo rm -rf __MACOSX. La versión dev fue actualizada por última vez en enero del 2010.1. Los reportes de ip's. open source systems are made up of hundreds. extensions. la cual introducimos en la página de configuración del módulo badbehavior en admin/settings/badbehavior.zip.

After some research. you need to "hold" this version so that it is not upgraded later on any maintenance process or update you do: sudo -s echo libapache2-mod-fcgid hold | dpkg --set-selections That's it.10 Karmic Koala included the 1:2.ubuntu. The repositores for past releases of Ubuntu. including 9.com/karmic/libapache2-mod-fcgid .04.com/ubuntu/pool/universe/liba/libapache2mod-fcgid/libapache2-mod-fcgid_2. You will see a notice when doing the upgrade that this package will be ignored. The fix is fairly simple: Downgrade libapache2-mod-fcgid to 1:2.04 include the 1:2. 0 newly installed.I was eager to migrate our servers on April 30 to Ubuntu 10..2-1 version of libapache2-mod-fcgid. This involves a number of manual steps. running Ubuntu 64bit being in Singapore now. which end up uploading corrupted. but experience.2-1 from http://packages. And we were lucky we did so. good practice and common sense suggested setting up a trial system with all our features and specific configuration and test it before proceeding. which I will outline below: • First. the closest mirror was Korea. so I did: wget http://kr.archive.d/apache2 reload sudo apache2ctl graceful You can see the actual version of libapache2-mod-fcgid installed by typing: sudo dpkg -s libapache2-mod-fcgid And you can do an actual upgrade to test that this version is kept throughout updates. sudo dpkg -s libapache2-mod-fcgid . ends up messing up file uploads via PHP. In my case. I was able to pin point the problem and link it to the version of libapache2-mod-fcgid being included in the Ubuntu Lucid 10.. or doing a fresh install of this configuration on Ubuntu 10. Done Building dependency tree Reading state information. which has a known bug that corrupts files uploaded with a size larger than the FcgidMaxRequestInMem value. Done The following packages have been kept back: libapache2-mod-fcgid 0 upgraded.4-2 of libapache2-mod-fcgid. sudo apt-get update sudo apt-get upgrade Reading package lists. 0 to remove and 1 not upgraded.04 right away.ubuntu.deb • Then install it with: sudo dpkg -i libapache2-mod-fcgid_2. It turns out that upgrading to Ubuntu 10. download a trusted version of libapache2-mod-fcgid to 1:2. You can reload Apache and restart Apache: sudo /etc/init. Our standard server configurations is based on Ubuntu running Apache as mpm worker and php5 as fcgid.deb • Finally..2-1_amd64.3. while the repositories for Ubuntu Lucid Lynx 10.04 repositories.2-1_amd64..04.2-1.

aspx RealNetworks Helix Server.html SVN Apache: http://svn.apple.org/bugzilla/show_bug.com/ml/debian-bugs-dist/2010-02/msg03612.turnstyle.com/netcomms/solutions/ims Microsoft Windows Media Server.cgi?id=48021 Debian bugs-dist: http://osdir.com/products/media_delivery.com/windows/windowsmedia/forpros/server/server.realnetworks.adobe.intel. P Multimedia Subsystem.org/node/635270 Mailing List Apache Dev: http://www. Version 2. Commercial Solutions • • • • • • • • • Accordent Solutions http://www. http://www.apache. don't forget to keep an eye on the Ubuntu 10.Finally.com/andromeda .com/products/flashmediaserver Apple Quicktime Streaming Server.forbidden.3.org/viewvc?view=revision&revision=826829 Drupal Issues: http://drupal. More info on the bug • ASF Bugzilla: https://issues.html TurnStyle Andromeda (mp3 streaming) http://www. lowering the cost of such endeavors and making the implementation of pilot and fully functional initiatives much more affordable and accessible to all kind of organizations. for eventually they will upgrade to include a newer version of libapache2-mod-fcgid which does not present this problem. Mobile TV http://www.com/lists/apache/dev/376603 • • • • Media Streaming Servers: Open Source and Proprietary A friend recently consulted me about streaming media and video-on-demand solutions available to satisfy the requirements of a distant learning initiative to be implemented by one of his customers.com Forbidden Technologies FORScene http://www. http://www. At that moment you can "unhold" the package for it to be included in upgrade operations.accordent.uk/products/scene Intel IP Services.com/quicktime/streamingserver Destiny Media Technologies Clipstream http://www.clipstream. http://www.microsoft. While explaining to him the many options available I realized that not many people are aware of how much the streaming media ecosystem has changed in the last few years and that there are several open source platforms and solutions available for streaming audio and video over the Internet.04 package repositories. IPTV.apache.gossamer-threads.co.5 reportedly fixes the issue (see here).com Adobe (Macromedia) Flash Video Server http://www.

orb.freecast.net VideoLAN Server (VLC). This allows for example to watch a dvd from your DVD player in your mobile phone away from home.videolan. video editing.epresence.gnu. a fully functional Linux distribution loaded with multimedia production (audio.icecast.it VX30 Streaming Video Solutions http://www.com UnReal Server http://www.com . • Dyne:bolic http://www.vx30.Web-based audio file manager http://www. open source equivalent to Andromeda) http://www.com/opensource/server/streaming ePresence http://www. http://www. ect.com Free and Open Source Streaming Video Solutions • • • • • • • • • • • • • AMpache .shoutcast.org Darwin Streaming Media Server Open Source version of Apple´s Quicktime Streaming Server http://developer.html MPEG4IP http://mpeg4ip.com/pi_features.html Zina (mp3 streamer.apple.sourceforge.ampache.hu FreeCast (peer to peer streaming) http://www.org/ GNUMP3d Streaming MP3 / Media Server http://www.vista.org Orb allows users to stream their own content over the web through their own devices to other devices they own. without requiring any installation and able to run on computers with limited memory and processing power.net SHOUTcast http://www. • Orb http://www.) software all ready to run from a single CD.umediaserver.org Logitech SlimDevices SlimServer http://www.org/software/gnump3d IceCast http://www.mplayerhq.• • VideoVista http://www.org/vlc/streaming.pancake.org/zina Other Applications Special mention should be made of Dyne:bolic.dynebolic.slimdevices.tv FFServer (parte de FFMPEG) http://ffmpeg.

Sign up to vote on this title
UsefulNot useful