• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria
  • Ir al pie de página

Dani Sánchez - Gestionatuweb

Desarrollador web freelance - Dani Sánchez Gestionatuweb

  • ¿Eres agencia?
  • WordPress
    • Mantenimiento
    • Desarrollo
    • Soporte técnico
  • Cursos
  • Porfolio
  • Blog
  • Contacto
  • Solicita Presupuesto
Estás aquí: Inicio / Linux / Instalar LAMP y phpMyAdmin en MX Linux 19

Linux, Publicaciones, Tutoriales / 8 de enero de 2020

Instalar LAMP y phpMyAdmin en MX Linux 19

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.

Archivado en:Linux, Publicaciones, Tutoriales Etiquetado con:apache, lamp, linux, mx linux, phpmyadmin

Interacciones con los lectores

Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.

Comentarios

  1. Cacho dice

    15 de junio de 2020 en 16:39

    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

    Responder
    • Daniel, Gestionatuweb.net dice

      15 de junio de 2020 en 18:09

      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.

      Responder
      • Cacho dice

        16 de junio de 2020 en 02:28

        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 🙂

        Responder
        • Daniel, Gestionatuweb.net dice

          16 de junio de 2020 en 08:19

          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!

          Responder
  2. Hernan dice

    25 de agosto de 2020 en 10:00

    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

    Responder
  3. Mayorcito dice

    3 de noviembre de 2020 en 05:05

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

    Responder
    • dani dice

      3 de noviembre de 2020 en 07:15

      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.

      Responder
  4. william maffiold dice

    11 de enero de 2021 en 19:45

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

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral primaria

Daniel Sánchez

@danisanchez82
t.me/gestionatuweb

Buscar en la web

Entradas recientes

  • Novedades y cambios en la nueva actualización de Contact Form 7
  • Adiós WhatsApp…
  • Configuración de WP Fastest Cache
  • Cómo añadir un enlace personalizado en el menú admin de WordPress
  • Hooks de Genesis Framework (init, header y framework) – Parte 1

Categorías

  • Actualidad
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • Wordpress

Comentarios recientes

  • JORGE BAEZ en Crear un WebView con Android Studio para cargar una web en una APP Android
  • Lenin Morales en Crear un custom post en WordPress (sin plugins)
  • blas villalba en Integra OpenStreetMap en tus aplicaciones web con LeafLet y MapBox
  • dani en Integra OpenStreetMap en tus aplicaciones web con LeafLet y MapBox
  • blas villalba en Integra OpenStreetMap en tus aplicaciones web con LeafLet y MapBox

Hosting de confianza

Footer

Buscar en la web

  • Inicio
  • Agencias
  • Mantenimiento WordPress
  • Desarrollo WordPress
  • Soporte técnico WordPress
  • Cursos
  • Portfolio
  • Blog
  • Contacto
  • Política de privacidad

Mis redes

  • Facebook
  • LinkedIn
  • Twitter
  • YouTube

© 2016–2021 Gestionatuweb · Programado con Genesis Framework · Iniciar sesión

Utilizo cookies para obtener datos estadísticos sobre el uso de mi sitio web y personalizar la publicidad (no intrusiva) del blog según tus intereses. En ningún caso estas cookies te identifican como persona, solo a tu dispositivo en la Red. Aceptando el uso de cookies me ayudarás a mantenener el blog gracias a la publicidad y podré mejorar la experiencia de uso gracias a la analítica web. Puedes navegar por mi sitio web sin que se instale ninguna de estas cookies, aunque este mensaje permanecerá visible en todo momento.AceptoPolítica de privacidad