Instalar LAMP y phpMyAdmin en MX Linux 19

Comparte este post

Hace unos días publicábamos un post sobre la instalación del conjunto de herramientas para servidor web LAMP (Linux, Apache, MySQL, PHP) en distribuciones Ubuntu y derivadas.

En este artículo veremos cómo hacerlo en una distro muy especial, que ha conseguido en los últimos meses una gran popularidad manteniéndose en el primer puesto en Distrowatch con diferencia, MX Linux.

Además, phpMyAdmin no se encuentra en los repositorios oficiales de Debian, por lo que la instalación y configuración debe hacerse manualmente.

Artículo disponible en vídeo

Empezamos…

Paso 1. Instalar Apache

sudo apt install apache2

Comandos básicos para Apache

sudo service apache2 start
sudo service apache2 restart
sudo service apache2 reload
sudo service apache2 stop

Una vez instalado e iniciado (normalmente se inicia junto al sistema), comprobar en la dirección http://localhost/ del navegador:

Paso 2. Instalar MariaDB

sudo apt install mariadb-server
sudo apt install mariadb-client

Comandos básicos para MariaDB

sudo service mysql start
sudo service mysql restart
sudo service mysql stop
sudo service mysql status

Securizar la instalación de MySQL

sudo mysql_secure_installation

Nos preguntará si queremos cambiar la constraseña de root, en caso afirmativo, introducirla 2 veces.

Iniciar consola MySQL

sudo mysql -u root -p

Crear usuario de MySQL

Dentro del prompt de MySQL ejecutar la orden:

CREATE USER nombre_usuario IDENTIFIED BY 'clave_usuario';

Crear nueva base de datos

CREATE DATABASE nombre_bbdd;

Asignar usuario MySQL con privilegios a una base de datos

GRANT ALL PRIVILEGES ON nombre_bbdd.* TO nombre_usuario;
FLUSH PRIVILEGES;

Paso 3. Instalar PHP

Estos comandos pueden variar dependiendo de la versión de PHP disponible en los respositorios (7.2, 7.3, 7.4…)

sudo apt install php7.3 php7.3-fpm php7.3-gd php7.3-curl php7.3-mysql libapache2-mod-php7.3

sudo service apache2 restart

Comprobar si PHP se ha instalado correctamente

Creamos un archivo info.php con el editor nano dentro del directorio de proyectos de Apache (var/www/html)
sudo nano /var/www/html/info.php

Escribimos:

<?php echo phpinfo(); ?>

Guardamos con Ctrl+O y salimos con Ctrl+X

En el navegador nos dirigimos a http://localhost/info.php donde debe aparecer una pantalla similar a:

Paso 4. Configuraciones óptimas para WordPress (y otros CMS)

Activar el módulo REWRITE

Imprescindible para que funcionen los enlaces permanentes (slugs) de WordPress.

sudo a2enmod rewrite
sudo service apache2 restart

Editar el archivo de configuración con nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Sobre la parte final del archivo, incluir:

<Directory "/var/www/html">
    AllowOverride All
</Directory>
sudo service apache2 restart

Ajustes óptimos en el archivo php.ini

Abrimos el archivo con nano:

sudo nano /etc/php/7.3/apache2/php.ini

Cambiamos los valores de los siguientes parámetros:

memory_limit = 128M
post_max_size = 64M
max_execution_time = 180
upload_max_filesize = 64M
max_input_time = 180
max_input_vars = 3000

Paso 5. Instalar phpMyAdmin

Instalar los siguientes complementos de PHP (siempre sustituyendo el número de versión de PHP por el disponible en los repositorios):

sudo apt install php-imagick php-phpseclib php-gettext php7.3-imap php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl 

sudo service apache2 restart

Descarga la última versión estable de phpMyAdmin

https://www.phpmyadmin.net/downloads/

Podemos descargar directamente desde el terminal (asegúrate de cambiar el número de versión si es distinto).

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.3/phpMyAdmin-4.9.3-all-languages.zip

Descomprimir con unzip (si no lo tenemos instalado ejecutamos antes)

sudo apt install unzip
unzip phpMyAdmin-4.9.3-all-languages.zip

Mover el directorio descomprimido a /usr/share/phpmyadmin

sudo mv phpMyAdmin-4.9.3-all-languages /usr/share/phpmyadmin

Hacer que el usuario del servidor web (www-data) sea propietario del directorio:

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Crear la base de datos de phpMyAdmin y asignarla a nuestro usuario

sudo mysql -u root -p
CREATE DATABASE phpmyadmin;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO nombre_usuario;
FLUSH PRIVILEGES;

Crear el archivo de configuración de phpMyAdmin para Apache

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Insertar el código:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

Fuente del código:

https://www.linuxbabe.com/debian/install-phpmyadmin-apache-lamp-debian-10-buster

Habilitar el snippet para la configuración:

sudo a2enconf phpmyadmin.conf

Crear el directorio temporal de phpMyAdmin

sudo mkdir -p /var/lib/phpmyadmin/tmp

Hacer que el usuario del servidor web (www-data) sea propietario del directorio:

sudo chown www-data:www-data /var/lib/phpmyadmin/tmp
sudo service apache2 reload

Iniciar phpMyAdmin en la ruta http://localhost/phpmyadmin

Si tienes algún problema, no dudes en dejarlo en los comentarios. Espero que te haya servido el artículo y disfrutes de tu MX Linux.

9 Comments

  • excelente articulo, me sirvio mucho, muchas gracias por compartir.

  • excelente explicación, todo bien sin ningún problema.

  • Hola, cuando quiero ingresar a loclahost/phpmyadmin, sale un mensaje: 403 forbidden, you don’t have permission to acces to this resource.

    • A

      Revisa que no te hayas saltado algún paso. Lo he instalado muchas veces siguiendo punto por punto y nunca me ha dado ningún problema.

  • simplemente agradecerte por este tutorial es muy completo y sin dudas funciona, he instalado todo en minutos y a corrido como la seda, una vez mas gracias, todos los exitos

  • Buenas, me ha sido de muchisima utilidad el articulo, Muchas Gracias, todo esta funcionando muy bien, salvo por un detalle: no puedo loguearme como root en phpmyadmin, si por linea de comandos. CUal sera el problema? Saludos

    • A
      Daniel, Gestionatuweb.net

      Hola, creo que se debe a que phpMyAdmin, como aplicación no tiene permisos para ejecutar tareas de root. Seguramente habrá algún modo de darle permisos de root. Yo lo que hago es crear las bases de datos directamente desde el terminal y asignarle todos los privilegios a mi usuario de mysql.

      • Buenas Daniel, gracias por responder, te comento que luego de escribir la pregunta, encontre en otro articulo la siguiente solucion. El autor decia

        ”Básicamente lo que pasa, es que tu usuario “root” en la BB.DD MySQL no tiene password, y tienes que ponerle uno, así que abres una consola de Linux y escribes (como root)”

        $ mysqladmin -u root password rootpassword

        Debo decir que yo si habia seteado el password de root en el script mysql_secure_installation, pero aun asi no me funcionaba. Volviendo a setear el password de esta manera pude acceder a phpmyadmin como root.

        Saludos 🙂

        • A
          Daniel, Gestionatuweb.net

          Pues perfecto entonces. A mí también me extrañó que configurando mysql_secure_installation no aceptase el acceso como root. Puede que se trate del acceso root del sistema al gestor MySQL, y no al usuario root de MySQL en sí.

          Gracias por el aporte!

Deja tu comentario