Cómo instalar un servidor LAMP en Debian 9 Stretch

servidor-intel.jpg

¿Necesitas un servidor?

Usa este formulario para decirnos las características del servidor que necesitas y te lo presupuestamos sin compromiso.

 

A pocos días de que Debian Stretch se convierta en estable, en Libremática hemos querido probar cómo sería la instalación de un servidor LAMP sobre una instalación limpia de en Debian 9. Nos habría gustado seguir el mismo orden de las siglas de LAMP pero por las dependencias no hemos podido hacerlo. Vamos a ponernos manos a la obra.

 

1.- La L de Linux

 

En Libremática confiamos en Debian GNU/Linux como servidor, por su robustez y estabilidad, es cierto que no está a la última en cuanto a las versiones de los paquetes, pero tampoco nos importa mucho cuando lo que se establece como prioridad es su estabilidad. Así que la L de Linux en Libremática es Debian GNU/Linux.

 

2.- La M de Mariadb.

 

Hasta ahora la M era de Mysql pero después de que Oracle comprara Sun Microsystems, empresa que tenía los derechos de Mysql, los voluntarios que estaban trabajando en el proyecto Mysql decidieron crear un derivado de Mysql al que llamaron Mariadb, fuera del control de Oracle. En Debian 9 lo instalamos así:

 

#apt-get install mariadb-client mariadb-server

 

Una vez terminada la instalación de Mariadb podemos probar que nos conectamos a nuestro servidor local correctamente.

 

mysql -u root -p

 

Creamos una nueva base de datos.

 

CREATE DATABASE pruebas;

 

Creamos un usuario que será quien maneje la base de datos recién creada.

 

CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY 'contraseña';

 

Para que el usuario pueda usar la base de datos recién creada necesitamos darle unos privilegios en este caso le daremos todos los privilegios con esta instrucción:

 

GRANT ALL PRIVILEGES ON pruebas.* to 'nombre_usuario'@'localhost';

 

para que los privilegios tengan efecto necesitamos ejecutar el comando:

 

FLUSH PRIVILEGES;

 

y salimos del intérprete de Mariadb,

 

quit

 

  

3.- La P de PHP.

 

 PHP es un lenguaje de programación de código abierto usado ampliamente para incustrar código en documentos HTML que manejan los servidores web. Para instalar PHP en nuestro servidor Debian Stretch y darle soporte para poder acceder a nuestra base de datos, y que nuestro servidor web pueda tener interpretar PHP tenemos que escribir esta instrución:

  

#apt-get install php7.0 php7.0-mysql

 

 

4.- La A de Apache.

 

El servidor web Apache es el servidor web más usado en internet proporciona la seguridad y eficiencia necesaria que cualquier sitio de internet puede requerir. Instalamos el paquete Apache en nuestro servidor Debian con el siguiente comando:

 

#apt-get install apache2 apache2-mod-php7.0

 

5.- Probándolo todo.

 

Ya tenemos todo lo necesario instalado es hora de probarlo. Abrimos un navegador y en la barra de direeciones escribimos http://localhost, lo que nos devolverá una página como esta:

 

Página por defecto de Apache 2 en Debian Stretch

 

Y si queremos probar el funcionamiento de PHP en nuestro servidor web, nos desplazamos a /var/www/html, abrimos un editor y escribimos el siguiente texto:

 

 

<?php phpinfo(); ?>

 

guardamos el archivo como test.php y hacemos la llamada desde nuestro navegador a http://localhost/test.php que nos devolverá información sobre nuestro servidor web y las funciones y caractarísticas habilitadas en él.

 

Phpinfo en Debian 9 Stretch

 

 

No es difícil ¿verdad? En cualquier caso dejamos un vídeo en el que se puede ver todo el proceso de instalación:

 

 

Comentarios

Gracias por actualizar el servidor LAMP para Debian9.

De nada Manuel, es un placer, a parte que nos sentimos recompensados al saber que ha podido serle útil a alguien.

No me va el PHP, tengo debian 9 y he hecho los pasos

¿Algún error? Te refieres a la hora de instalar o de ejecutar "<?php phpinfo(); ?>". Si es ésto último comprueba los permisos del archivo test.php.

Sí, más bien el apache no lo ejecuta: http://vps149560.vps.ovh.ca/
Si ve el código fuente verá que el código php aparece como si fuera un comentario en html. ¿Podría darme más información?

La dirección que pones no lleva a ningún sitio. En cualquier caso asegúrate de tener activado el módulo de php con:

"a2enmod php7.0"

también te paso mi archivo de configuración /etc/apache2/mods-enabled/php7.0.conf, esta es la salida de cat :

<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
    Require all denied
</FilesMatch>
 
# Running PHP scripts in user directories is disabled by default
# 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_flag engine Off
    </Directory>
</IfModule>
 

después de habilitar el módulo debes reiniciar el servidor apache.

 

systemctl restart apache2

Ya he hecho las dos cosas y no funcionan.
Al poner "a2enmod php7.0" me ha puesto esto
 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "es_ES.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Considering dependency mpm_prefork for php7.0:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php7.0, aborting

Vale el problema lo tienes con la configuración de locale.

Debes ejecutar como root:

locale-gen es_ES.UTF-8

y luego también como root:

dpkg-reconfigure locales

después podrías poder habilitar el módulo con:

a2enmod php7.0

 

Realicé toda la instalación cómo indicaron. Además al finalizar  instalé phpmyadmin. Pero esté no me dejá ingresar, será que tiene que ver con que cambió ahora a Mariadb y no mysql??

Hola Jhonathan,

No, el problema no es el que comentas, al fin y al cabo es prácticamente lo mismo, lo único que cambia es el nombre porque el proyecto Mysql ahora pertecene a Oracle y por eso la comunidad de desarrolladores adoptó Mariadb; y aunque ahora son proyectos distintios tienen el mismo origen. Dame un par de días para crear un pequeño tutorial en el que explicar cómo instalar Phpmyadmin en Debian Stretch. Dejaré el enlace aquí. 

A falta de explicar el vídeo aquí te dejo el enlace a él:

https://youtu.be/J6LdWJFTG3I

Muy bueno el tutorial. Simple y ordenado.

Muchas gracias.

Gracias a ti por dejar tu comentario

Excelente tutorial!!...se agradece :)

Gracias a ti por compartir tu opinión

A mi apache tampoco me interpreta el código php al probar el phpinfo().

Intentando activar el mod php7 me sale este error:

Considering dependency mpm_prefork for php7.0:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php7.0, aborting
 

A qué puede deberse?

Gracias

Intenta desactivar el módulo mpm_event con:

a2dismod mpm_event

Luego prueba de nuevo a activar el módulo de php con:

a2enmod php7.0

Reinicia apache con:

systemctl start apache2.service

y prueba de nuevo

No Permite crear Bases de Datos

Te sugiero seguir las instrucciones que encontrarás aquí para instalar phpmyadmin:

https://librematica.es/blogs/instalar-phpmyadmin-debian-stretch

Si sigues teniendo problemas puedes dejar tus comentarios en ese minitutorial y encantados intentaremos ayudarte..

Estimado: Buenas tardes, estoy instalando Phpmyadmin siguiendo su tutorial. Efectivamente queda instalado, pero cuando ingreso a localhost/phpmyadmin/ me muestra una serie de código como "addJSON( 'list', RecentFavoriteTable::getInstance('recent')->getHtmlList() ); exit; } if ($GLOBALS['PMA_Config']->isGitRevision()) { if (isset($_..." y no la interfaz grafica que todos conocemos. Usted sabrá a qué se deberá este problema y como se soluciona? Quedo atento a sus comentarios y agradecido de antemano

Intenta instalar libapache2-mod-php con este comando:

apt install libapache2-mod-php

Añadir nuevo comentario