Tutorial de servidor LAMP Debian 9 con Apache, PHP 7 y MariaDB

LAMP es la abreviatura de Linux, Apache, MySQL, PHP. Este tutorial muestra cómo puedes instalar un servidor web Apache en un servidor Debian Stretch (9) con PHP 7 (mod_php) y soporte para MariaDB. MariaDB es una bifurcación del conocido servidor de bases de datos MySQL, proporciona un conjunto de características compatibles con MySQL y es un poco más rápido según los puntos de referencia que he encontrado en Internet. MariaDB funcionará con todas las aplicaciones que requieran MySQL, como WordPress, Joomla, etc.

Una configuración LAMP es una base perfecta para sistemas CMS como Joomla, WordPress o Drupal.

1 Nota preliminar

En este tutorial, utilizo el nombre de host servidor1.ejemplo. com con la dirección IP 192.168.1.100. Estas configuraciones pueden diferir en tu caso, por lo que deberás sustituirlas cuando proceda.

2 Instalar MariaDB como sustituto de MySQL

En primer lugar, instalaremos MariaDB así:

apt-get -y install mariadb-server mariadb-client

A continuación, aseguraremos MariaDB con el comando mysql_secure_installation. Ejecuta el siguiente comando y sigue el asistente.

mysql_secure_installation

La entrada recomendada se muestra en rojo.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): <-- Hit return
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] <-- y
New password: <-- Enter the new password for the MariaDB root user
Re-enter new password: <-- Enter the password again
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] <-- y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <-- y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <-- y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <-- y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

La instalación de MariaDB ya está asegurada.

3 Instalar el servidor web Apache

Apache está disponible como paquete Debian, por lo que podemos instalarlo así:

apt-get -y install apache2

Ahora dirige tu navegador a http://192.168.1.100, y deberías ver la página del marcador de posición Apache2(¡Funciona!):

Página por defecto de Apache en Debian 9

La raíz del documento por defecto de Apache es /var/www en Debian, y el archivo de configuración es /etc/apache2/apache2.conf. Las configuraciones adicionales se almacenan en subdirectorios del directorio /etc/apache2, como /etc/apache2/mods-enabled (para módulos de Apache), /etc/apache2/sites-enabled (para hosts virtuales) y /etc/apache2/conf-enabled.

4 Instalar PHP 7.1

Podemos instalar PHP y el módulo PHP de Apache del siguiente modo:

apt-get -y install php7.0 libapache2-mod-php7.0

Después debemos reiniciar Apache:

service apache2 restart

5 Probando PHP / Obteniendo detalles sobre tu instalación de PHP

La raíz del documento del sitio web por defecto es /var/www/html. Ahora crearemos un pequeño archivo PHP(info.php) en ese directorio y lo llamaremos en un navegador. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.

nano /var/www/html/info.php
<?php
phpinfo();

Ahora llamaremos a ese archivo en un navegador (por ejemplo, http://192.168.1.100/info.php):

PHP instalado en Debian 9 en Apache

Como ves, PHP 7.0 está funcionando, y lo hace a través del Manejador Apache 2.0, como se muestra en la línea API del Servidor. Si te desplazas más abajo, verás todos los módulos que ya están habilitados en PHP5. MySQL / MariaDB no aparece en la lista, lo que significa que aún no tenemos soporte para MySQL en PHP5.

6 Obtener soporte para MySQL y MariaDB en PHP

Para obtener soporte MySQL en PHP, instalaremos el paquete php7.0-mysql. Es una buena idea instalar también otros módulos PHP, ya que podrías necesitarlos para tus aplicaciones. Puedes buscar los módulos PHP 7 disponibles así:

apt-cache search php7.0

Elige los que necesites e instálalos así:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

Ahora reinicia Apache:

service apache2 restart

Caché PHP 7 para mejorar la velocidad de PHP

Para acelerar PHP, se debe instalar una Opcache. Comprueba si el módulo PHP Opcache se ha instalado y activado correctamente.Ejecuta este comando:

php --version

La salida contendrá la línea que he marcado en rojo.

PHP 7.0.27-0+deb9u1 (cli) (built: Jan 5 2018 13:51:52) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.27-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies

Si no ves el módulo Opcache en el resultado, instálalo con este comando:

apt-get -y install php7.0-opcache

Hay otra caché que puede ser útil, se llama APCu. APCu es un caché PHP opcode gratuito para almacenar en caché y optimizar el código intermedio PHP.

APCu se puede instalar de la siguiente manera:

apt-get -y install php-apcu

Ahora reinicia Apache:

service apache2 restart

Ahora vuelve a cargar http://192.168.1.100/info.php en tu navegador y desplázate de nuevo hasta la sección de módulos. Ahora deberías encontrar allí un montón de módulos nuevos, incluido el módulo MySQL que se utiliza como controlador de MariaDB:

Soporte MySQL activado en PHP 7

8 phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puedes gestionar tus bases de datos MySQL y MariaDB. Es una buena idea instalarlo:

apt-get -y install phpmyadmin

Verás las siguientes preguntas:

Configurar phpMyAdmin para Apache

Web server to reconfigure automatically: <-- apache2

Utiliza dbconfig-common para configurar phpMyAdmin

Configure database for phpmyadmin with dbconfig-common?<-- Yes

Crear automáticamente una contraseña de aplicación

MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.

Después, podrás acceder a phpMyAdmin a través de http://192.168.1.100/phpmyadmin/:

PHPMyAdmin en Debian 9

9 Habilitar el inicio de sesión root de MySQL para phpMyAdmin

Aunque puedes iniciar sesión como usuario root en MariaDB en el shell, el inicio de sesión root no funcionará en phpMyAdmin. Para permitir que el usuario root utilice también phpMyAdmin, ejecuta el siguiente comando en el shell:

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

10 Enlaces

También te podría gustar...