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.


Koratsuki

Koratsuki: Nadando en aguas linuxeras desde el 2001-2002 con un RedHat 7.2. He pasado por muchas distros, pero me mantengo entre Slackware y Debian. Amo la línea de comandos, el software libre y toda cultura geek asociada. Friky deathmetalero, el primero siempre en ayudar o dar ideas, programador de PHP y alguito de Python. Linux user: 445535. Actualmente Técnico en Electrónica y Administrador de Red.


23 comentarios en “Instalación de un entorno LAMP en Debian y derivados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *

  1. Instalacion de WampServer o XAMP en WinOS:

    1- Double clic installer.*
    2- Enjoy!

    Instalacion de MAMP en MacOS:
    1- Download the MAMP disk image from http://www.mamp.info.
    2- Open the disk image and drag MAMP into your Applications folder.
    3- Enjoy!

    Dios bendiga las GUIs!!!!!!!!!!!!!!!

    1
    • Pero… lo simple o fácil no significa mejor. Ejemplo típico… la inmensa mayoría de servidores webs (y no webs) en el mundo funcionan sobre sistemas UnixLike… además de obviamente NO tener GUI. Y … dudo que los administradores de empresas como Google, HP, Twitter, MySQL, Facebook, Intel, Dell, etc etc estén equivocados :D

      Saludos bro

      2
    • Instalación de Apache2 en Debian
      1.-# apt-get install apache2 apache2-doc
      2.- Enjoy!

      3
  2. xD, buena esa, pero bien… ¿Como personalizarías eso si no tuvieras GUI?

    4
    • Tendría que hacer un SSH -X para hacer un forwarding de las X y lo que abra en Windows que se le muestre en su ordenador… oh.. mmm espera, acabo de recordar que, Windows no tiene SSH ni se le puede hacer un forwarding O_O

      5
      • No cambies el tema, instalar XAMP con solo dar siguiente y parar/iniciar servicios desde un solo icono… aja, eso no tiene precio =P

        Ya a futuro si con las opciones disponibles en Windows no son suficientes, siempre estara la opcion de buscar a un pinguino e ir rompiendo ventanas :)

        6
  3. A ver, vamos a empezar por aclarar algunos conceptos:
    1- La yuxtaposicion de intarfaces (grafica-linea de comandos) no es una guerra entre el bien y el mal, no es Aragorn VS Sauron, no hay bueno ni malo, o de hecho ambos son “el bueno” si se adecuan a tus propositos.
    2-Que yo resalte la sencillez del clic contra la linea de comandos, no quiere decir que niegue la importancia de la segunda, ni que diga que el primero es “mejor”. Solo digo que es, cuando menos, mas amigable
    3- El hecho que muchos megaservidores como los que mencionas no dispongan de GUIs, tampoco hace a la interfaz de lineas de comando superior, solo mas adecuada para ese proposito. En Logica Proposicional a esto se le llama Falacia, ya que basado en argumentos verdaderos, llegas a una conclusion falsa. Te imaginas un smartphone a base de linea de comandos? Una vez mas, solo la aplicacion juzga que interfaz es mas competente.
    Juzgando por el titulo del articulo (“Instalación de un entorno LAMP en Debian y derivados”) no se puede captar que proposito va a tener esta instalacion de Apache, o sea, no esta sobreentendido que vaya a ser para Google, Dell, etc etc etc. (ademas dudo mucho ellos usen Apache!!! pero no tengo argumentos aqui). Basado en mi uso personal -solo para probar websites en un ambiente local antes de ponerlos online- si tuviese que hacer el deployment asi, a base de linea de comandos, me pego un tiro o cambio de oficio :D
    Y para terminar, un proverbio chino, cultura milenaria de la que mucho hay que aprender, que refleja el concepto de ‘hazte la vida facil’ maravillosamente: “No hagas parado lo que puedas hacer sentado, y no hagas sentado lo que puedas hacer acostado”.

    9
    • En efecto jaja… WordPress.com así como Opera.com usan Nginx, notablemente menos consumidor y realmente recomendable :D

      Sobre lo que dices, al menos yo prefiero intentar simular lo mejor posible el entorno final donde estará el sitio.
      O sea, instalo todos los servicios y configuro pensando en cómo estarán instalados y configurados estos mismos, pero en el servidor final donde estará el sitio (una vez terminado).

      Por eso es que siempre he preferido instalar todo a mano y configurarlo yo.

      10
    • perdon por inmiscuirme despues de tanto tiempo, a lo mejor hasta ya saben porque los grandes servidores no tienen GUI.
      las interfaces graficas (GUI) requieren para su uso un entorno grafico. mismo que utiliza recursos en cualquier equipo sea de la capacidad que sea, como administradores, lo ultimo que queremos es “desperdiciar” recursos de un equipo para levantar un entorno grafico.

      entonces, si, si existe el bueno y el malo, argon vs sauron, cuando necesitas que el servidor responda miles de peticiones, busque en bd, envie y reciba correos, y ademas ejecute alguna otra aplicacion, simplemente desinstalas el entorno grafico y listo

      saludos!

      11
  4. Tambien se puede usar el xamp que consiste en pegar los archivos en un directorio root, mas rapido si solo queremos desarrollar.

    12
  5. Claro, no soy de la vieja escuela pero esta instrucción

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

    Tambien pudiese ejecutarse de la siguiente manera

    server@host:# sudo service apache2 restart

    Solo era un dato que queria compartir, ya que siempre que entro a blogs veo que es mas comun usar la primera opción :)

    13
  6. Todos conocemos que Window$ y MAC tienen sus ventajas, linda GUI[MAC solamente, la GUI de Windows sucks], muchas facilidades, muchos clics en el boton siguiente, etc, pero muchachones, el feíto Linux con su línea de comandos horroza tambien debe dársele la oportunidad, aparte el blog es de linux, si publico como instalar un Wamp aquí, me banean de por vida xD. Una, porque es dar sicuiente hasta que se te canse el dedo, la otra porque es de Windows…

    Entonces, seamos buenitos y no me maltraten xD.

    @Taregon: Yo si soy de la vieja escuela y prefiero el restart de /etc/init.d/, aunque también hay un “apache2ctl restart”.

    15
    • Totalmente de acuerdo, es que mi coentario anterior era para responder a KZKG^Gaara, pero no segui el trend… la falacia es de el, no tuya :D

      16
    • Totalmente de acuerdo, lo que pasa es que mi comentario anterior era en respuesta a KZKG^Gaara, pero no segui el trend correctamente, la falacia es de el, no tuya :D

      18
    • Tranquilo, nadie saldrá herido ;) por eso digo que no soy de la “vieja escuela” ya que soy malo reteniendo rutas en mi mente, si cambio de Mint a Centos ya lo que sabia de uno no se aplica a lo otro y prefiero buscar comandos que sean compatibles en ambos sistemas.

      SI PUEDO HACERLO ACOSTADO NO VEO POR QUE SENTARME XD mas o menos iba así el proverbio.

      19
    • Tampoco así, que con gusto si haces el post de cómo descargar, instalar y configurar LAMP … con mucho gusto se pone :D

      20
  7. Google Chrome 19.0.1084.46Linux Mint x64
    jamin-samueljamin-samuel

    Hola chicos .. aqui hay un tutorial parecio … muy practico y sencillo

    http://www.taringa.net/posts/apuntes-y-monografias/14741966/Instalar-XAMPP-en-Linux.html

    21
  8. Ahora revisando documentación, veo que en los benchmarks, Nginx le da perfect por mucho a Apache, Cherokee, y Lighthttpd…

    22
  9. Gracias , excelente guía, me sirvió de mucho , quiero trabajar con cakephp pero necesitaba instalar antes un servidor web local con lamp.

    23

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *