Instalación de un entorno LAMP en Debian y derivados

 

En este tutorial se explicará cómo instalar un entorno de desarrollo LAMP. Pero, ¿Qué es eso de LAMP? LAMP es la abreviatura de Linux+Apache2+PHP5+MySQL, o sea, un ambiente para escribir scripts, mantener o montar sitios hechos o escritos en PHP con MySQL sobre un server Apache.

Metiendo las manos en el asunto…

Instalamos Apache2

server@host:# apt-get install apache2 apache2-doc

Uso básico de Apache:

server@host:# /etc/init.d/apache2 {start|stop|restart|reload|force-reload}

Ahora bien, ¿cómo decirle a Apache2 que use los módulos que le instalamos?

Editando /etc/apache2/apache2.conf y añadiendo:

<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml
</IfModule>

Añadir módulos:

Se pueden encontrar en /usr/lib/apache2/modules/

Por ejemplo: Mod_Rewrite sobrescribe las URL para que sean más amigables al usuario.

Añadir en /etc/apache2/apache2.conf:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Una forma más elegante puede ser, desde la terminal de comandos habilitarlo con el siguiente comando:

server@host:# a2enmod rewrite

Y después reiniciar Apache:

server@host:# /etc/init.d/apache2 restart

Instalación/Configuración de PHP5

server@host:# apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Algunos cambios a PHP 5

En /etc/php5/apache2/php.ini:

Subir archivos al server [tamaño]:

upload_max_filesize = 8M

Uso de la memoria:

memory_limit = 32M

Subir archivos, método POST:

post_max_size = 8M

Iniciar, reiniciar PHP 5?

PHP 5 corre en el sistema como módulo de Apache2, así que, si hacemos alguna configuración en PHP5 solamente con reiniciar Apache se aplican los cambios realizados.

Instalación/Configuración de MySQL

server@host:# apt-get install mysql-server

En la instalación se le pedirá el password para el usuario root de MySQL, por cuestiones de seguridad, trate de que sea distinto del password de root del sistema.

Uso básico de MySQL:

server@host:# /etc/init.d/mysql {start|stop|restart|reload|force-reload|status}

Y en la configuración [/etc/mysql/my.cnf, línea 71 aproximadamente] habilitamos los logs descomentando:

log  /var/log/mysql/mysql.log

Y luego reiniciando MySQL para que los cambios se apliquen…

server@host:# /etc/init.d/mysql restart

Instalación/Configuración de PHPMyAdmin

server@host:# apt-get install phpmyadmin

Y la configuración viene en el archivo config.inc.php, que no está, pero lo crearemos con el siguiente contenido:

<?php
$cfg['blowfish_secret'] = 'phpmyadmin';
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
?>

VirtualHosting

Es un método que permite la publicación de varios sitios web [con varios nombres de dominio distintos] bajo una misma dirección IP. Permite compartir memoria y ciclos de procesador [Hz] de manera más eficiente.

Comandos de Apache2 para VirtualHosting:

  • a2ensite: Activa un sitio web. Deben estar las configs en /etc/apache2/sites-available/
  • a2dissite:Desactiva un sitio web.
  • a2enmod: Activa un módulo de apache disponible en /etc/apache2/mods-available/
  • a2dismod: Desactiva un módulo.

Crear un virtualhost

Creamos el archivo de configuración del VirtualHost:

server@host:# cd /etc/apache2/sites-available/
server@host:/etc/apache2/sites-available# touch blog.example.com

Creamos la carpeta donde estará el sitio web…

server@host:# mkdir -p /var/www/blog/

Configuración de blog.example.com:

<VirtualHost *:80>
ServerAdmin admin@blog.example.com
ServerName blog.example.com
DocumentRoot /var/www/blog/
# HTML documents, with indexing.
<Directory />
Options +Includes
</Directory>
</VirtualHost>

Habilitamos:

server@host:# a2ensite blog.example.com

¿Y después? Claro, el final feliz:

server@host:# /etc/init.d/apache2 restart

Nota: Debemos hablar con nuestro administrador de red, si somos nosotros mejor, para añadir un registro A en el DNS que apunte a nuestra IP con el nombre “blog”. Esto debe hacerse para redirigir toda encuesta del DNS de blog.example.com a nuestra PC.

Después solamente escribimos en nuestro navegador:

http://blog.example.com

Y tendremos acceso al sitio en cuestión.

Solo queda instalar en este virtualhost un WordPress o un Drupal, si vamos a desarrollar, desde cero o algún framework.

Eso es todo, nos vemos en otro momento para continuar instalando/configurando servicios en sistemas GNU/Linux.