🐋
Apuntes Sistemas
  • ⚓Presentación
  • 📊Sistemas y Servidores
    • Personalizar el prompt de Windows
    • Utilidad de manejo de apps para Windows
    • PRACTICA: Arranque dual Windows y Ubuntu
    • 🚧SysLinuxOS: el SO para ASIX
    • Comandos Linux
      • PRACTICA - Ejercicio de práctica comandos
      • 🚧Instalación de paquetes
      • Apuntes Linux: blue/red team
      • Ejemplos de bash
      • Listado de comandos de Linux
    • Comandos Windows
      • 🚧Apuntes Powershell
      • Bucles FOR con batch
      • Scripts de práctica de Windows
    • Prácticas con Windows 10
    • Configuración de netplan
    • Terminal shell
      • SSH
      • 🚧Ghostty
      • 🚧Warp: la terminal inteligente
      • tmux: paneles de terminal
      • Tabby: Mejorar terminal
      • Conexión SSH en red NAT con VirtualBox
      • TheFuck!: Corrección de comandos
      • Wave: Mejorar terminal Linux
      • 🚧Registros de sesiones
    • Instalación manual de Wordpress en CDMON
    • 🏗️Proxmox
    • 🚧TrueNAS
    • Docker
      • Instalación de Docker
      • Dockerfiles
      • Volúmenes de docker
      • Deployment web con Docker con ejemplos
        • 🚧PRACTICA: Node.js con docker
      • Docker Compose
        • Ejemplo 1: Implantación de Wordpress
        • Ejemplo 2: Implementación de servidor con Nginx, Flask y mySQL
        • Ejemplo 3: Implantación de onlyoffice
        • 🚧Ejemplo 4: Passbolt
        • 🚧PRACTICA: Creando una web de emulación de juegos con docker-compose
      • Monitorización con Grafana en Docker
      • Pi-hole con docker
      • Actividad clase: Deployment app
      • Proyectos self-hosted de docker
    • 🚧Ansible
      • Configuración de laboratorio de ansible
    • 🚧Monitorización de servicios y redes
      • Servicios y cronjobs
      • 1Panel
      • 🚧WatchYourLAN
      • 🚧Uptime-kuma
      • 🚧Netdata
      • 🚧Prometheus + Grafana + Loki
    • LDAP
      • 🚧Gestión gráfica de LDAP
      • Carpetas compartidas NFS
      • PRACTICA: Infraestructura LDAP
  • 🗃️Servicios
    • 🚧Servidor hosting público
    • DHCP
      • DHCP con Ubuntu
      • 🦖DHCP & DNS script
      • DHCP con Alpine
        • Alpine - configuración de red
    • DNS
      • 😡Comprobación DNS
      • Script para enumeración DNS
      • DNS con ubuntu server
      • 🏗️DNSmasq
      • 🚧Securizar servidor DNS
    • Web
      • IIS con Windows server
      • Apache
        • Instalación de LAMP en Ubuntu
          • Prueba de servidor LAMP
          • 🚧Configuración de seguridad de Ubuntu
          • Creación de un VirtualHost en LAMP
          • Creación de varios VirtualHosts en LAMP
          • 🚧Instalación por script de LAMP
        • Aplicaciones con LAMP
          • Instalación de WP en entorno LAMP
          • 🚧Instalación de MantisBT en LAMP
            • 👷Guía de MantisBT
          • 🚧Instalación de QDPM con LAMP
      • Nginx
        • Virtualhosts
        • Instalando Wordpress en nginx
      • 👷MEAN stack
      • 👷‍♂️Caddy
      • 🚧Plesk
      • 🚧Ajenti -Web interface
    • 🏗️Proxy
      • Nginx como proxy inverso y balanceador
      • 🚧Zoraxy
    • Mailing
      • 🚧Servidor Mail con cloudfare
      • 🚧Reenvío de correos de root
      • 🚧Roundcube como MUA
      • Comprobación ESMTP
      • 🚧Seguridad en mailing
      • 🚧Mailhog
    • 🏗️File transfer
      • 🚧FTP
      • Git
    • Sistemas de comunicación instantánea
      • Comunicación mediante CLI
      • Ejabberd - XMPP
        • 🚧Ejabberd con docker
      • 🚧Openfire - XMPP
      • 🚧Comunicaciones servidor-móvil
    • 🏗️Multimedia services
      • Stremio
      • Ver anime por CLI
      • Jellyfin
      • 🚧HLS sobre Apache
      • 🚧Servicio autohospedado de videoconferencia
      • 🚧Morphos: Conversor docs
      • 🚧Reproductores de música en CLI
      • 🚧Icecast - música en streaming
      • 🚧RTMP-HLS server
      • 🚧Guacamole
  • 🖱️Hardware
    • 🚧Identificando conectores
    • Curso de electrónica analógica
    • Alcanzar los 3200MHz con la RAM
    • Calculadora de cuellos de botella
    • 🚧PXE: Bootear sistemas en red
    • 🚧PRÁCTICA - Clonación de disco con Clonezilla
    • Logitech iFixit
  • 🕸️Redes
    • Apuntes IPv4 Alina
    • ¿Cómo diferenciar tantos elementos de red?
    • 🚧IPv6
    • PRÁCTICA - Subneteo con IPcalc en Linux
    • PRÁCTICA - Comandos de red en Windows
    • 🚧PRÁCTICA - Comandos de red en Linux
    • Herramientas de red
      • 🚧TCPDump: analizado de paquetes en red
      • PRÁCTICA - Netsh
      • 🚧PRÁCTICA - mtr.ping.pe
      • 🚧Netcat
    • Wireshark
    • VPN y escritorio remoto
      • Comunicación punto a punto con ngrok
      • 🚧VPN
    • Escaneo de red
      • PRÁCTICA - Mapeado de red con Draw.io
      • 🚧PRÁCTICA - Nmap/Zenmap
    • Redes inalámbricas
      • Wi-fi
        • 🚧PRÁCTICA - Configuración de router
        • 🚧PRÁCTICA - Como hacer un Wifi Heatmap
        • 🚧Seguridad de redes inalámbricas
        • PRÁCTICA - Crackear la contraseña del Wifi con WPA/WPA2
    • PRÁCTICA - Usar SSH en Cisco packet tracer
  • 🛑Ciberseguridad
    • 🚧Securizando un servidor Linux
      • Protégete de ataques de fuerza bruta con Fail2ban
      • Firewall
        • UFW (uncomplicated firewall)
          • GUFW - Interfaz gráfica de ufw
        • 🚧IPTables
        • 🚧PFsense
          • 🚧DMZ con PFsense
      • 🚧Passbolt: gestor de contraseñas autohospedado
      • 🚧Hashes y encriptación
      • 🚧Certificados SSL/TLS
      • Copias de seguridad
    • 🚧Alerta de escaneo de puertos
    • 🚧Google dorks
    • 🚧Enumeración DNS
    • Comandos destructivos de linux
    • Webs enseñanza cyber
    • Wireless Pentesting CheatSheet Github
    • The password game!
    • Personal Security Checklist
  • 🔌Arduino
    • Termómetro e higrómetros digitales y online con Arduino
    • Construyendo un coche multipropósito
      • Multi
      • Montaje del auto
    • Arduino con Sigfox para IoT
    • 10 proyectos de Arduino
  • 📚Recursos y libros
    • Media library: libros varios
    • Herramientas básicas de sysadmin
  • 🌍Sostenibilidad y digitalización
    • Portfolio curso digitalización MOOC
    • 🚧Explotación de recursos por IA
    • 🚧Nuevas tecnologias y comunicaciones
    • 🚧Enlaces sobre Inteligencia artificial
Con tecnología de GitBook
En esta página
  • MySQL
  • Complementos de PHP
  • Descarga de Wordpress
  • Configuración del directorio de WordPress
  • Completar la instalación a través de la interfaz web
  1. Servicios
  2. Web
  3. Apache
  4. Aplicaciones con LAMP

Instalación de WP en entorno LAMP

Como CMS, podemos instalar Wordpress en un entorno de servidor virtual

MySQL

WordPress utiliza MySQL para administrar y almacenar el sitio y la información del usuario. Ya instalamos MySQL, pero debemos crear una base de datos y un usuario para que use WordPress.

Para comenzar, inicie sesión en la cuenta root por defecto de MySQL (administrativa) emitiendo este comando (ten en cuenta que este no es el usuario root de su servidor):

mysql -u root -pmys

Una vez instalado el software le solicitará la contraseña que configuró para la cuenta root de MySQL, si no funciona la contraseña o no te acuerdas puedes probar con la ayuda que tienes a continuación:

Nota: Si no puede acceder a su base de datos MySQL a través de root, como usuario sudo puede actualizar la contraseña de su usuario root iniciando sesión en la base de datos de esta forma:

sudo mysql -u root

Una vez que reciba la instrucción de MySQL, puede actualizar la contraseña del usuario root. Aquí, sustituya new_password por una contraseña segura de su elección.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

Ahora puede escribir EXIT; y puede volver a iniciar sesión en la base de datos a través de la contraseña con el siguiente comando:

mysql -u root -p

Para la base de datos, puedes crear una base de datos exclusiva para que WordPress la controle. Puedes ponerle el nombre que quiera, pero usaremos el nombre wordpress en esta guía. Cree la base de datos para WordPress escribiendo lo siguiente:

mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Recuerda que cada instrucción de MySQL debe terminar en punto y coma (;). Asegúrese de que esto no falte si experimenta problemas.

A continuación, crearemos una cuenta de usuario separada de MySQL que usaremos exclusivamente para realizar operaciones en nuestra nueva base de datos a través de Wordpress.

Crearemos esta cuenta, configuraremos una contraseña y concederemos acceso a la base de datos que hemos creado. Podemos hacerlo escribiendo el siguiente comando. Recuerde elegir un nombre de usuario (como wordpressuser) y una contraseña segura aquí para su usuario de base de datos donde ponepassword:

mysql> CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

A continuación, deje saber a la base de datos que nuestro wordpressuser debería tener acceso completo a la base de datos que configuramos:

mysql> GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

Ahora tiene una base de datos y una cuenta de usuario, creadas específicamente para WordPress. Debemos eliminar los privilegios de modo que la instancia actual de MySQL sepa sobre los cambios recientes que hemos realizado:

mysql> FLUSH PRIVILEGES;

Cierre MySQL escribiendo lo siguiente:

mysql> EXIT;

En el siguiente paso, crearemos la base para los complementos de WordPress descargando extensiones PHP para nuestro servidor.

Complementos de PHP

Cuando configuramos nuestra pila LAMP, solo necesitamos un conjunto de extensiones muy reducido para que PHP se comunique con MySQL.

Podemos descargar e instalar algunas de las extensiones de PHP más populares para usarlas con WordPress escribiendo lo siguiente:

$ sudo apt update
$ sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Esto sentará las bases para instalar complementos adicionales en nuestro sitio WordPress.

Cada complemento de WordPress tiene su propio conjunto de requisitos. Para algunos, posiblemente sea necesario instalar paquetes de PHP adicionales. Compruebe la documentación de sus complementos para ver sus requisitos de PHP. Si están disponibles, pueden instalarse con apt como ya se ha mostrado.

Necesitaremos reiniciar Apache para cargar estas nuevas extensiones; realizaremos más configuraciones en Apache en la próxima sección, así que puedes esperar hasta entonces o reiniciarlo ahora para completar el proceso de extensión de PHP:

$ sudo systemctl restart apache2

Ajuste de la configuración de Apache para permitir reemplazos y reescrituras .htaccess

A continuación, realizaremos algunos ajustes de menor importancia en nuestra configuración de Apache. Conforme a la configuración de la creación de virtualhost, deberías tener un archivo de configuración para tu sitio en el directorio /etc/apache2/sites-available/.

En esta guía, utilizaremos /etc/apache2/sites-available/wordpress.conf, pero debes sustituir la ruta a tu archivo de configuración cuando proceda. Además, emplearemos /var/www/wordpress como el directorio root de nuestra instalación de WordPress. Deberías usar el root web especificada en tu propia configuración.

Es posible que aún estés utilizando la configuración predeterminada 000-default.conf (con /var/www/html como tu root web). Se puede usar si solo va a alojar un sitio web en este servidor. En caso negativo, resulta mejor dividir la configuración necesaria en chunks lógicos, un archivo por sitio.

Con nuestras rutas identificadas, podemos pasar a trabajar con .htaccess de forma que Apache pueda manejar los cambios en la configuración directorio por directorio.

Habilitar la directiva .htaccess Override

Actualmente, el uso de archivos .htaccess está desactivado. WordPress y muchos de sus complementos utilizan estos archivos de forma amplia para realizar ajustes de comportamiento del servidor web dentro del directorio.

Abre el archivo de configuración de Apache para tu sitio web con un editor de texto como nano.

sudo nano /etc/apache2/sites-available/wordpress.conf

Para permitir archivos .htaccess, debemos configurar la directiva AllowOverride dentro de un bloque Directory orientado a nuestro root de documentos. Agrega el siguiente bloque de texto dentro del bloque VirtualHost en tu archivo de configuración. Asegúrate de utilizar el directorio root web correcto:

<Directory /var/www/wordpress/>
	AllowOverride All
</Directory>

Cuando termines, guarda y cierra el archivo. En nano, puedes hacer esto pulsando CTRL y X juntos, luego Y, y luego ENTER.

Habilitar el módulo de Rewrite

A continuación, podemos habilitar mod_rewrite para usar las características de permalink de WordPress. El comando a2enmod invoca una secuencia de comandos que habilita el módulo especificado en la configuración Apache.:

sudo a2enmod rewrite

Esto te permite tener permalinks a publicaciones más legibles por el ser humano, como en los siguientes dos ejemplos:

http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

Habilitar los cambios

Antes de implementar los cambios realizados, comprueba que no hay errores de sintaxis ejecutando la siguiente prueba:

sudo apache2ctl configtest

Puede recibir un resultado como el siguiente:

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Si desea eliminar la línea superior, simplemente agregue una directiva ServerName a su archivo de configuración principal (global) de Apache en /etc/apache2/apache2.conf. ServerName puede ser el dominio o la dirección IP de tu servidor. Este es solo un mensaje, sin embargo, y no afecta a la funcionalidad de su sitio. En tanto el resultado contenga Sintaxis OK, podrás continuar.

Reinicia Apache para implementar los cambios: Asegúrate de reiniciar ahora, incluso si lo has hecho anteriormente.

sudo systemctl restart apache2

Descarga de Wordpress

Ahora que nuestro software de servidor está configurado, podemos descargar y configurar WordPress. Cambie a un directorio usable (recomendamos uno temporal como /tmp) y descargue la versión comprimida.

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

Extraiga el archivo comprimido para crear la estructura de directorios de WordPress:

tar xzvf latest.tar.gz

Moveremos estos archivos a nuestra raíz de documentos momentáneamente. Antes de hacerlo, podemos agregar un archivo ficticio para que esté disponible para que WordPress lo use más tarde..htaccess

Cree el archivo escribiendo:

touch /tmp/wordpress/.htaccess

También copiaremos el archivo de configuración de muestra al nombre de archivo que dice WordPress:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

También podemos crear el directorio upgrade, para que WordPress no tenga problemas de permisos al intentar hacer esto por su cuenta después de una actualización de su software:

mkdir /tmp/wordpress/wp-content/upgrade

Ahora, podemos copiar todo el contenido del directorio en nuestra raíz de documentos. Estamos usando un punto al final de nuestro directorio de origen para indicar que todo dentro del directorio debe copiarse, incluidos los archivos ocultos (como el archivo .htaccess que creamos):

sudo cp -a /tmp/wordpress/. /var/www/wordpress

Asegúrese de reemplazar el directorio con el directorio que ha configurado en el servidor./var/www/wordpress

Configuración del directorio de WordPress

Antes de hacer la configuración de WordPress basada en la web, debemos ajustar algunos elementos en nuestro directorio de WordPress:

1. Ajuste de la propiedad y los permisos

Un paso importante que debemos lograr es configurar permisos y propiedad de archivos razonables.

Comenzaremos dando la propiedad a todos los archivos al usuario y grupo de www-data. Este es el usuario con el que se ejecuta el servidor web Apache, y Apache deberá poder leer y escribir archivos de WordPress para servir al sitio web y realizar actualizaciones automáticas.

Actualice la propiedad con chown, el comando que le permite modificar la propiedad del archivo. Asegúrese de apuntar al directorio relevante de tu servidor.

sudo chown -R www-data:www-data /var/www/wordpress

A continuación, ejecutaremos dos comandos find para establecer los permisos correctos en los directorios y archivos de WordPress:

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Estos permisos deberían hacer que trabajes de manera efectiva con WordPress, pero ten en cuenta que algunos complementos y procedimientos pueden requerir ajustes adicionales.

2. Configuración del archivo de configuración de WordPress

A continuación, vamos a modificar algunas de las configuraciones de conexión de la base de datos al principio del archivo. Debe ajustar el nombre de la base de datos, el usuario de la base de datos y la contraseña asociada que configuró en MySQL.

El otro cambio que debemos hacer es establecer el método que WordPress debe usar para escribir en el sistema de archivos. Como le hemos dado permiso al servidor web para escribir donde sea necesario, podemos establecer explícitamente el método del sistema de archivos en "direct". Si no configuramos esto con nuestra configuración actual, WordPress solicitará credenciales FTP cuando realicemos algunas acciones.

Esta configuración se puede agregar debajo de la configuración de conexión de base de datos o en cualquier otro lugar del archivo:

/var/www/wordpress/wp-config.php
. . .

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpressuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );


. . .

define('FS_METHOD', 'direct');

Guarda y cierra el archivo cuando hayas terminado.

Completar la instalación a través de la interfaz web

Ahora que la configuración del servidor está completa, podemos completar la instalación a través de la interfaz web.

En su navegador web, navegue hasta el nombre de dominio o la dirección IP pública de su servidor:

https://server_domain_or_IP

Seleccione el idioma que desea utilizar:

A continuación, llegarás a la página principal de configuración, a partir de aquí, sigue la instalación normal de Wordpress

AnteriorAplicaciones con LAMPSiguienteInstalación de MantisBT en LAMP

Última actualización hace 1 mes

La directiva Override permite o ignora los archivos .htaccess que son archivos ocultos que se utilizan para configurar funciones adicionales para sitios web alojados en el servidor web Apache tal y como puedes leer en la .

documentación oficial
🗃️
Page cover image
interfaz de idioma, si has llegado aquí, es que ha funcionado