En este tutorial veremos como instalar lampp (Linux, Apache, MariaDB, PHP y Phpmyadmin) en linux Debian 10 buster, ideal para entornos de desarollo o produción.
Prerrequisitos para la instalación
Para seguir este tutorial, necesita un sistema operativo Debian 10 que se ejecute en su computadora local o en un servidor remoto (vps).
Si está buscando un VPS (Servidor Privado Virtual), puede usar digitalocean
Acontinuacion veremos los pasos necesario para poder instalar de manera satisfactoria nuestro LAMPP.
Paso 1: actualice los paquetes de software
Antes de instalar LAMPP, es una buena idea actualizar el repositorio y los paquetes de software. Ejecute el siguiente comando en su sistema operativo Debian 10 si usa un usario diferente al root debera anteponer el termino sudo antes de cada comando, para este tutorial asumimos que esta accediendo a la terminal como usuario root.
apt update
apt upgrade
Paso 2: Instale el servidor de base de datos MariaDB
MariaDB es un reemplazo directo de MySQL. Ingrese el siguiente comando para instalarlo en Debian 10.
apt install mariadb-server mariadb-client
Una vez instalado, el servidor MariaDB debería iniciarse automáticamente. Utilice systemctl para comprobar su estado.
systemctl status mariadb
Debera mostrar algo parecido:
mariadb.service - MariaDB 10.3.23 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-08-15 21:09:30 UTC; 9s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 1679 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 1168)
Memory: 74.6M
CGroup: /system.slice/mariadb.service
└─1679 /usr/sbin/mysqld
Si no se está ejecutando, inícielo con este comando:
systemctl start mariadb
Ahora ejecute el script de seguridad posterior a la instalación.
mysql_secure_installation
Cuando le pida que ingrese la contraseña de root de MariaDB, presione la tecla Enter ya que la contraseña de root aún no está configurada. Luego ingrese y para establecer la contraseña de root para el servidor MariaDB y con eso ya tendra congifurada la contraseña.
De forma predeterminada, el paquete MaraiDB en Debian usa unix_socket para autenticar el inicio de sesión del usuario, lo que básicamente significa que puede usar el nombre de usuario y la contraseña del sistema operativo para iniciar sesión en la consola MariaDB. Por lo tanto, puede ejecutar el siguiente comando para iniciar sesión sin proporcionar la contraseña de root de MariaDB.
Paso 3: Instale el servidor web Apache
Ingrese el siguiente comando para instalar el servidor web Apache. El apache2-utils
paquete instalará algunas utilidades útiles, como la herramienta de evaluación comparativa del servidor HTTP Apache ab
y la herramienta de gestión de autenticación de usuarios htpasswd
.
apt install apache2 apache2-utils
Una vez instalado, Apache debería iniciarse automáticamente. Compruebe su estado con systemctl
.
systemctl apache2
Deberia algo asi:
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-08-15 21:11:05 UTC; 11s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 17962 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 2445 (apache2)
Tasks: 55 (limit: 545)
Memory: 8.8M
CGroup: /system.slice/apache2.service
├─2445 /usr/sbin/apache2 -k start
├─2447 /usr/sbin/apache2 -k start
└─2448 /usr/sbin/apache2 -k start
Si no se está ejecutando, use systemctl para iniciarlo.
systemctl start apache2
Paso 4: Instale PHP7.3
En el momento de escribir este artículo, PHP7.3 es la última versión estable de PHP y tiene una pequeña mejora de rendimiento con respecto a versiones anteriores. Ingrese el siguiente comando para instalar:
apt install php php-imagick php-phpseclib php-php-gettext php-common php-mysql php-gd php-imap php-json php-curl php-zip php-xml php-mbstring php-bz2 php-intl php-gmp php-bcmath php-tokenizer
Reiniciamos apache
systemctl restart apache2
Verifique la información de la versión de PHP.
php --version
Paso 5: descargue phpMyAdmin
phpMyAdmin no está incluido en el repositorio de software de Debian 10, por lo que tenemos que descargar el software manualmente. Vaya a la página de descarga de phpMyAdmin para verificar la última versión estable para este tutorial usaremos la versión 4.9.5. Luego ejecute el siguiente comando para descargarlo.
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.zip
Sugerencia: siempre puede usar el formato de URL anterior para descargar la última versión estable de phpMyAdmin. Simplemente reemplace 4.9.5 con el número de versión más reciente.
Instalmos unzip para descomprimir phpmyadmin
apt install unzip
Descomprimimos el archivo
unzip phpMyAdmin-4.9.5-all-languages.zip
Movemos phpmyadmin a un nuevo directorio por lo general se recomineda instalarlo en el directorio /usr/share/phpmyadmin
mv phpMyAdmin-4.9.5-all-languages /usr/share/phpmyadmin
Luego, hacemos que el usuario del servidor web ( www-data
) sea el propietario de este directorio.
chown -R www-data:www-data /usr/share/phpmyadmin
Paso 6: Cree una base de datos MariaDB y un usuario para phpMyAdmin
Ahora necesitamos iniciar sesión en la consola MariaDB y crear una base de datos y un usuario para phpMyAdmin
mysql -u root
A continuación, cree una nueva base de datos para phpMyAdmin usando el siguiente comando SQL. Este tutorial lo nombra phpmyadmin
, puede usar el nombre que desee para la base de datos.
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
El siguiente comando SQL creará el phpmyadmin
usuario de la base de datos y establecerá una contraseña, y al mismo tiempo otorgará todos los permisos de la nueva base de datos al nuevo usuario para que luego phpMyAdmin pueda escribir en la base de datos. Reemplace el texto tu contraseña con su contraseña preferida.
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'tu contraseña';
Refrescamos la tabla de privilegios y salimos de la consola MariaDB.
flush privileges;
exit;
Paso 7: Cree la configuración de Apache para phpMyAdmin
Para acceder a la interfaz web phpMyAdmin desde un subdirectorio, creamos un archivo de configuración en apache con el siguiente comando.
nano /etc/apache2/conf-available/phpmyadmin.conf
Descargue el archivo phpmyadmin.conf
Guarde y cierre el archivo. Luego habilite esta configuración.
a2enconf phpmyadmin.conf
Reiniciamos apache para que los cambios surtan efecto.
systemctl restart apache2
Creamos un archivo temporal para phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
Luego, hacemos que el usuario del servidor web ( www-data
) sea el propietario de este directorio.
chown www-data:www-data /var/lib/phpmyadmin/tmp
Reiniciamos apache para que los cambios surtan efecto.
systemctl reload apache2
Paso 8: Creamos un usuario para acceder a phpmyadmin
Hasta el momento ya tenemos instalado phpmyadmin pero aun falta hacer algunas cosas más como crear un usuario para acceder a phpmyadmin para ello ingresamos a mysql.
mysql -u root
Creamos un usuario administrador con autenticación de contraseña.
create user admin@localhost identified by 'tu contraseña';
Otorgamos todos los privilegios en todas las bases de datos.
grant all privileges on *.* to admin@localhost with grant option;
Refrescamos los privilegios y salimos de mysql;
flush privileges;
exit;
Ahora puede iniciar sesión en phpMyAmin con el usaurio admin
y administrar todas las bases de datos.
Paso 9: Restringir el acceso al directorio / setup
Para restringir el acceso al directorio / setup, podemos habilitar la autenticación de contraseña básica con el servidor web Apache. Ejecute el siguiente comando para establecer una contraseña para el usuario admin
. /etc/apache2/htpasswd
El archivo se utiliza para almacenar nombres de usuario y contraseñas.
htpasswd -c /etc/apache2/htpasswd admin
Luego editamos el archivo de configuración de Apache para phpMyAdmin
nano /etc/apache2/conf-available/phpmyadmin.conf
Agregamos las siguientes líneas.
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/apache2/htpasswd
</IfModule>
Require valid-user
</IfModule>
</Directory>
Guardamos y cierre¡amos el archivo. Luego, vuelvemos a cargar Apache para que los cambios surtan efecto.
systemctl reload apache2
Vamos a agregar el hash para blowfish
cd /usr/share/phpmyadmin
creamos una copia del archivo de configuración
cp config.sample.inc.php config.inc.php
Editamos la configuración de la variable $cfg[‘blowfish_secret’]=»; e ingresamos en las comillas simples el codigo hash que podemos obtener de la siguiente página: http://www.passwordtool.hu/blowfish-password-hash-generator
nano config.inc.php
Espero que este tutorial te haya ayudado a instalar LAMPP en Debian 10 Buster.