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!):
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):
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:
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:
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common?<-- Yes
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/:
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
- Apache: http: //httpd.apache.org/
- PHP: http: //www.php.net/
- MySQL: http: //www.mysql.com/
- Debian: http: //www.debian.org/
- phpMyAdmin: http: //www.phpmyadmin.net/