miércoles, 22 de abril de 2009

Instalación y Configuración de Apache 2.2 con PHP y MySQl

El otro día me vi en la situación de instalar Apache con PHP y MySQL en mi ubuntu 8.10 (próximamente a convertirse en el 9.1) y googleando encontré mucho material, y arme un instructivo paso a paso de como instalar Apache en Ubuntu.

Ejecutamos para instalar apache.

sudo apt-get install apache2

Ejecutamos para instalar php5:

sudo apt-get install php5 libapache2-mod-php5

Para comprobar que este bien instalado hacemos:

sudo a2enmod php5

Reiniciamos apache:

sudo apache2ctl restart

Instalamos MySQL:

sudo apt-get install mysql-server

Instalamos manejador de php mysql:

sudo apt-get install php5-mysql

Y como complemento si queremos SVN:

sudo apt-get install subversion


Ahora bien, vamos a necesitar identificar y hacer algunos ajustes al apache para que funcione con algunos elementos extras como por ejemplo, los Virtual Host (VHost en adelante).

La idea es crear sitios con virtual host distintos para que cada uno tenga una configuración aparte.

Para esta tarea primero identificaremos la estructura de directorios de apache.

En /etc/apache2 disponemos de varios subdirectorios dos de ellos importantes para nosotros.

•conf.d

•mods-available

•mods-enabled

•sites-available

•sites-enabled

Los ficheros de configuración de los VHost se configuran en sites-available.

En sites-enabled sólo contiene enlaces a aquellos VHost que queremos activar.

Supongamos que queremos crear (por ejemplo) un VHost de nombre "misitio.site" para que, cuando ponga en mi navegador http://misitio.site me lleve a la página principal de ese host.

Observar!! Si pongo http://localhost me llevará al VHost por defecto (distinto del de misitio.site).

Pero antes que nada, para que mi browser "sepa" a que ip conectarse cuando haga el request de misitio.site debo añadir unas líneas al archivo situado en: /etc/hosts

Entonces ejecuto

sudo vim /etc/hosts

Creo una nueva entrada manteniendo lo que había y añado lo siguiente:

127.0.0.1 misitio.site

127.0.0.1 www.misitio.site

En general será {IP} {serverName} à IP y nombre del servidor

Observar que esto solo es necesario para que desde mi propia máquina pueda acceder al sitio por medio del browser, en caso de montar un servidor, este trabajo lo haría el propio dominio que estaría apuntando a la ip de mi servidor.

Ahora comienzo con la creación del espacio en disco para mi sitio, creo una carpeta para el contenido dentro de la carpeta /var/www/ para este caso usaremos: /var/www/misitio.site

Notar que no interesa que como se llame la carpeta, pero es una buena práctica identificarla con el dominio que tendrá.

Pasamos a la configuración del VHost, ejecutamos

cd /etc/apache2/sites-available

Hacemos:

sudo vim default

default es un archivo donde se definen los virtual host y le agrego la línea (esto solo por una única vez) NameVirtualHost *:80

Hago una copia del archivo default ejecutando

cp default misitio.site

Edito el misitio.site y lo dejo, como por ejemplo:

<VirtualHost 127.0.0.1:80>

ServerAdmin admin@misitio.site

DocumentRoot "/var/www/misitio.site/src"

ServerName misitio.site

ServerAlias www.misitio.site

</VirtualHost>

En fin, agrego todo lo que necesite para mi VHost, como por ejemplo reglas de rescritura, etc.

Cierro el archivo y ejecuto

cd /etc/apache2

y luego

a2ensite misitio.site

El comando a2ensite (available 2 enablesite) crea un enlace en sites-enable al site que le indiquemos (es decir, activa el VHost que acabamos de crear)

Comprobamos que todo este OK ls -al sites-enabled/

Recargamos apache /etc/init.d/apache2 reload

En caso de que el VHost configurado lleve reglas de rescritura, se debe cargar el módulo mod_rewrite esto lo podemos hacer con el comando a2enmod ejecutado:

cd /etc/apache2/

y luego

a2enmod rewrite

y por último restart del apache

/etc/init.d/apache2 restart

Y con esto tendríamos pronto un sitio en apache, mediante un virtual host, podremos chequearlo con solo acceder a http://misitio.site


No hay comentarios: