Cómo instalar WordPress con Nginx en Ubuntu 24.04, 22.04 o 20.04

WordPress es un sistema de gestión de contenidos (CMS) potente y ampliamente utilizado que permite a los usuarios crear y gestionar sitios web fácilmente. La instalación de WordPress en un servidor Ubuntu utilizando la pila LEMP (Linux, NGINX, MariaDB y PHP) garantiza un entorno sólido y de alto rendimiento para su sitio web. Esta configuración combina la eficiencia de NGINX con la confiabilidad de MariaDB y la versatilidad de PHP, proporcionando una base sólida para su sitio de WordPress.

Esta guía lo guiará por los pasos para instalar WordPress en Ubuntu 24.04, 22.04 o 20.04 usando la pila LEMP. Además, cubriremos cómo proteger su sitio con Let's Encrypt SSL y brindaremos consejos para solucionar problemas comunes en el archivo wp-config.php.

Pila LEMP para WordPress

Actualice Ubuntu antes de la instalación de WordPress

Comience su instalación de WordPress en su servidor Ubuntu sin problemas y con éxito ejecutando el comando de actualización estándar. La ejecución de este comando actualiza su sistema, minimizando el riesgo de conflictos durante el proceso de instalación de WordPress, ya que WordPress es extenso y complejo.

Para ejecutar el comando de actualización estándar, abra su terminal e ingrese el siguiente comando:

sudo apt update && sudo apt upgrade

Este comando actualizará cualquier paquete pendiente y actualizará su sistema.

Instalar paquetes iniciales para WordPress

Asegúrese de haber instalado los siguientes paquetes antes de continuar:

sudo apt install curl git wget unzip zip

Instalar Nginx en Ubuntu – Pila LEMP Parte 1

Para configurar una pila LEMP, primero instale Nginx ejecutando el comando:

sudo apt install nginx

Normalmente, el sistema habilita el servicio Nginx de forma predeterminada durante la instalación. No obstante, ejecute el siguiente comando para garantizar su correcto funcionamiento:

systemctl status nginx

Active el servicio Nginx, si aún no está activo, utilizando el siguiente comando:

sudo systemctl enable nginx --now

Adicional: Instale Nginx Mainline para WordPress

Para optimizar el rendimiento de WordPress, utilice la última versión principal de Nginx. Sigue la guía en instalar Nginx Mainline en Ubuntu. Esta versión ofrece características y mejoras adicionales para mejorar la velocidad y el rendimiento general de su sitio web.

Configurar el cortafuegos UFW para Nginx y WordPress

Para proteger su servidor Nginx y permitir el acceso a los puertos web predeterminados es necesario configurar el firewall UFW. Nginx ofrece perfiles para una configuración rápida de UFW.

Asegúrese de que UFW esté instalado en su sistema Ubuntu con el comando:

sudo apt install ufw

Después de la instalación, habilite UFW en su sistema. De forma predeterminada, UFW negará todas las conexiones entrantes y permitirá todas las salientes. Para habilitar el firewall, use el siguiente comando:

sudo ufw enable

Para ver los perfiles de Nginx disponibles, ejecute el siguiente comando:

sudo ufw app list

El resultado muestra que Nginx se ejecuta en el puerto 80 (HTTP), Nginx Secure se ejecuta en el puerto 443 (HTTPS) y Nginx Full combina ambos. Para habilitar el acceso HTTP y HTTPS, utilice el perfil completo de Nginx:

sudo ufw allow 'Nginx Full'

Sin embargo, dependiendo de sus necesidades específicas, es posible que desee ajustar el perfil. Por ejemplo, si solo necesita acceso HTTPS, utilice el perfil Nginx Secure:

sudo ufw allow 'Nginx Secure'

O, si solo necesita acceso HTTP, utilice el perfil HTTP de Nginx:

sudo ufw allow 'Nginx HTTP'

Instalar MariaDB en Ubuntu – Pila LEMP Parte 2

La segunda etapa de la instalación de LEMP implica instalar el componente de la base de datos. MariaDB es la opción preferida en la pila LEMP sobre MySQL debido a su rendimiento mejorado y otras ventajas. Sin embargo, si desea instalar una versión diferente de MariaDB desde los repositorios oficiales proporcionados por MariaDB.org, en ese caso, nuestra guía sobre instalar MariaDB 11.x o 10.x en Ubuntu puede mejorar el rendimiento de su instalación de WordPress.

Para instalar MariaDB, ejecute el siguiente comando en su terminal.

sudo apt install mariadb-server mariadb-client

Verificar el estado del servicio MariaDB después de la instalación es crucial, tal como lo hizo con Nginx, para garantizar su correcto funcionamiento sin errores:

systemctl status mariadb

Si MariaDB está inactivo, ejecute este comando para activar el servicio y habilitarlo en el inicio del sistema inmediatamente:

sudo systemctl enable mariadb --now

Asegure MariaDB con script de seguridad

Configurar la seguridad de su instalación MariaDB es un paso crítico para mantener la integridad y confidencialidad de sus datos. De forma predeterminada, las nuevas instalaciones de MariaDB suelen tener configuraciones de seguridad débiles, lo que las hace vulnerables a ataques maliciosos. Afortunadamente, ejecutar el script de seguridad de instalación puede ayudar a proteger su base de datos y evitar una posible explotación.

Para comenzar, inicie el script mysql_secure_installation ejecutando el siguiente comando:

sudo mysql_secure_installation

Ahora, proceda a configurar los ajustes del script de seguridad de MariaDB. Establezca la contraseña de root, restrinja el acceso remoto desde fuentes externas, elimine cuentas de usuarios anónimos y elimine la base de datos de prueba. Estas acciones protegen su instalación de MariaDB y previenen posibles amenazas a la seguridad.

Ejemplo:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Paso 5: Instale PHP en Ubuntu – Pila LEMP Parte 3

Para configurar la pila LEMP correctamente, debe instalar el servicio PHP. El servicio actúa como mediador entre Nginx y MariaDB, utilizando PHP-FPM y módulos adicionales que requiere WordPress. Si prefiere una versión diferente de PHP que cumpla con sus requisitos, consulte nuestra guía sobre instalar PHP en Ubuntu.

Para instalar PHP y PHP-FPM con los módulos necesarios en su sistema Ubuntu, ejecute el siguiente comando en su terminal:

sudo apt install php php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-imagick php-ldap php-intl

Después de la instalación, es esencial verificar el estado del servicio PHP como lo hizo con MariaDB y Nginx para asegurarse de que esté funcionando correctamente sin errores. En este ejemplo, el comando es específico de la versión de PHP instalada, que es PHP 8.1:

systemctl status php8.1-fpm

La salida debería verse así:

Instalar el backend de WordPress

Crear estructura de directorios de WordPress

Para comenzar la instalación de WordPress en su pila LEMP, puede visitar el sitio oficial Página de descarga de WordPress.org y localice el enlace de descarga “latest.zip”. Una opción alternativa es utilizar el siguiente comando para descargar la última versión de WordPress:

wget https://wordpress.org/latest.zip

A continuación, puede descomprimir el archivo de WordPress descargado en el directorio /var/www/html:

sudo unzip latest.zip -d /var/www/html/

Para asegurarse de que WordPress tenga los permisos de escritura correctos, debe configurar los permisos del propietario del directorio en WWW. Puedes hacer esto ejecutando el siguiente comando:

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

Después de configurar el permiso chown, es esencial configurar el permiso chmod para las carpetas y archivos de WordPress. Este paso es crucial para garantizar que el sitio de WordPress funcione correctamente sin problemas relacionados con los permisos de escritura.

Utilice los siguientes comandos para configurar el permiso chmod para las carpetas y archivos:

Para carpetas:

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;

Para archivos:

sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

Estos comandos establecen los permisos correctos para los archivos y directorios de WordPress. Asignan 755 permisos a las carpetas, lo que permite a los propietarios leer, escribir y ejecutar, mientras que a otros solo les otorgan acceso de lectura y ejecución. De manera similar, asignan 644 permisos a archivos, lo que permite a los propietarios leer y escribir, con acceso de solo lectura para otros.

Crear una base de datos para WordPress en Ubuntu

Primero, cree una base de datos para ejecutar WordPress en su servidor. Dado que instaló previamente MariaDB durante la configuración de la pila LEMP, utilícela para crear una nueva base de datos de WordPress. Abra su terminal, ingrese el siguiente comando y acceda al shell MariaDB como root para comenzar el proceso:

sudo mariadb -u root

Una vez que haya accedido al shell MariaDB, ingrese el siguiente comando para crear una nueva base de datos con el nombre que desee. En esta guía, lo llamaremos "WORDPRESSDB".

CREATE DATABASE WORDPRESSDB;

Después de crear la base de datos, cree una nueva cuenta de usuario para WordPress con el siguiente comando. Como medida de seguridad para proteger sus bases de datos en caso de una violación, es esencial crear una nueva cuenta de usuario para cada sitio web.

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

Nota: Reemplace “WPUSER” y “PASSWORD” con el nombre de usuario y la contraseña deseados. No copie ni pegue el usuario/contraseña predeterminado anterior por razones de seguridad.

Finalmente, asigne el acceso de la cuenta de usuario recién creada a la base de datos del sitio web de WordPress solo con el siguiente comando:

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

Una vez completadas todas las configuraciones de la base de datos, debe eliminar los privilegios para garantizar que los nuevos cambios surtan efecto. Ejecute el siguiente comando para eliminar los privilegios:

FLUSH PRIVILEGES;

Por último, salga del shell MariaDB escribiendo:

EXIT;

Establecer archivos de configuración de WordPress

Configurar los archivos de configuración de WordPress es un paso esencial en el proceso de instalación. Implica cambiar el nombre del archivo de muestra wp-config.php e ingresar los detalles de configuración necesarios.

Para comenzar, navegue hasta el directorio de WordPress usando el siguiente comando:

cd /var/www/html/wordpress/

A continuación, copie wp-config-sample.php a wp-config.php. Es bueno conservar la muestra en caso de que necesites empezar de nuevo. Ejecute el siguiente comando para copiar el archivo:

sudo cp wp-config-sample.php wp-config.php

Usando un editor de texto, abra el archivo wp-config.php recién copiado:

sudo nano wp-config.php

A continuación, ingresará el nombre de la base de datos, la cuenta de usuario con una contraseña y la dirección IP del host si es diferente a localhost.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 

define( 'DB_NAME', 'WORDPRESSDB' );                 <--------------- change this

/* MySQL database username */ 

define( 'DB_USER', 'WPUSER );                               <--------------- change this

/* MySQL database password */

define( 'DB_PASSWORD', 'PASSWORD' );             <--------------- change this

/* MySQL hostname, change the IP here if external DB set up */ 

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', '' );

Mientras esté en este archivo, agregar configuraciones adicionales hará que su WordPress sea más fácil de administrar, como guardar archivos directamente en lugar de usar FTP y mayores límites de tamaño de memoria.

/** ## Save files direct method ## */
define( 'FS_METHOD', 'direct' );

/** ## Increase memory limit, 256MB is recommended ## */
define('WP_MEMORY_LIMIT', '256M');

Nota: Ajuste los límites de memoria de su servidor dedicado o VPS para aumentar o disminuir el límite de memoria de 256 MB. Sin embargo, auméntalo sólo en pequeñas cantidades, como 128 MB, 256 MB o 512 MB.

Ejemplo de cómo podría verse su configuración:

Configurar claves salt de seguridad de WordPress en Ubuntu

Configurar claves salt de seguridad de WordPress es vital para la seguridad de su instalación de WordPress. Estas claves fortalecen su sitio de WordPress al mejorar la seguridad de la autenticación del usuario y el cifrado de datos.

Visite la API de clave secreta de WordPress en https://api.wordpress.org/secret-key/1.1/salt/ para generar claves salt de seguridad. Reemplace las líneas de ejemplo en el archivo wp-config.php con estas nuevas claves inmediatamente después de la generación.

Nota: Evite utilizar las líneas de ejemplo; sirven sólo como referencias. El uso de claves salt pregeneradas expone su sitio a ataques, por lo tanto, genere siempre claves únicas para cada instalación de WordPress.

Abra su archivo wp-config.php con un editor de texto para agregar las nuevas claves salt de seguridad:

sudo nano /var/www/html/wordpress/wp-config.php

Luego, busque las líneas en el archivo que corresponden a las claves de ejemplo:

define('AUTH_KEY',         '<3yfS7/>%m.Tl^8Wx-Y8-|T77WRK[p>(PtH6V]Dl69^<8|K86[_Z},+THZ25+nJG');
define('SECURE_AUTH_KEY',  'bN#Qy#ChBX#Y`PE/_0N42zxgLD|5XpU[mu.n&:t4q~hg<UP/b8+xFTly_b}f]M;!');
define('LOGGED_IN_KEY',    'owpvIO-+WLG|,1)CQl*%gP1uDp}s(jUbYQ[Wm){O(x@sJ#T}tOTP&UOfk|wYsj5$');
define('NONCE_KEY',        '8=Vh|V{D<>`CLoP0$H!Z3gEqf@])){L+6eGi`GAjV(Mu0YULL@sagx&cgb.QVCbi');
define('AUTH_SALT',        '%TX*X$GE-;|?<-^(+K1Un!_Y<hk-Ne2;&{c[-v!{q4&OiJjQon /SHcc/:MB}y#(');
define('SECURE_AUTH_SALT', '=zkDT_%}J4ivjjN+F}:A+s6e64[^uQ<qNO]TfHS>G0elz2B~7Nk.vRcL00cJoo7*');
define('LOGGED_IN_SALT',   '{$-o_ull4|qQ?f=8vP>Vvq8~v>g(2w12`h65ztPM(xo!Fr()5xrqy^k[E~TwI!xn');
define('NONCE_SALT',       'a1G(Q|X`eX$p%6>K:Cba!]/5MAqX+L<A4yU_&CI)*w+#ZB+*yK*u-|]X_9V;:++6');

Reemplace cada frase de ejemplo con su clave salt única generada a partir de la API de WordPress. Guarde y salga del archivo una vez que haya reemplazado todas las frases de ejemplo.

Crear bloque de servidor Nginx para WordPress

Para instalar WordPress a través de la interfaz de usuario web, primero debe configurar su bloque de servidor Nginx. Es esencial prestar atención a las configuraciones que se enumeran a continuación, particularmente “try_files $uri $uri/ /index.php?$args;”, ya que omitir “?$args” puede causar problemas con la API REST de WordPress.

Para crear un nuevo archivo de configuración del servidor, use el siguiente comando, reemplazando "ejemplo.com" con su nombre de dominio:

sudo nano /etc/nginx/sites-available/example.com.conf

El archivo de configuración de Nginx debe incluir "ubicación ~ .php$" para garantizar una funcionalidad adecuada. A continuación se muestra un archivo de configuración de ejemplo; asegúrese de actualizar la ruta raíz, así como “www.example.com” y “example.com” para reflejar sus nombres de dominio:

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /var/www/html/wordpress;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  client_max_body_size 100M;

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 128k;
    fastcgi_intercept_errors on;
  }

  gzip on;
  gzip_comp_level 6;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_disable "msie6";
  gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;

  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
    expires 90d;
    access_log off;
  }

  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
    add_header Access-Control-Allow-Origin "*";
    expires 90d;
    access_log off;
  }

  location ~ /\.ht {
    access_log off;
    log_not_found off;
    deny all;
  }
}

Tenga en cuenta que si ha instalado una versión diferente de PHP y PHP-FPM, como PHP 7.4, 8.0, 8.2, 8.3, etc., o su versión de Ubuntu usa una versión predeterminada diferente, debe reemplazar la línea “fastcgi_pass unix: /run/php/php8.1-fpm.sock;” con la versión adecuada. Por ejemplo, para PHP-FPM 8.2, la línea sería “fastcgi_pass unix:/run/php/php8.2-fpm.sock;”

Bloque de servidor Nginx WordPress explicado

A continuación se muestra información sobre el ejemplo de bloqueo del servidor para usuarios que instalan Nginx y WordPress por primera vez.

  1. Configuración básica del servidor:
  • Esta sección define la configuración básica para el bloque del servidor, incluida la dirección IP y el puerto en el que Nginx escuchará y los nombres del servidor al que se aplicará el bloqueo.
  • La directiva "raíz" especifica el directorio raíz donde se ubicarán los archivos del sitio web, en este caso, "/var/www/html/wordpress".
  • La directiva "index" especifica cómo Nginx debe buscar archivos de índice al servir el sitio.
  1. Configuración de ubicación:
  • Esta sección contiene los bloques de "ubicación", que definen cómo Nginx debe manejar las solicitudes de diferentes URL.
  • El primer bloque de "ubicación" maneja las solicitudes a la URL raíz del sitio y utiliza la directiva "try_files" para buscar el archivo solicitado y, si no se encuentra, pasar la solicitud al archivo index.php de WordPress.
  • El segundo bloque de "ubicación" maneja las solicitudes para el archivo sitemap.xml de WordPress y pasa la solicitud al archivo index.php de WordPress si no se encuentra el archivo.
  1. Configuración de manejo de PHP:
  • Esta sección define cómo Nginx debe manejar los archivos PHP, utilizando el bloque “ubicación ~ .php$” para hacer coincidir las solicitudes de archivos que terminan en “.php”.
  • La directiva "fastcgi_pass" especifica la ubicación del archivo de socket PHP-FPM, que se utiliza para comunicarse entre Nginx y PHP-FPM.
  • La directiva "fastcgi_param" establece el valor del parámetro "SCRIPT_FILENAME" en la ubicación del archivo PHP solicitado.
  • Las directivas "incluir" cargan archivos de configuración adicionales para el módulo FastCGI.
  • Las directivas “fastcgi_buffer_size” y “fastcgi_buffers” establecen el tamaño del búfer para pasar datos entre Nginx y PHP-FPM.
  • La directiva "fastcgi_intercept_errors" permite a Nginx interceptar y manejar errores de PHP.
  1. Configuración de compresión Gzip:
  • Esta sección define la configuración para la compresión Gzip, que se puede utilizar para reducir el tamaño de los archivos enviados al cliente.
  • La directiva "gzip" permite la compresión Gzip.
  • La directiva "gzip_comp_level" establece el nivel de compresión a utilizar.
  • La directiva "gzip_min_length" establece el tamaño mínimo de un archivo a comprimir.
  • La directiva "gzip_proxied" especifica qué tipos de solicitudes deben comprimirse.
  • La directiva "gzip_types" enumera los tipos MIME que deben comprimirse.
  1. Configuración de almacenamiento en caché de archivos:
  • Esta sección define la configuración para almacenar en caché archivos estáticos, lo que puede ayudar a acelerar el sitio web al reducir la cantidad de solicitudes al servidor.
  • El primer bloque de "ubicación" establece el tiempo de vencimiento de los archivos utilizados para activos y medios, como imágenes y videos.
  • El segundo bloque de "ubicación" establece el tiempo de caducidad de los archivos utilizados para fuentes y SVG.
  • Las directivas "access_log" y "log_not_found" controlan el registro de estas solicitudes.
  • La directiva "add_header" establece el encabezado "Access-Control-Allow-Origin" para permitir la carga de fuentes y SVG de otros dominios.
  1. Bloqueo de archivos .htaccess:
  • Esta sección bloquea el acceso a archivos que comienzan con “.ht”, que generalmente se usa para archivos de configuración confidenciales del servidor.

Para finalizar la configuración del bloque del servidor Nginx, deberá habilitar el archivo de configuración de Nginx desde "sitios disponibles" creando un enlace simbólico a "sitios habilitados" usando el siguiente comando, reemplazando "example.conf" con su archivo de configuración. nombre:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Realice un ensayo para comprobar si hay errores utilizando el siguiente comando:

sudo nginx -t

Si todo funciona, reinicie el servicio Nginx:

sudo systemctl restart nginx

Configuración de PHP.ini

Ajustar su configuración de PHP es crucial para un uso óptimo de WordPress. Para acomodar archivos multimedia de WordPress, debe aumentar el tamaño máximo de carga, el tamaño de publicación y el límite de memoria. También puede ajustar el tiempo máximo de ejecución y las variables de entrada.

Para hacer esto, primero abra su archivo php.ini usando su terminal. La ubicación puede diferir según el número de versión de PHP.

hAquí hay algunos ejemplos de rutas de versiones PHP comunes a php.ini:

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/8.0/fpm/php.ini
sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.2/fpm/php.ini
sudo nano /etc/php/8.3/fpm/php.ini

A continuación, busca las siguientes líneas y ajústalas a tus necesidades:

##increase this to the maximum file size you want to upload, recommended 50 to 100MB## 
 upload_max_filesize = 100MB

##increase this to the maximum post size you want to allow, recommended 50 to 100MB##
 post_max_size = 100MB

##increase this to the maximum execution time, recommended 150 to 300 seconds##
 max_execution_time = 300

##increase this to the maximum GET/POST/COOKIE input variables, recommended 5000 to 10000##
max_input_vars = 5000

##increase this to the maximum memory limit, recommended 256MB or 512MB. Note that you should ensure your system has enough RAM before raising this.##
memory_limit = 256M

Después de ajustar su configuración de PHP, reinicie su servidor PHP-FPM usando el comando apropiado para su versión de PHP.

Modificar el bloque del servidor Nginx sería lo mejor para permitir tamaños de cuerpo grandes. Vuelva a abrir el bloque de su servidor y agregue la siguiente línea:

  • client_max_body_size: esto debe establecerse en el tamaño de carga máximo que estableció en upload_max_filesize.

Si sigue el bloque del servidor de ejemplo, el tamaño máximo de su archivo se establecerá en 100 MB. Consulte el ejemplo como guía si no está seguro.

Después de cambiar el archivo de configuración de PHP, reinicie el servidor PHP-FPM para implementar la nueva configuración. El comando de reinicio varía según la versión de PHP. Identifique y utilice su número de versión de PHP en el comando, incluso si los ejemplos siguientes no lo incluyen.

A continuación se muestran comandos para reiniciar PHP-FPM para diferentes versiones de PHP:

sudo systemctl restart php7.4-fpm
sudo systemctl restart php8.0-fpm
sudo systemctl restart php8.1-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl restart php8.3-fpm

Instalar la interfaz de WordPress

Complete la instalación y configuración del backend, luego instale WordPress en su dominio.

Comience ingresando el nombre de dominio de instalación, como https://www.yoursite.com. También puede utilizar https://www.yoursite.com/wp-admin/install.php.

Seleccionar idioma para WordPress

La primera página a la que llegará es el asistente de instalación de front-end. Aquí, seleccione su idioma preferido y luego haga clic en Continuar.

Información completa requerida para WordPress


En la siguiente pantalla, ingrese el título de su sitio, nombre de usuario, contraseña y la dirección de correo electrónico del administrador principal asociada con el sitio de WordPress. Establezca una contraseña segura y una dirección de correo electrónico que funcione; Puede ajustar todas las demás configuraciones más adelante en el panel de configuración de WordPress.


Si está creando un sitio web y desea evitar la indexación en los motores de búsqueda, habilite la opción "desaconsejar encarecidamente la indexación de los motores de búsqueda". Esta opción impide que los robots de motores de búsqueda de buena reputación, como Google o Bing, indexen su sitio en construcción.

Instalar WordPress

Una vez que haya ingresado sus datos y haya realizado sus selecciones, haga clic en "Instalar WordPress" en la parte inferior de la pantalla. Si la instalación se realiza correctamente, debería llegar a una pantalla que le solicitará que inicie sesión.

Inicia sesión en WordPress

Ingrese sus credenciales de inicio de sesión y haga clic en "Iniciar sesión". Lo mejor sería llegar a su panel de WordPress para crear o importar su sitio web.

Una vez que inicia sesión, aparece el panel de WordPress, que sirve como punto de partida para la creación de sitios web. Este panel, su eje central, brinda acceso a todas las funcionalidades del sitio. Desde aquí, cree rápidamente nuevas publicaciones y páginas, instale y administre temas y complementos, y más. La interfaz intuitiva y fácil de usar facilita la rápida personalización y lanzamiento de su sitio web.

Comience a usar WordPress

A través del panel, unos pocos clics le permiten modificar la apariencia, el contenido y la funcionalidad de su sitio web, lo que permite la creación rápida de un sitio web profesional y atractivo.

Comandos adicionales de WordPress

Proteja WordPress y Nginx con el certificado gratuito Let's Encrypt SSL

Ejecute Nginx en HTTPS con un certificado SSL para una seguridad óptima del servidor web. Utilice Let's Encrypt, una autoridad de certificación abierta, automatizada y gratuita, para configurar certificados SSL para su servidor Nginx.

Para comenzar, instale el paquete certbot con el siguiente comando:

sudo apt install python3-certbot-nginx

Después de instalar el paquete certbot, cree su certificado SSL usando el siguiente comando:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

La EFF (Electronic Frontier Foundation) le solicita que reciba correos electrónicos durante el proceso de instalación del certificado. Elegir “Y” o "NORTE" según su preferencia, iniciando la instalación y configuración automática del certificado.

La configuración óptima del certificado SSL aplica redirecciones HTTPS 301, aplica un encabezado Strict-Transport-Security e incorpora grapado OCSP. Ajuste su correo electrónico y nombre de dominio para satisfacer sus necesidades específicas.

Una vez que instala el certificado, la URL de su sitio web cambia de HTTP a HTTPS. Cualquier intento de acceder a la antigua URL HTTP redirige automáticamente a la nueva URL HTTPS.

Establezca un trabajo cron para la renovación automática para mantener actualizado su certificado SSL. Certbot ofrece un script para este proceso automático, que debe probar con un ensayo antes de la configuración:

sudo certbot renew --dry-run

Para abrir la ventana crontab, ejecute el siguiente comando de terminal:

sudo crontab -e

A continuación, comprobaremos la renovación al menos una vez al día para garantizar que el certificado se mantenga actualizado:

00 00 */1 * * /usr/sbin/certbot-auto renew

Con esta configuración, su servidor Nginx estará seguro y protegido con un certificado SSL válido.

Cómo corregir errores de sesión PHP de WordPress en Ubuntu

Los errores al guardar sesiones de PHP mientras se utilizan complementos específicos pueden deberse a permisos de usuario inadecuados en el directorio /var/lib/php/sessions/. Afortunadamente, un simple comando puede corregir este problema.

Ejecute el siguiente comando para resolver el problema:

sudo chown -R www-data:www-data /var/lib/php/sessions/

Esto establece al usuario y al grupo www-data como propietarios de la sesión, lo que permite a WordPress escribir información de la sesión en el directorio. Esto es particularmente útil para complementos que automatizan tareas como la publicación en redes sociales. Corregir estos errores de sesión de PHP puede garantizar que su sitio de WordPress funcione sin problemas y de manera eficiente.

Arreglando el bucle de redireccionamiento HTTPs de WordPress en wp-config.php en Ubuntu

Después de habilitar HTTPS en su sitio de WordPress, es posible que enfrente un problema de bucle de redireccionamiento HTTP. Este problema ocurre cuando WordPress intenta continuamente redirigir a la versión HTTPS segura de su sitio sin completar la redirección.

Para resolver este problema, agregue las siguientes líneas de código a su archivo wp-config.php:

define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

El fragmento de código hace que el área de administración de WordPress utilice HTTPS. La primera línea establece la constante FORCE_SSL_ADMIN en verdadero, lo que obliga a todas las páginas de administración a utilizar HTTPS. El segundo bloque de código examina el encabezado HTTP_X_FORWARDED_PROTO en busca de la cadena "https". Al encontrarlo, el bloque establece la variable del servidor HTTPS en "activado", indicando a WordPress que trate la conexión de forma segura.

Para agregar el código, use cualquier editor de texto para abrir el archivo wp-config.php; el siguiente ejemplo utiliza nano:

sudo nano /var/www/html/wp-config.php

Agrega el código al final del archivo, justo antes de la línea “¡Eso es todo, deja de editar! Feliz blog”. Guarde el archivo y salga del editor de texto CTRL+X, luego Y.

Estos cambios permitirán que su sitio de WordPress se redireccione correctamente a HTTPS sin provocar un bucle de redireccionamiento.

Reparar el bucle de redireccionamiento de nombres de dominio de WordPress

Si tiene un problema de bucle de redireccionamiento en su sitio de WordPress, podría deberse a un error en la configuración de su nombre de dominio en el archivo wp-config.php. Este error puede ocurrir si el nombre de dominio que aparece en el archivo de configuración no coincide con el nombre de dominio real de su sitio web.

Para corregir este error, abra su archivo wp-config.php y verifique la siguiente línea:

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Asegúrese de que el nombre de dominio en ambas líneas coincida con el nombre de dominio de su sitio web; si no es así, actualícelo en consecuencia.

Si ya actualizó su nombre de dominio en el archivo wp-config.php y aún experimenta un bucle de redireccionamiento, puede haber un problema con la configuración de su servidor. En este caso, debe comunicarse con su proveedor de alojamiento para obtener más ayuda.

Conclusión

Con WordPress instalado correctamente en su servidor Ubuntu utilizando la pila LEMP, ahora tiene una plataforma potente y flexible para su sitio web. Proteger su sitio con Let's Encrypt SSL es esencial para proteger los datos del usuario y mejorar el SEO. Si encuentra algún problema, particularmente con el archivo wp-config.php, solucionarlo rápidamente garantizará que su sitio funcione sin problemas. Actualice periódicamente su instalación y complementos de WordPress para mantener la seguridad y el rendimiento. Disfrute creando y administrando su sitio web con las sólidas capacidades de WordPress.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

1 comentarios en «How to Install WordPress with Nginx on Ubuntu 24.04, 22.04 or 20.04»

Deja un comentario