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 utiliza. 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, consulta los siguientes artículos para obtener detalles sobre la creación de una nueva instancia:

Este ejemplo usará una máquina virtual Ubuntu, pero puedes usar cualquier flavor de Linux que prefieras. Siempre que puedas instalar Apache, PHP y el software de base de datos, WordPress podrá ejecutarse.

Cualquiera que sea el tipo de máquina que elijas, recuerda que es mejor usar instancias con un disco de arranque de volumen, ya que son permanentes (a diferencia de las instancias con discos de arranque efímeros).

 

Paso 1 — Apuntar el DNS a tu instancia

Primero deberás configurar DNS para que tu dominio apunte a la instancia. Consulta el siguiente artículo para obtener más detalles:

Paso 2 — Agregar acceso a SSH

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

Paso 3 — Crear un usuario con privilegios de sudo

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

Este artículo asume que el nuevo usuario se llama 'exampleuser'. Asegúrate de asignar los privilegios de sudo al usuario y cambiar al nuevo usuario antes de continuar.

Paso 4 — Instalar LAMP

Si bien ciertamente puedes instalar todo por sí mismo, el stack de LAMP para Ubuntu es perfecta para WordPress. Un artículo de DreamHost separado sobre cómo configurar LAMP está disponible a continuación, pero también se proporciona una descripción general aquí.

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

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

También se te pedirá que establezcas una contraseña para el usuario raíz de tu software SQL. Crea una contraseña segura y guárdala, ya que la necesitarás más adelante para configurar una base de datos para WordPress.

Habilitar mod_rewrite

Habilita mod_rewrite para que los enlaces permanentes de WordPress (o "pretty" URL) funcionen.

[user@instance]$ sudo a2enmod rewrite

Finalmente reinicia Apache.

[user@instance]$ sudo service apache2 restart

En este punto, deberías poder acceder a tu instancia en un navegador web usando tu dirección IP. Si no, vuelve a verificar los grupos de seguridad asignados a tu instancia para asegurarte de que las conexiones entrantes al puerto 80 estén permitidas para tu dirección IP. Si necesitas ayuda para trabajar con grupos de seguridad, consulta el artículo de DreamHost aquí:

Paso 5 — Crear una carpeta para tu sitio web

Crear una carpeta para el sitio web.

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

Luego, dale al usuario que acabas 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.

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

Paso 6 — 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.

[user@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 es para qué dominio.

Edita ese archivo:

[user@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.

<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 agregues VirtualHost, el sitio deberá habilitarse con un comando llamado a2ensite.

Si deseas deshabilitar un sitio, debes usar el comando a2disite.

[user@instance]$ sudo a2ensite

Esto te pedirá que elijas el sitio que deseas habilitar. Escríbelo, presiona enter y se te dirá lo que sigue.

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. Es una forma rápida de habilitar sitios sin tener que cambiar el nombre o alterar archivos. Finalmente recarga tu servicio Apache para que lea los cambios.

[user@instance]$ sudo service apache2 reload
 

Paso 7 — Crear 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.

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

Ingresa la contraseña que creaste para el usuario root de MySQL al instalar LAMP.

Tu símbolo del sistema cambiará a mysql>. Ahora puedes crear la base de datos y asignarle un nuevo usuario con su propia contraseña única.

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

Esto crea una nueva base de datos llamada 'wordpressdb'.

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

mysql> GRANT ALL ON wordpressdb.* TO dbuser@localhost IDENTIFIED by 'PASSWORD';

Sal del indicador de mysql.

mysql> exit

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

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

Paso 8 — Instalar WP-CLI

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

Para instalar, corre lo siguiente.

[user@instance]$ cd ~
[user@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.

[user@instance]$ php wp-cli.phar --info
PHP binary:     /usr/bin/php7.0
PHP version:    7.0.22-0ubuntu0.16.04.1
php.ini used:   /etc/php/7.0/cli/php.ini
WP-CLI root dir:        phar://wp-cli.phar
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/ubuntu
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.4.1

Y si esto lo mueve para que todos puedan usarlo.

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

Eso lo hará accesible para todos los usuarios. 

Paso 9 — Instalar WordPress

Cambia al directorio del sitio que creaste y usa WP-CLI para descargar la última versión de WordPress.

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

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

Instalar usando WP-CLI

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

En el primer comando, ingresa tu base de datos MySQL y tus credenciales de usuario.

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

En el siguiente comando, crea un nuevo nombre de usuario para WordPress con una nueva contraseña.

Si usas contraseñas seguras como cWG8j8FPPj {T9UDL_PW8, entonces DEBES ponerlas entre comillas.

En este ejemplo, se has elegido 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.

[user@instance]$ wp core install --url=https://example.com --title=DreamComputePress \ 
--admin_user=YOURUSERNAME --admin_password=PASSWORD --admin_email=admin@example.com --skip-email
sh: 1: /usr/sbin/sendmail: not found Success: WordPress installed successfully.

Si visitas tu sitio ahora, verás que se has creado un nuevo sitio de WordPress.

Paso 10 — Establecer permisos

Configuración de permisos de directorio y archivo

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

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

Establecer el bit 'setgid' para todos los directorios

Establecer 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.

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

Permite que el directorio wp-content y sus subdirectorios sean modificables.

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

A continuación, para asegurar tu instalación de WordPress, modifica los permisos de wp-config.php para que solo los usuarios de tu instancia puedan acceder a él.

[user@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 nombre de usuario y el grupo a www-data para que Apache pueda acceder a los archivos.

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

Paso 11 — Editar el archivo wp-config.php

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

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

Agrega la siguiente línea al final del archivo:

define('FS_METHOD', 'direct');

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

Configuraciones adicionales

Instalación de Temas y Complementos

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

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

Actualizar WordPress

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

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

Cuando termine de actualizar, vuelve a cambiar sus permisos a tu usuario.

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

Hacer PHP mejor

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

[user@instance]$ sudo apt install php-imagick php7.0-gd

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

[user@instance]$ sudo service apache2 restart

Solución de problemas

Si los enlaces permanentes no funcionan, asegúrate de haber instalado rewrite.

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

Y asegúrate de tener AllowOverride configurado en todos en tus hosts virtuales.

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

Los enlaces permanentes no funcionarán sin él.

Otras configuraciones de WordPress

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

Para más personalizaciones de WordPress, revisa la categoría de WordPress en la base de conocimientos de DreamHost a continuación.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?