Después del post de ayer, ya tenemos Apache, PHP y MySQL corriendo en nuestro PC, pero esto no es suficiente.

El principal problema con el que nos encontramos es que nuestras web deberían colgar de la carpeta /var/www/, en la cual no tenemos permisos de escritura y sólo es accesible para root.

Para solventar lo anterior sin tener que acceder como root, la solución sería que los archivos de las webs estuviesen en /home/miusuario/www/. Es más, supongamos que estoy desarrollando dos webs, a saber: mycoolapp y wtfapp (se me acaban de ocurrir los nombres, :-) ). Lo ideal sería que los archivos de cada una estuviesen en:

  • /home/miusuario/www/mycoolapp/
  • /home/miusuario/www/wtfapp/

y que para verlas en el navegador, las URL’s fuesen de la forma

  • http://mycoolapp.host
  • http://wtfapp.host

Pues bien, veamos como conseguimos esto.

Modificando el archivo hosts
El primer paso será informarle a nuestro PC que los dos dominios anteriores (mycoolapp.host y wtfapp.host) no necesitan ser resueltos en una tabla de DNS externas, sino que lo hará el mismo. Para esto editamos el archivo hosts

sudo gedit /etc/hosts

y añadimos las dos siguientes líneas

127.0.1.1   mycoolapp.host
127.0.1.1   wtfapp.host

Creando los Virtual Hosts
Para conseguir alojar más de un dominio en nuestro PC necesitamos configurar un virtual host por cada uno de ellos, ¿y cómo se hace esto? Muy sencillo.

Creamos un nuevo archivo llamado como el dominio que queremos configurar (en este caso wftapp.host) en la carpeta sites-availables de apache, así:

sudo gedit /etc/apache/sites-availables/wtfapp.host

Cuyo contenido será lo siguiente:

<VirtualHost *:80>
	ServerName wtfapp.host
	ServerAdmin webmaster@dominio.com
	DocumentRoot /home/miusuario/www/wtfapp/web
	DirectoryIndex index.php
 
	<Directory "/home/miusuario/www/wtfapp/web">
	  AllowOverride All
	  Allow from All
	</Directory>
</VirtualHost>

Nótese que tanto en DocumentRoot como en Directory se ha añadido “/web” ya que ésta es realmente la carpeta pública de la web.

Una vez hecho esto, habilitamos el nuevo virtual host

sudo a2ensite wtfapp.host

y reiniciamos apache para que los cambios surjan efecto

sudo /etc/init.d/apache2 restart

Después de esto, todo debería funcionar correctamente y deberíamos acceder a nuestra web de desarrollo en la URL http://wtfapp.host

Después de muchos años en el entorno Windows, me he decido armar de valor y moverme a Linux, y como tampoco soy tan geek, me he ido al Linux “para seres humanos”, esto es, Ubuntu.

Puesto que para mí el paso ha sido algo costoso (en tiempo, se entiende), detallaré paso a paso que es lo que he hecho para configurar e instalar Apache, PHP y MySQL, así como configurar correctamente el entorno de desarrollo (ver Symfony y Ubuntu II: Virtual Hosts y Entorno de Desarrollo).

Antes de nada, en la fecha en la que escribo este post la versión de Ubuntu es la 9.10 (Karmic Koala)

Instalando Apache
Lo primero que habrá que hacer es instalar Apache, el servidor HTTP, esto es bastante sencillo:

sudo apt-get install apache2

Y habilitamos el MOD_REWRITE que no viene de serie

sudo a2enmod rewrite

Instalando MySQL
Igual de sencillo que en el caso anterior

sudo apt-get install mysql-server

Instalando PHP 5
En este caso habrá que instalar el paquete propiamente dicho

sudo apt-get install php5

La extensión para MySQL

sudo apt-get install php5-mysql

Si te parece interesante tener la aplicación de PHP, phpMyAdmin, también puedes instalarla así

sudo apt-get install phpmyadmin

Y puesto que todo esto lo estamos pensando para utilizar symfony será muy recomendable instalar el paquete de línea de comandos, CLI:

sudo apt-get install php-cli

Para asegurarnos de que los cambios surgen efecto, reiniciamos el servidor apache:

sudo /etc/init.d/apache2 restart

Y ya debería todo funcionar correctamente. Para ello, comprobamos que nuestro navegador responde correctamente a la petición


http://localhost/

¡Estupendo! Ya tenemos corriendo Apache, PHP y MySQL en nuestro PC.