GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale WordPress en Ubuntu 20.04 con Apache, MariaDB, PHP7.4 (LAMP)

Este tutorial le mostrará cómo instalar WordPress en Ubuntu 20.04 con Apache, MariaDB y PHP7.4 (LAMP Stack). WordPress es el CMS (Content Management System) más popular del mundo. Se estima que más de un tercio de los sitios web actuales funcionan con WordPress. PHP7.4 se convirtió en el repositorio de Ubuntu 20.04 y WordPress funciona perfectamente con él.

Requisito previo

Para seguir este tutorial, debe tener un servidor Ubuntu 20.04 con al menos 1 GB de RAM. Si está buscando un VPS (servidor privado virtual), puede hacer clic en este enlace especial para obtener $ 50 de crédito gratis en DigitalOcean. (Solo para nuevos usuarios). Si ya es usuario de DigitalOcean, puede hacer clic en este enlace especial para obtener $50 de crédito gratis en Vultr (solo para nuevos usuarios).

También necesita un nombre de dominio, para que los visitantes puedan escribir un nombre de dominio en la barra de direcciones del navegador web para acceder a su sitio. Registré mi nombre de dominio en NameCheap porque el precio es bajo y ofrecen protección de privacidad whois gratis de por vida.

Este tutorial asume que ya configuró una pila LAMP en Ubuntu 20.04. Si no es así, consulta el siguiente tutorial.

  • Cómo instalar LAMP Stack (Apache, MariaDB, PHP7.4) en Ubuntu 20.04

Después de terminar la instalación de LAMP, vuelva aquí y siga leyendo.

Paso 1:Descarga WordPress

SSH en su servidor Ubuntu 20.04 y actualice el software existente.

sudo apt update && sudo apt upgrade

A continuación, vaya a la página de descarga de wordpress.org y descargue el archivo zip. Puede adquirir el enlace de descarga directa haciendo clic con el botón derecho en el botón de descarga y seleccionando copy link location .

Luego, en la línea de comando, escriba wget seguido del enlace de descarga directa para descargar WordPress a su servidor Ubuntu 20.04.

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

A continuación, extraiga el archivo al /var/www/ directorio con unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

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

El -d La opción especifica el directorio de destino. Los archivos web de WordPress se extraerán a /var/www/wordpress . Podemos cambiar el nombre de este directorio como se muestra a continuación, por lo que es fácil para nosotros identificar cada directorio. Reemplace example.com con su nombre de dominio real.

sudo mv /var/www/wordpress /var/www/example.com

Paso 2:Cree una base de datos y un usuario para el sitio de WordPress

Inicie sesión en el shell de MariaDB como root con el siguiente comando.

sudo mariadb -u root

o

sudo mysql -u root

Una vez que haya iniciado sesión, cree una base de datos para WordPress usando el siguiente comando. Lo nombré wordpress , pero puede usar el nombre que desee, como el nombre de su sitio. (No omita el punto y coma).

create database wordpress;

Luego ingrese el siguiente comando para crear un usuario de base de datos para WordPress. Este comando también otorga todos los privilegios de la base de datos de WordPress al usuario. Reemplazar wpuser y your-password con su nombre de usuario y contraseña preferidos.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

Vacíe la tabla de privilegios para que los cambios surtan efecto y luego salga del shell de MariaDB.

flush privileges;

exit;

Paso 3:Configurar WordPress

Vaya a su directorio de WordPress.

cd /var/www/example.com/

Copie el archivo de configuración de muestra y cámbiele el nombre a wp-config.php .

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

Ahora edite el nuevo archivo de configuración con un editor de texto de línea de comandos como Nano.

sudo nano wp-config.php

Busque las siguientes líneas y reemplace los textos en rojo con el nombre de la base de datos, el nombre de usuario y la contraseña que creó en el paso anterior.

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

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

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

Guarde y cierre el archivo. Para guardar el archivo en el editor de texto Nano, presione Ctrl+O , luego presione Enter para confirmar. A continuación, presione Ctrl+X para salir.

También necesitamos configurar el usuario de Apache (www-data ) como propietario del directorio del sitio de WordPress usando el siguiente comando.

sudo chown www-data:www-data /var/www/example.com/ -R

Paso 4:Cree un archivo Apache Virtual Host para WordPress

Ejecute el siguiente comando para crear un archivo de host virtual para su sitio de WordPress en /etc/apache2/sites-available/ directorio.

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

Coloque los siguientes textos en el archivo. Reemplace los textos rojos con su propio nombre de dominio. No olvide crear registros A para su nombre de dominio en su administrador de DNS.

<VirtualHost *:80>       
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/example.com

        #This enables .htaccess file, which is needed for WordPress Permalink to work. 
        <Directory "/var/www/example.com">
             AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

Guarde y cierre el archivo. Luego pruebe las configuraciones.

sudo apache2ctl configtest

Si ve "Syntax OK", habilite este host virtual.

sudo a2ensite example.com.conf

Y vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Establezca un registro A correcto para su nombre de dominio, luego ingrese su nombre de dominio en la barra de direcciones del navegador.

example.com

o

example.com/wp-admin/install.php

Verá el asistente de instalación de WordPress. Seleccione un idioma.

Si no se muestra el asistente de instalación, probablemente necesite instalar algunas extensiones de PHP7.

sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4-curl php7.4-zip

Luego, vuelva a cargar Apache y ahora debería mostrarse el asistente.

sudo systemctl reload apache2

Antes de ingresar su información confidencial en el asistente de configuración, se recomienda habilitar HTTPS para evitar el secuestro de tráfico.

Paso 5:habilitar HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Ubuntu 20.04.

sudo apt install certbot python3-certbot-apache

Y ejecute este comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

donde

  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --uir :agregue el encabezado "Content-Security-Policy:upgrade-insecure-requests" a cada respuesta HTTP.
  • --staple-ocsp :activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.
  • --email :Correo electrónico utilizado para el registro y el contacto de recuperación.
  • -d va seguido de una lista de nombres de dominio, separados por comas. Puede agregar hasta 100 nombres de dominio.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Ahora, si vuelve a cargar el asistente de configuración de WordPress, puede ver que HTTP se redirige automáticamente a la conexión HTTPS.

Paso 6:finalice la instalación con el asistente de configuración

Cree una cuenta de administrador y haga clic en Instalar WordPress botón.

Y ahora su nuevo sitio de WordPress está instalado.

Redirigir WWW a No-WWW (o viceversa)

Ya hemos habilitado la redirección de HTTP a HTTPS, lo que queda por hacer es redirigir www a no-www, o viceversa. Si estás usando WordPress, entonces es muy fácil. Simplemente vaya a Panel de control de WordPress> Configuración> Generales y configure su versión preferida (www o no www) en Dirección de WordPress y Dirección del sitio . Asegúrese de incluir el https:// prefijo.

Corregir la redirección doble 301

Establecemos la versión de dominio preferida en la Dirección de WordPress y Dirección del sitio los campos. Sin embargo, hay un problema de redirección doble 301. Primero, el servidor Apache redirige HTTP a HTTPS, luego WordPress redirige a un dominio www o no www.

Algunos pueden argumentar que puede perder el jugo del enlace SEO al hacer una doble redirección 301. Si eso le preocupa, puede usar el método a continuación para hacer que todas las versiones del dominio vayan directamente al destino final, por lo que habrá una sola redirección 301.

Edite su archivo de host virtual. (No el servidor virtual SSL)

sudo nano /etc/apache2/sites-enabled/example.com.conf

El cliente de CertBot agregó las siguientes líneas al archivo para redirigir HTTP a HTTPS.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Para redirigir a un dominio www o no www, debe cambiar la última línea. Reemplazar %{SERVER_NAME} con su versión de dominio preferida como se muestra a continuación. (dominio www)

RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Si prefiere un dominio que no sea www, cámbielo por el siguiente.

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Luego guarde y cierre el archivo. También necesitaremos editar el servidor virtual SSL.

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

Agregue las siguientes líneas sobre la etiqueta de cierre para redirigir un dominio que no sea www a www.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Si desea redirigir www a un dominio que no sea www, agregue las siguientes líneas en su lugar.

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Guarde y cierre el archivo. Vuelva a cargar el servicio Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Para que quede más claro, a continuación se muestra una captura de pantalla de mi archivo de host virtual Apache y el archivo de host virtual SSL para redirigir un dominio que no sea www a www.

Archivo de host virtual de Apache

Archivo de host virtual Apache SSL

Asegúrese de configurar su versión de dominio preferida en Dirección de WordPress y Dirección del sitio antes de editar los archivos de host virtual de Apache. Si la configuración de WordPress contradice la configuración de Apache, su sitio terminará en un bucle de redireccionamiento.

Renovación automática del certificado TLS

Para renovar automáticamente el certificado de Let's Encrypt, simplemente edite el archivo crontab del usuario raíz.

sudo crontab -e

Luego agregue la siguiente línea en la parte inferior.

@daily certbot renew --quiet && systemctl reload apache2

Es necesario volver a cargar Apache para que presente el nuevo certificado a los clientes.

Aumentar el límite de tamaño del archivo de carga

Si usa el módulo Apache PHP para ejecutar el script PHP, entonces no hay límite de tamaño de archivo de carga. Si usa PHP-FPM para ejecutar el script PHP, cambie el límite de tamaño del archivo para que pueda cargar archivos grandes en la biblioteca de medios de WordPress. El tamaño de archivo máximo predeterminado para cargar en PHP-FPM es de 2 MB. Para aumentar el límite de tamaño de carga, edite el archivo de configuración de PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Busque la siguiente línea (línea 846).

upload_max_filesize = 2M

Cambie el valor como a continuación:

upload_max_filesize = 20M

Luego busque la siguiente línea (línea 694).

post_max_size = 8M

Cambie el tamaño máximo de los datos POST que PHP aceptará.

post_max_size = 20M

Guarde y cierre el archivo. Alternativamente, puede ejecutar los siguientes dos comandos para cambiar el valor sin abrir manualmente el archivo.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini

Luego reinicie PHP-FPM.

sudo systemctl restart php7.4-fpm

Cómo enviar correos electrónicos en WordPress

Su sitio de WordPress necesita enviar correos electrónicos como correos electrónicos de registro de cuenta, correos electrónicos de restablecimiento de contraseña, correos electrónicos de notificación de comentarios, etc. En lugar de usar costosas soluciones de terceros como Gsuite para crear direcciones de correo electrónico profesionales para su sitio web, puede seguir este tutorial de iRedMail para configurar configure su propio servidor de correo con su propio nombre de dominio, para que pueda tener buzones de correo ilimitados y enviar correos electrónicos ilimitados sin gastar mucho dinero.

Tenga en cuenta que es una buena práctica instalar el servidor de correo y WordPress en dos servidores privados virtuales diferentes porque no desea que el servidor de correo disminuya la velocidad de su sitio de WordPress, y el servidor de correo perderá la dirección IP de su sitio de WordPress si están en el mismo servidor privado virtual, lo que significa que los piratas informáticos pueden eludir cualquier CDN (red de entrega de contenido) que esté utilizando y lanzar un ataque DDoS directamente en su servidor de origen.

Una vez que su servidor de correo esté en funcionamiento, puede instalar un complemento SMTP en WordPress, para que pueda conectarse a su servidor de correo y enviar correos electrónicos. Ve a tu panel de control de WordPress -> Complementos , haga clic en Agregar nuevo para instalar un nuevo complemento.

Luego escribe WP Mail SMTP en el cuadro de búsqueda. Instale y active el WP Mail SMTP de WPForms complemento.

Vuelva a cargar la página web del panel de control de WordPress, verá WP Mail SMTP en la barra de menú izquierda. Haga clic en él y seleccione Configuración .

Luego, desplácese hacia abajo hasta la sección Mailer. De forma predeterminada, se selecciona el correo de PHP. Necesitamos cambiarlo a Otro SMTP .

Desplácese hacia abajo y deberá ingresar la configuración de SMTP.

  • Ingrese el nombre de host de su servidor de correo.
  • Seleccione TLS como cifrado.
  • Utilice el puerto 587.
  • Habilitar autenticación.
  • Ingrese una dirección de correo electrónico de su dominio y la contraseña.

Después de guardar la configuración, puede probar el envío de correo electrónico cerrando sesión en el panel de control de WordPress y haciendo clic en perdió su contraseña enlace para enviar un correo electrónico de restablecimiento de contraseña.


Ubuntu
  1. Cómo instalar WordPress con Apache en Ubuntu 18.04

  2. Cómo instalar Joomla con Apache en Ubuntu 18.04

  3. Cómo instalar múltiples WordPress con Nginx en Ubuntu 18.04

  4. Instale WordPress con LAMP Stack en Ubuntu 20.04

  5. Cómo instalar phpBB con Apache en Ubuntu 20.04

Instale WordPress en Ubuntu 20.04 con Nginx, MariaDB, PHP7.4 (LEMP)

Cómo instalar WordPress 4.7 en Ubuntu 16.04 con Apache, MariaDB, PHP7

Instale WordPress en Ubuntu 18.04 con Nginx, MariaDB, PHP7.2 (LEMP)

Cómo instalar LAMP Stack (Apache, MariaDB, PHP7.1) en Ubuntu 17.10

Cómo instalar la pila LAMP en Ubuntu 20.04

Cómo instalar WordPress con LAMP en Ubuntu 20.04