• Saltar a la navegación principal
  • Saltar al contenido principal

Dani Sánchez - Gestionatuweb

Desarrollador web freelance

  • Quién soy
  • ¿Eres agencia?
  • WordPress
    • Mantenimiento WordPress
    • Desarrollo WordPress
    • Soporte técnico WordPress
  • Cursos
  • Blog
  • Portfolio
  • Solicita Presupuesto

Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)

El 7 de diciembre de 2021 por dani 8 comentarios

Advertencia: Esta entrada contiene códigos o snippets que podrían no funcionar correctamente en tu instalación de WordPress, o podrían ser incompatibles con tu theme o plugins activos. Úsalos bajo tu responsabilidad, preferiblemente en un entorno de desarrollo y haz siempre copias de tus archivos antes de modificarlos.

Introducción

Como ya he comentado en algún post, Manjaro es una de mis distros favoritas. Una Arch Rolling con un entorno de escritorio a prueba de bombas (XFCE).

Sin embargo siempre me muevo en la rama Debian-Ubuntu estable. Uno de los principales motivos es el Stack LAMP (Linux Apache MySQL PHP). Trabajo a menudo con proyectos web en local, casi siempre webs con problemas que tengo que analizar y reparar antes de aplicar los cambios en producción.

La instalación del Stack LAMP en Debian-Ubuntu es bastante sencilla, aquí puedes ver un artículo que escribí hace un par de años y que a día de hoy sigue vigente (lo único que cambia es la versión de PHP).

Instalar LAMP (Linux, Apache, MySQL y PHP) en GNU/Linux (Ubuntu y derivadas)

Pero siempre que he intentado instalar LAMP en otras ramas, como RPM o ARCH, he tenido diversos problemas para hacerlo funcionar, desistiendo y volviendo a mi zona de confort.

Hace poco me lié la manda a la cabeza para instalarlo en Fedora, con excelente resultado (puedes ver el artículo completo).

Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34

Pero en Manjaro, aunque tiene algunas similitudes con Fedora, hay que dar algunos pasos más, sobre todo en lo que a configuración de archivos se refiere.

Como siempre, este artículo no solo está hecho para quien lo necesite, si no para mí mismo, tenerlo como referencia para cuando necesite volver a realizar una instalación, sin tener que buscar en varios posts por la Red. Vamos al lío…

Artículo disponible en vídeo

Instalar el servidor web Apache

Abrimos un terminal e instalamos el paquete apache.

sudo pacman -S apache

Una vez instalado, vamos a revisar el archivo de configuración de Apache para comprobar que el módulo unique_id_module está comentado:

Para ello desde el terminal abrimos con el editor nano el archivo:

sudo nano /etc/httpd/conf/httpd.conf

Para buscar en nano puedes usar la combinación Ctrl+W y escribir el texto a buscar:

Esta es la línea que tenemos que mantener comentada (anteponiéndole un #)

Si ya estaba comentada, simplemente podemos salir pulsando Ctrl+X. Para guardar pulsa Ctrl+O.

Ahora podemos habilitar el servicio de apache con el comando:

sudo systemctl enable httpd

E iniciarlo con el comando:

sudo systemctl start httpd

Si necesitamos reiniciar apache porque hayamos hecho algún cambio en la configuración, usamos el comando:

sudo systemctl restart httpd

No obstante, si queremos detener el servicio tecleamos el comando:

sudo systemctl stop httpd

Para comprobar que apache está corriendo, usa el comando:

sudo systemctl status httpd

Debería aparecer active (running):

Para salir del monitor de estado de apache puedes detener con Ctrl+Z.

También podemos abrir un navegador web y dirigirnos a la ruta http://localhost Debería aparecer el índice de apache (que en estos momentos estará vacío):

Hemos terminado con apache, ahora instalaremos el gestor de bases de datos MySQL:

Instalar MySQL (MariaDB)

Nos dirigimos al terminal e instalamos el paquete mysql:

sudo pacman -S mysql

Nos avisará de que existen dos proveedores disponibles para instalar mysql. Vamos a elegir la opción 1) mariadb:

IMPORTANTE: Antes de habilitar el servicio de mysql tenemos que inicializar el directorio de datos de MariaDB. Este paso no es necesario en otras ramas como Debian-Ubuntu o Fedora, pero en Manjaro (o la rama Arch en general) si.

Para ello copiamos/pegamos el siguiente comando:

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Ahora podemos habilitar e iniciar mysql:

sudo systemctl enable mysql
sudo systemctl start mysql

Igual que con apache, tenemos los comandos restart y stop para reiniciar o detener mysql.

Vamos a comprobar el estado de mysql con el comando:

sudo systemctl status mysql

Al igual que con apache, debería aparecer Active: active (running):

Detenemos el monitor de estado de mysql con Ctrl+Z.

Ahora toca securizar mysql ya que por defecto únicamente viene con el usuario root sin contraseña:

sudo mysql_secure_installation

Nos pedirá nuestra contraseña de root (de sistema):

Ahora nos pregunta si queremos darle una contraseña a la cuenta root de mysql, respondemos que si (Y):

Change the root password? [Y/n] Y

Respondemos que si (Y).

New password: **********
Re-enter new password: **********

Al resto de preguntas podemos responder que si:

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Thanks por using MariaDB!

Entramos en MySQL:

sudo mysql -u root

Vamos a crear un nuevo usuario distinto al de root que será el que asignemos a las bases de datos que creemos posteriormente:

CREATE USER mi_usuario IDENTIFIED BY 'contraseña';

Podemos salir de MySQL con el comando exit:

MariaDB [(none)]> exit;
Bye

Instalación y configuración de PHP

Desde el terminal instalamos la paquetería php y php-apache

sudo pacman -S php php-apache php-gd php-imagick

php-gd y php-imagick son opcionales, pero los necesitaremos para poder manipular imágenes en WordPress.

Como Manjaro es una versión contínua (rolling-release), la versión de PHP será la que haya disponible en el momento que realices la intalación.

A la hora de escribir este artículo, la versión instalada es la 8.0.12.

Puedes comprobar la versión instalada con el comando php -v:

[dani@ThinkPad-T540p ~]$ php -v
PHP 8.0.12 (cli) (built: Oct 20 2021 16:06:03) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.12, Copyright (c) Zend Technologies

Es necesario habilitar y deshabilitar algunos módulos de apache para que PHP8 funcione correctamente en Manjaro:

  • LoadModule mpm_event_module modules/mod_mpm_event.so (DESHABILITADO).
  • LoadModule mpm_prefork_module modules/mod_mpm_prefork.so (HABILITADO).

Para ello vamos al archivo de configuración de apache:

sudo nano /etc/httpd/conf/httpd.conf

Y localizamos los dos módulos anteriores, comentando el primero y descomentando (o añadiendo si no está) el segundo.

Ahora añadimos al final del archivo las siguientes líneas:

LoadModule php_module modules/libphp.so
AddHandler php-script php
Include conf/extra/php_module.conf

Guardamos con Ctrl+O y salimos con Ctrl+X.

Reiniciamos apache para que se apliquen los cambios.

sudo systemctl restart httpd

Vamos a probar que PHP funciona correctamente. Para ello vamos a crear un archivo info.php dentro de la carpeta raíz de proyectos de Apache que en Manjaro se encuentra en la ruta /srv/http:

sudo nano /srv/http/info.php

Y dentro llamamos a la función phpinfo();

<?php
    phpinfo();
?>

Guardamos, salimos de nano y nos dirigimos al navegador web, hacia la dirección http://localhost/info.php, donde tendrá que aparecer una pantalla como esta:

Esto significa que tanto Apache como PHP están corriendo correctamente.

Ahora, para gestionar las bases de datos de forma más cómoda, vamos a instalar y configurar phpMyAdmin, que en Manjaro también requiere de algunas configuraciones adicionales.

Instalar y configurar phpMyAdmin

Instalamos el paquete desde un terminal:

sudo pacman -S phpmyadmin

Antes de ejecutarlo necesitamos hacer algunas configuraciones en el archivo php.ini situado en la ruta /etc/php/php.ini:

sudo nano /etc/php/php.ini

Y descomentamos las siguientes líneas (eliminando el # o el ; del inicio):

extension=bz2
extension=gd
extension=mysqli
extension=iconv
extension=pdo_mysql

Ya que estamos, podemos aprovechar y modificar algunos parámetros para mejorar la experiencia con WordPress o cualquier otro CMS. Los parámetros mínimos aconsejables serían:

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

Los localizamos con Ctrl+W y los modificamos uno a uno.

Tras finalizar, guardamos con Ctrl+O y salimos con Ctrl+X.

Y reiniciamos apache ara que se aplique los cambios:

sudo systemctl restart httpd

Ahora necesitamos crear un archivo de configuración para phpMyAdmin que situaremos en la ruta:

sudo nano /etc/httpd/conf/extra/phpmyadmin.conf

Y dentro insertamos las siguientes líneas:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>

Guardamos y salimos.

Volvemos al archivo de configuración de Apache:

sudo nano /etc/httpd/conf/httpd.conf

Y al final del archivo añadimos la siguiente línea:

Include conf/extra/phpmyadmin.conf

Ya estaríamos listos para inciar phpMyAdmin, pero para evitar que aparezcan algunos mensajes de error, configuraremos la frase secreta del panel editando:

sudo nano /etc/webapps/phpmyadmin/config.inc.php

Y localizamos la línea:

$cfg['blowfish_secret'] = 'ESCRIBE_UNA_CLAVE_LARGA_Y_COMPLEJA'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$ /**

Y al final del archivo añadimos:

$cfg['TempDir'] = '/tmp/phpmyadmin';

Reiniciamos Apache.

Abrimos el navegador y nos dirigimos a http://localhost/phpmyadmin, donde deberíamos ver la pantalla de login:

Por último vamos a habilitar el modulo ReWrite en Apache para que podamos habilitar las URLs amigables en WordPress (en los enlaces permanentes).

Habilitar mod_rewrite para URLs amigables en WordPress

Nos dirimos al archivo de configuración de Apache:

sudo nano /etc/httpd/conf/httpd.conf

Y localizamos la parte de código donde empieza <Directory «/srv/http»>

Un poco mas abajo modificamos la línea:

AllowOverride None por AllowOverride All

Y localizamos y descomentamos la línea:

LoadModule rewrite_module modules/mod_rewrite.so

Reiniciamos Apache y ya tendríamos listo el Stack LAMP para Manjaro y optimizado para WordPress.

Espero que este artículo te haya servido y lo compartas si ha sido así. Nos vemos en el siguiente post 😉

Archivado en: Linux, WordPress Etiquetado como: apache, lamp, linux, manjaro, mysql, php, phpmyadmin

Interacciones con los lectores

Comentarios

  1. Nelson dice

    3 de marzo de 2022 a las 19:46

    Exclente, muchas gracias.

    Responder
  2. Pablo dice

    2 de marzo de 2022 a las 20:09

    Gracias por la guia, ya lo habia hecho una vez en arch, pero me olvide completamente los pasos para usar ahora en manjaro jejej.

    Por si alguien tiene el mismo problema que yo siguiendo la guia en TEXTO. Todo lo que falta en la guia esta en el video por ej crear la database para WP y permisos 10:20. instalacion de WP al final del video.

    Salu2

    Responder
  3. Pedro Miguel Lupiáñez dice

    8 de febrero de 2022 a las 12:31

    Muchas gracias, es el tutorial mejor explicado que he visto para instalar Lamp en Manjaro. A ver si encuentro uno igual de bien explicado para nextcloud y wordpress. De nuevo muchas gracias por tu generosidad.

    Responder
    • dani dice

      8 de febrero de 2022 a las 12:48

      Gracias por tu comentario, instalar WordPress en el LAMP de Manjaro es muy sencillo. En el mismo artículo de la instalación de LAMP se instala WordPress. Saludos.

      Responder
  4. Dany dice

    1 de febrero de 2022 a las 22:33

    Hola
    agradecerte por hacer este manual .. tengo mucho tiempo usando ubuntu, pero decidí cambiar a Arch linux, jamas pensé que fuera tan sencillo hacerlo en esta distro que tengo con Arch
    muchas gracias por compartir tu conocimiento eres grande.
    saludos

    Responder
  5. Jose Luis B dice

    12 de enero de 2022 a las 19:03

    hecho paso a paso, muchas gracias

    Responder
    • dani dice

      12 de enero de 2022 a las 19:06

      Gracias, me alegro que te sirviera, saludos.

      Responder
    • Alejo dice

      5 de abril de 2022 a las 19:46

      Hola Dani, muchas gracias por compartir este contenido 👏🏼👏🏼

      Tengo un pequeño problema por si me puedes ayudar/guiar. Tengo instalado php8 y php7 pero quiero habilitar el uso de php7 para poder trabajar con un repositorio, el problema es que no he podido habilitarlo.

      He seguido tu artículo y en los archivos LoadModules habilite para que detectara la versión 7. Pero no consigo el resultado que busco.

      Gracias de antemano y espero poder haberme explicado correctamente. ¡Saludos!

      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

Hosting recomendado

Raiola Networks

Autor

Dani Sánchez
Dani Sánchez
@danisanchez82

Entradas recientes

  • Optimizar el archivo de configuración de WordPress (wp-config.php)
  • ¿Qué plugins tengo instalados en mi web en 2022?
  • Tu alojamiento web no es compatible con la rotación de imágenes. [Solución]
  • Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)
  • Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34

Comentarios recientes

  1. dani en Publicar en WordPress desde un formulario externo con Advanced Custom Fields
  2. Mikel en Publicar en WordPress desde un formulario externo con Advanced Custom Fields
  3. Armando en Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34
  4. Vito en Configurar en español los campos tipo fecha (date) en Ninja Forms
  5. Manel en Calcular rutas con OpenStreetMap partiendo de la geolocalización del usuario

Categorías

  • Actualidad
  • Afiliación AliExpress
  • Agent Press Pro
  • Bettaso Web Restaurantes
  • Cursos
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Iniciación a PHP
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • WordPress

Divi 20% descuento

Hosting Recomendado

Raiola Networks
Banner

Sitios web corporativos, blogs y tiendas online cuidando hasta el mínimo detalle

Si deseas proponerme un proyecto web ponte en contacto conmigo.

Contacto

Gestionatuweb © 2022 · Desarrollado con Genesis · Acceder
Política de privacidad · Política de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde a tus gustos. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias. Más información sobre las cookies que utilizamos en nuestra: Política de cookies.

Gestor de cookies:  GDPR Cookie Compliance
Resumen de uso de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde con tus intereses. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias.

Cookies técnicas (necesarias)

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies. Estas cookies son:

  • moove_gdpr_popup: Comprueba si debe mostrar o no el aviso de cookies (si ya ha sido aceptado o rechazado no se vuelve a mostrar mientras persista esta cookie). Expira en 1 año.
  • cpnb_cookiesSettings: Comprueba qué categorías de cookies se aceptan o rechazan (por ejemplo, cookies analíticas, cookies de publicidad dirigida, etc.). Expira en 1 año.
  • _GRECAPTCHA: Esta web utiliza el servicio reCAPTCHA para fortalecer la seguridad en los formularios y evitar el envío masivo de SPAM. reCAPTCHA utiliza esta cookie necesaria para realizar su análisis de riesgo. Expira en 6 meses.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de analítica

Utilizamos Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares. Dejando estas cookies activas nos permite mejorar nuestra web.

  • _ga: Analítica de Google. Se usa para distinguir a los usuarios. Expira en 2 años.
  • _gid: Se usa para distinguir a los usuarios. Expira en 24 horas.
  • _gat: Se usa para limitar el porcentaje de solicitudes. Expira en 1 minuto.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Cookies de publicidad

Utilizamos Google Adsense para mostrar publicidad en los artículos del blog acordes a tus intereses. Esta publicidad nos ayuda al mantenimiento del sitio web y del tiempo dedicado a la redacción del blog.

  • _gads: Publicidad de Google Adsense. Proporciona la publicación de anuncios de interés para el usuario. Expira en 13 meses.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Política de cookies

Más información sobre nuestra política de cookies