Configurar WordPress en DreamCompute

Generalidades

Este tutorial explica cómo instalar WordPress en una instancia de DreamCompute, incluida la aplicación en sí y la base de datos que usa. Todos los componentes necesarios se instalarán y configurarán sin utilizar sistemas de gestión de configuración automática.

Preparación

Este artículo asume que ya has creado una nueva instancia. De lo contrario, revisa los siguientes artículos para obtener detalles sobre la creación de una nueva instancia:

Este ejemplo usará Ubuntu 20, pero puedes usar cualquier versión de Linux que prefieras. Siempre que puedas instalar Apache, PHP y el software de base de datos, WordPress podrá ejecutarse.

Cualquiera que sea la imagen que elijas, recuerda que es mejor usar instancias con un disco de arranque de volumen, ya que son permanentes (en lugar de instancias con discos de reinicio efímero).

Paso 1 — Apuntar el DNS de tu instancia

Primero, deberás apuntar el DNS de tu dominio a la instancia. Revisa el siguiente artículo para obtener más detalles:

Paso 2 — Agregar el Acceso SSH

Los usuarios de WordPress a menudo necesitan acceso SSH para realizar configuraciones específicas dentro de WordPress. De forma predeterminada, esto está deshabilitado, por lo que deberás editar tu configuración SSH usando un editor de texto, como vim, emacs o nano (este es el más fácil para los principiantes). Revisa el siguiente artículo para obtener más información:

Paso 3 — Crear un usuario con privilegios sudo

Si bien no es necesario crear un usuario separado en la instancia de WordPress, se recomienda encarecidamente por motivos de seguridad. Revis el siguiente artículo para obtener más información:

Este artículo asume que tu nuevo usuario se llama exampleuser

Después de crear el usuario, asígnale privilegios sudo. Luego, inicia sesión en tu instancia con el usuario predeterminado. Una vez que hayas iniciado sesión, cambia al nuevo usuario antes de continuar.

Paso 4 — Instalar LAMP

Si bien ciertamente puedes instalar todo por sí solo, la pila LAMP para Ubuntu es perfecta para WordPress. Un artículo de DreamHost separado sobre cómo configurar LAMP está disponible a continuación, pero puedes ejecutar los siguientes comandos para instalar.

[exampleuser@instance]$ sudo apt-get update
[exampleuser@instance]$ sudo apt-get install lamp-server^

El segundo comando es interactivo, entonces se te preguntará Do you want to continue? en algunos lugares.

Hbilitar mod_rewrite

Habilita mod_rewrite para que los permalinks de WordPress (o URLs "lindas") funcionen.

[exampleuser@instance]$ sudo a2enmod rewrite

Finalmente reinicia Apache.

[exampleuser@instance]$ sudo service apache2 restart

En este punto, deberías poder acceder a tu instancia en un navegador web usando su dirección IP. De lo contrario, vuelve a verificar los grupos de seguridad asignados a tu instancia para asegurarse de que las conexiones entrantes al puerto 80 estén permitidas para tu dirección IP. Consulta el siguiente artículo si necesitas ayuda para trabajar con grupos de seguridad.

Paso 5 — Configurar el servidor MySQL

Ahora debes configurar y asegurar el servidor MySQL agregando una contraseña y eligiendo qué funciones te gustaría deshabilitar. Mira el siguiente enlace para obtener instrucciones.

Paso 6 — Crear una carpeta para tu sitio web

Create a folder for the website.

[exampleuser@instance]$ sudo mkdir /var/www/example.com

Luego, dále al usuario que acaba de crear la propiedad de ese directorio y su contenido. También debes asignar la propiedad de grupo del directorio al grupo Apache predeterminado de www-data.

[exampleuser@instance]$ sudo chown -R exampleuser:www-data /var/www/example.com/

Paso 7 — Configurar el archivo VirtualHosts del sitio

A continuación, querrás configurar VirtualHosts para que el servicio Apache de tu instancia sepa cómo manejar el dominio. Para hacer esto, necesitas crear un archivo .conf.

[exampleuser@instance]$ sudo touch /etc/apache2/sites-available/example.com.conf

Se recomienda que asignes un nombre al archivo con el nombre de tu dominio, para que siempre puedas saber qué archivo .conf está par que dominio.

Edita el archivo. Puedes usar los editores vim o nano.

[exampleuser@instance]$ sudo vim /etc/apache2/sites-available/example.com.conf

Agrega el siguiente código. Asegúrate de ajustar el nombre de dominio a tu sitio real y el correo a un correo de administrador existente.

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin admin@example.com
    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
            AllowOverride all
            Require all granted
    </Directory>

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

Una vez que se agregas VirtualHost, el sitio deberá habilitarse con el comando a2ensite.

Si quieres deshabilitar un siio, necesitarás usar el comando a2dissite.

[exampleuser@instance]$ sudo a2ensite

Esto te pedirá que elijas el sitio que deseas habilitar. Escribe tu nombre de dominio y presiona la tecla Enter.

Your choices are: 000-default default-ssl example.com
Which site(s) do you want to enable (wildcards ok)?
example.com
Enabling site example.com.
To activate the new configuration, you need to run:
  service apache2 reload

Recuerda este comando, ya que es una forma rápida de habilitar sitios sin tener que cambiar el nombre de los archivos. Finalmente, vuelve a cargar tu servicio Apache para que lea los cambios.

[exampleuser@instance]$ sudo service apache2 reload

Paso 8 — Crea la base de datos y los usuarios

WordPress requiere una base de datos. Para crear uno, comienza accediendo al servicio MySQL instalado por LAMP anteriormente.

[exampleuser@instance]$ sudo mysql -u root -p
Enter password:

Ingresa la contraseña que creaste para el usuario root de MySQL en el paso 5 anterior.

El comando del sistema cambia a mysql>. Ahora puedes crear la base de datos y asignarle un nuevo usuario con su propia contraseña única.

Crear la base de datos

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

Esto crea una nueva base de datos llamada wordpressdb.

Creae un usuario de base de datos

Run the following command to create a user for this database.

Cuando ejecutes el siguiente comando, recuerda cambiar PASSWORD a una contraseña segura. En este comando, dbuser es el nuevo usuario de la base de datos para la nueva base de datos.

mysql> CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'PASSWORD';

Concédele acceso al usuario de la base de datos

mysql> GRANT ALL ON wordpressdb.* TO dbuser@localhost;

Sal del comando mysql.

mysql> exit

Puedes comprobar que la base de datos se creó correctamente ejecutando el siguiente comando.

[exampleuser@instance]$ mysql -u dbuser -p wordpressdb

Esto lo registra en el servidor MySQL y tu símbolo del sistema cambia a mysql>.

Paso 9 — Instalar WP-CLI

Si bien esto es opcional, se recomienda encarecidamente. DreamHost incluye WP-CLI en todos sus servidores administrados debido a su utilidad. Para obtener más información sobre WP-CLI, revisa la página de inicio del proyecto a continuación.

Correr lo siguiente para instalar.

[exampleuser@instance]$ cd ~
[exampleuser@instance]$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Corre el siguiente comando para verificar que WP-CLI funciona.

[exampleuser@instance]$ php wp-cli.phar --info

OS:     Linux 5.4.0-26-generic #30-Ubuntu SMP Mon Apr 20 16:58:30 UTC 2020 x86_64
Shell:  /bin/bash
PHP binary:     /usr/bin/php7.4
PHP version:    7.4.3
php.ini used:   /etc/php/7.4/cli/php.ini
MySQL binary:   /usr/bin/mysql
MySQL version:  mysql  Ver 8.0.26-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
SQL modes:
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/exampleuser
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.5.0

A continuación, mueve la ubicación para que sea accesible para todos los usuarios.

[exampleuser@instance]$ chmod +x wp-cli.phar
[exampleuser@instance]$ sudo mv wp-cli.phar /usr/local/bin/wp

Paso 10 — Instalar WordPress

Navega al directorio de tu sitio y usa WP-CLI para descargar la última versión de WordPress.

[exampleuser@instance]$ cd /var/www/example.com/
[exampleuser@instance]$ wp core download

Si visitas tu dominio en un navegador ahora, obtendrás una página de instalación/configuración de WordPress.

Opción 1 — Instalar desde una página de configuracióne

Ahora puedes instalar WordPress usando la página de configuración. También tienes la opción de instalar usando la línea de comando usando WP-CLI.

Opción 2 — Instalar usando WP-CLI

También puedes instalar WordPress usando WP-CLI con los siguientes comandos.

Crear el archivo config.php

Ingresa las credenciales de tu base de datos para crear el archivo. wp-config.php. Esto permite que tu sitio web se conecte a la base de datos.

[exampleuser@instance]$ wp core config --dbname=wordpressdb --dbuser=dbuser --dbpass=PASSWORD
Success: Generated 'wp-config.php' file.

Crea un usuario WordPress

Si deseas usar una contraseña segura como cWG8j8FPPj{T9UDL_PW8, debes ponerle comillas.

En este ejemplo, se eligió la opción de omitir correos ya que toda la información necesaria se especifica directamente en el comando WP-CLI.

El carácter de barra invertida \ se usa al ingresar un comando largo. Cuando ingresas \, el comando de terminal continúa a la siguiente línea hasta que termines de ingresarlo.

También puedes eliminar el carácter \ y poner cada parámetro en una sola línea.

[exampleuser@instance]$ wp core install --url=https://example.com --title=DreamComputePress \ 
--admin_user=YOURUSERNAME --admin_password=PASSWORD --admin_email=admin@example.com --skip-email
Success: WordPress installed successfully.

Visita tu dominio para ver que se ha creado un nuevo sitio de WordPress.

Paso 11 — Configurar los permisos

Configurar los permisos del directorio y archivo

Para proteger la carpeta de tu sitio web, asegúrate de que todos los directorios estén configurados con permisos 755 y los archivos con 644.

[exampleuser@instance]$ sudo find /var/www/example.com -type d -exec chmod 755 {} \;
[exampleuser@instance]$ sudo find /var/www/example.com -type f -exec chmod 644 {} \;

Configura el bit setgid para todos los directorios

Configurar el bit setgid para todos los directorios hace que los archivos recién creados hereden los permisos de grupo del directorio principal. Esto asegura que los permisos seguirán siendo correctos en el futuro.

[exampleuser@instance]$ sudo find /var/www/example.com -type d -exec chmod g+s {} \;

Permite al directorio wp-content y sus subdirectorios para que sean reescribibles.

[exampleuser@instance]$ sudo find /var/www/example.com/wp-content -type d -exec chmod g+w {} \;

Modifica los permisos de wp-config.php para que solo los usuarios de tu instancia puedan acceder a él.

[exampleuser@instance]$ chmod -v 640 wp-config.php
mode of 'wp-config.php' changed from 0644 (rw-r--r--) to 0640 (rw-r-----)

Cambia la propiedad de todos los archivos del sitio de WordPress a tu usuario y el grupo a www-data para que Apache pueda acceder a los archivos.

En el siguiente comando, cambia exampleuser al usuario que creaste en el paso 3 de arriba.

[exampleuser@instance]$ sudo chown -R exampleuser:www-data /var/www/example.com

Paso 12 — Edita el archivo wp-config.php

Ahora debes agregar una línea al final del archivo. wp-config.php.

[exampleuser@instance]$ sudo vim /var/www/example.com/wp-config.php

AAgrega la siguiente línea al final del archivo:

define('FS_METHOD', 'direct');

Ahora puedes instalar temas y plugins dentro del panel de WordPress.

Configuración adicional

Instalar Temas y Plugins

Cuando instalas un tema o plugin, los permisos predeterminados son www-data:www-data. Por motivos de seguridad, se recomienda volver a cambiar el usuario a tu propio usuario cuando hayas terminado de instalar el nuevo software.

[exampleuser@instance]$ sudo chown -R exampleuser:www-data /var/www/example.com

Mejorar WordPress

Al actualizar WordPress, debes cambiar manualmente los permisos al grupo Apache www-data para que el servidor web Apache pueda acceder a los archivos.

[exampleuser@instance]$ sudo chown -R www-data:www-data /var/www/example.com

Cuando termines de actualizar, vuelve a cambiar tus permisos a tu usuario.

[exampleuser@instance]$ sudo chown -R exampleuser:www-data /var/www/example.com

Hacer PHP Mejor

Si planeas usar muchos medios, instala los siguientes paquetes del sistema para mejorar la forma en que PHP procesa las imágenes.

[exampleuser@instance]$ sudo apt install php-imagick php-gd

Asegúrate de reiniciar Apache para que PHP comience a usar esos paquetes.

[exampleuser@instance]$ sudo service apache2 restart

Solución de problemas

Si los permalinks no están funcionando, asegúrate de haber instalado rewrite.

[exampleuser@instance]$ sudo a2enmod rewrite && sudo service apache2 restart

Y asegúrate completamente de haber configurado AllowOverride para Todos en tu Virtual Host.

Abrir el archivo.

[exampleuser@instance]$ sudo vim /etc/apache2/sites-available/example.com.conf

Como deberían aparecer estas líneas.

<Directory /var/www/example.com>
    AllowOverride all
    Require all granted
</Directory>

Permalinks no funcionarán sin eso.

Configuraciones Adicionales de

Si estás interesado en usar HTTPS con esta instalación de WordPress, revisa los siguientes artículos para obtener ayuda con la configuración de Let's Encrypt en tu instancia y la configuración de WordPress para usar HTTPS.

Vea la categoría de WordPress a continuación para obtener más personalizaciones.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?