Skip to main content

Como activar directorios de usuario en Apache

Los directorios de usuario en Apache permiten que cada usuario tenga un directorio en su cuenta donde podrá colocar archivos que podrán ser vistos por un navegador.

Sería algo como:

http://localhost/~usuario

Para especificar el usuario es necesario usar la virgulilla. El símbolo virgulilla sale pulsando simultáneamente ALTgr+4.

Para disponer de esta función debemos activar el modulo de Apache userdir. Creamos el directorio public_html en nuestra cuenta de usuario. En el alojaremos los archivos que se verán a través del navegador. Desde un terminal ejecutamos las siguientes ordenes:

mkdir ~/public_html
sudo a2enmod userdir
sudo /etc/init.d/apache2 restart

Ocurre que los script en php en vez de ejecutarse se descargan. Como no queremos esto, debemos editar un archivo de configuración. Desde el terminal abrimos para editar:

sudo gedit /etc/apache2/mods-enabled/php5.conf

Buscamos en el archivo hasta ver algo así:

# To re-enable php in user directories comment the following lines
# (from <IfModule …> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>

Como nos dice en las líneas comentadas, las que llevan una almohadilla, debemos comentar desde <IfModule> hasta </IfModule> para que quede así:

#<IfModule mod_userdir.c>
#<Directory /home/*/public_html>
#php_admin_value engine Off
#</Directory>
#</IfModule>

La almohadilla sale de pulsar ALTgr+3.

Podríamos simplemente cambiar php_admin_value engine Off por php_admin_value engine On pero esto se impondría sobre .htaccess donde a veces podemos desear indicar que no puedan ejecutarse scripts php.

Y reiniciamos el servidor Apache para que los cambios tengan efecto:

sudo /etc/init.d/apache2 restart

Ahora podemos ejecutar nuestros scripts en php en nuestro directorio de usuario de Apache.

Instalar PhpMyAdmin en Ubuntu 10.04 y siguientes

La base de datos MySQL se administra mediante comandos de texto en línea de comandos. Hacerlo así es bastante duro, y alternativamente se usan aplicaciones que nos abstraen de esta complejidad de uso. Algunas de estas aplicaciones son programas a instalar en nuestra máquina, disponibles en el Centro de Software de Ubuntu. Por otro lado esta PhpMyAdmin, es una aplicación web con el propósito de administrar el servidor de bases de datos y hacerlo a través de un navegador.

Con PhpMyAdmin podemos entre otras cosas crear, visualizar, editar, borrar usuarios, tablas o bases de datos del servidor  usando solo el navegador web. Todo esto hace a esta herramienta muy necesaria en la administración de un servidor LAMP.

PhpMyAdmin esta disponible en los repositorios oficiales de nuestro Ubuntu. Rara vez necesitaremos para administrar MySQL hacer uso de la última versión, por lo que la disponible en los repositorios cumplirá nuestras expectativas.

Instalarlo en nuestro Ubuntu 10.4 Lucid Lynx o Maverick Meerkat es bien sencillo. Abrimos un terminal desde Aplicaciones -> Accesorios -> Terminal o pulsando simultaneamente CTRL+ALT+T y copiamos para ejecutar los siguientes comandos:

sudo apt-get update
sudo apt-get install phpmyadmin

Tras esto empezará a descargarse e instalarse los paquetes. Al final se abrirá un cuadro de dialogo que nos pedirá unos datos necesarios para autoconfigurarse. Nos pedirá si queremos que se configure con Apache2 o Lighttpd. Si el servidor es LAMP, marcamos solo Apache2 y aceptamos. Después nos pregunta si queremos que el instalador cree una base de datos para uso de phpmyadmin, a lo que le respondemos con un Si. Luego nos pide la clave de usuario root, necesaria para para configurar el paso anterior. Luego otra contraseña para phpmyadmin y su confirmación. Finalmente phpmyadmin queda instalado.

Para hacer uso de phpmyadmin simplemente vamos a la dirección http://nombredominio/phpmyadmin donde adaptaremos nombredominio por el adecuado a nuestra situación. Si nuestro servidor esta en nuestra máquina local podemos usar http://localhost/phpmyadmin o http://127.0.0.1/phpmyadmin

Aviso después de instalar Apache

Linux.Apache.Mysql.PhpSi hemos instalado Apache, independientemente o como parte de un servidor LAMP es posible que salga un aviso como el siguiente:

... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Puede salir el aviso también cuando reiniciamos el servidor Apache con:

sudo /etc/init.d/apache2 restart

Este aviso desaparece si le decimos a Apache el nombre del servidor. Lo hacemos editando el archivo:

/etc/apache2/conf.d/fqdn

Usando por ejemplo gedit:

gksu "gedit /etc/apache2/conf.d/fqdn"

Y escribiendo en ese archivo lo siguiente:

ServerName localhost

Aunque podemos hacerlo todo simultaneamente con el siguiente comando:

echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

Ya no nos aparecerá más el aviso.

Permisos para el directorio de Apache

El directorio /var/www es el que aloja por defecto el contenido que usará Apache para enviar al navegador cuando lo solicite. Este directorio tiene bloqueados los permisos de modo que solo el usuario administrador, es decir root, puede escribir en esa carpeta. Esto es así por medidas de seguridad y no debería ser cambiado en una máquina que haga las funciones de servidor web en producción. Puede ser útil cambiar los permisos si nos vamos a dedicar a la programación web, ya que se simplifica el acceso a esa carpeta. En ese caso con los siguientes comandos en una terminal podremos hacer el cambio. Abrimos una terminal pulsando CRL+ALT+T o desde el menú Aplicaciones -> Accesorios -> Terminal. El primer comando lo debemos adaptar a nuestro caso particular. Donde pone usuario lo cambiaremos por el usuario que queremos que tenga acceso al directorio:

sudo chown usuario:www-data /var/www/
sudo chmod 775 /var/www

Con esto ya podríamos escribir directamente en /var/www.