Tutorial: aloja un WordPress blog en AL2 - Amazon Linux 2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: aloja un WordPress blog en AL2

Los siguientes procedimientos le ayudarán a instalar, configurar y proteger un WordPress blog en su AL2 instancia. Este tutorial es una buena introducción al uso de Amazon EC2 , ya que tienes el control total sobre un servidor web que aloja tu WordPress blog, lo que no es típico de un servicio de alojamiento tradicional.

Es responsable de actualizar los paquetes de software y de mantener los parches de seguridad del servidor. Para una WordPress instalación más automatizada que no requiera una interacción directa con la configuración del servidor web, el CloudFormation servicio proporciona una WordPress plantilla que también puede ayudarte a empezar rápidamente. Para obtener más información, consulte Introducción en la Guía del usuario de AWS CloudFormation . Si necesita una solución de alta disponibilidad con una base de datos disociada, consulte Implementación de un WordPress sitio web de alta disponibilidad en la AWS Elastic Beanstalk Guía para desarrolladores.

importante

Estos procedimientos están diseñados para usarse con. AL2 Para obtener más información acerca de otras distribuciones, consulte la documentación específica. Muchos de los pasos de este tutorial no funcionan en instancias de Ubuntu. Para obtener ayuda WordPress sobre la instalación en una instancia de Ubuntu, consulte WordPressla documentación de Ubuntu. También se puede utilizar CodeDeploypara realizar esta tarea en sistemas Amazon Linux, macOS o Unix.

Requisitos previos

En este tutorial se asume que has lanzado una AL2 instancia con un servidor web funcional con soporte para PHP y bases de datos (MySQL o MariaDB). Para ello, sigue todos los pasos que se indican. Tutorial: Instale un servidor LAMP en AL2 En este tutorial también se incluyen pasos para configurar un grupo de seguridad que permita el tráfico HTTP y HTTPS, así como varios pasos para asegurar que los permisos de archivo están correctamente establecidos en el servidor web. Para obtener más información sobre la adición de reglas a su grupo de seguridad, consulte Agregar reglas a un grupo de seguridad.

Le recomendamos encarecidamente que asocie una dirección IP elástica (EIP) a la instancia que utilice para alojar un blog. WordPress Esto impide que la dirección DNS pública de la instancia cambie e interrumpa la instalación. Si posee un nombre de dominio y quiere usarlo para el blog, puede actualizar el registro DNS del nombre de dominio para que apunte a la dirección EIP (para obtener ayuda al respecto, póngase en contacto con el registrador de nombres de dominio). Puede tener una dirección EIP asociada con una instancia en ejecución sin costo alguno. Para obtener más información, consulte Direcciones IP elásticas en la Guía del EC2 usuario de Amazon.

Si todavía no tiene un nombre de dominio para el blog, puede registrar uno con Route 53 y asociarlo con la dirección EIP de la instancia. Para obtener más información, consulte Registrar nombres de dominio mediante Amazon Route 53 en la Guía para desarrolladores de Amazon Route 53.

Instalar WordPress

Opción: completar este tutorial con la automatización

Para completar este tutorial utilizando la AWS Systems Manager automatización en lugar de las siguientes tareas, ejecute el documento de automatización.

Conéctese a la instancia y descargue el paquete WordPress de instalación.

Para descargar y descomprimir el paquete de WordPress instalación
  1. Descargue el paquete de WordPress instalación más reciente con el wget comando. El comando siguiente debería descargar siempre la última versión.

    [ec2-user ~]$ wget https://wordpress.org/latest.tar.gz
  2. Descomprima y desarchive el paquete de instalación. La carpeta de instalación se descomprime en una carpeta llamada wordpress.

    [ec2-user ~]$ tar -xzf latest.tar.gz
Para crear una base de datos, un usuario y una base de datos para WordPress la instalación

WordPress La instalación debe almacenar información, como las entradas de blog y los comentarios de los usuarios, en una base de datos. Este procedimiento ayuda a crear una base de datos para el blog y un usuario que esté autorizado a leer y guardar información en ella.

  1. Inicie el servidor de base de datos.

    • [ec2-user ~]$ sudo systemctl start mariadb
  2. Inicie sesión en el servidor de base de datos como el usuario root. Escriba la contraseña root de la base de datos cuando se lo pidan. Esta contraseña puede ser diferente de la contraseña root del sistema o incluso podría estar en blanco si no se ha protegido el servidor de bases de datos.

    Si todavía no ha protegido el servidor de base de datos, es importante que lo haga. Para obtener más información, consulte Para proteger el servidor MariaDB (AL2).

    [ec2-user ~]$ mysql -u root -p
  3. Cree un usuario y una contraseña para la base de datos MySQL. WordPressLa instalación utiliza estos valores para comunicarse con la base de datos MySQL.

    Asegúrese de que crea una contraseña fuerte para el usuario. No utilice la comilla simple ( ' ) en la contraseña porque interrumpirá el comando anterior. No utilice ninguna contraseña existente y asegúrese de que la guarda en un lugar seguro.

    Escriba el comando siguiente sustituyendo un nombre de usuario y contraseña únicos.

    CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';
  4. Cree la base de datos. Póngale un nombre descriptivo y significativo, por ejemplo wordpress-db.

    nota

    Los signos de puntuación que rodean el nombre de la base de datos en el comando siguiente son acentos graves. La tecla (`) se ubica por lo general sobre la tecla Tab en un teclado estándar. Los acentos graves no siempre son obligatorios pero permiten usar caracteres no válidos, por ejemplo, guiones, en los nombres de las bases de datos.

    CREATE DATABASE `wordpress-db`;
  5. Otorgue todos los privilegios de su base de datos al WordPress usuario que creó anteriormente.

    GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
  6. Vacíe los privilegios de base de datos para recoger todos los cambios.

    FLUSH PRIVILEGES;
  7. Salga del cliente de mysql.

    exit
Para crear y modificar el archivo wp-config.php

La carpeta WordPress de instalación contiene un ejemplo de archivo de configuración llamadowp-config-sample.php. En este procedimiento, va a copiar este archivo y a modificarlo para ajustarlo a su configuración específica.

  1. Copie el archivo wp-config-sample.php en un archivo llamado wp-config.php. Esto crea un archivo de configuración nuevo y mantiene el archivo original de muestra intacto como copia de seguridad.

    [ec2-user ~]$ cp wordpress/wp-config-sample.php wordpress/wp-config.php
  2. Modifique el archivo wp-config.php con el editor de texto favorito (por ejemplo nano o vim) y escriba los valores de la instalación. Si no tiene un editor favorito, nano es más adecuado para principiantes.

    [ec2-user ~]$ nano wordpress/wp-config.php
    1. Busque la línea que define DB_NAME y cambie database_name_here por el nombre de la base de datos que ha creado en Paso 4 de Para crear una base de datos, un usuario y una base de datos para WordPress la instalación.

      define('DB_NAME', 'wordpress-db');
    2. Busque la línea que define DB_USER y cambie username_here por el usuario de la base de datos que ha creado en Paso 3 de Para crear una base de datos, un usuario y una base de datos para WordPress la instalación.

      define('DB_USER', 'wordpress-user');
    3. Busque la línea que define DB_PASSWORD y cambie password_here por la contraseña fuerte que ha creado en Paso 3 de Para crear una base de datos, un usuario y una base de datos para WordPress la instalación.

      define('DB_PASSWORD', 'your_strong_password');
    4. Busque la sección denominada Authentication Unique Keys and Salts. Estos SALT valores KEY y otros proporcionan una capa de cifrado a las cookies del navegador que WordPress los usuarios almacenan en sus máquinas locales. Básicamente, agregar valores largos aleatorios hace que el sitio sea más seguro. Visite https://api.wordpress. org/secret-key/1.1/salt/para generar aleatoriamente un conjunto de valores clave que puede copiar y pegar en el wp-config.php archivo. Para pegar texto en un terminal PuTTY, coloque el cursor en el punto que quiere pegar el texto y haga clic con el botón derecho del ratón dentro del terminal PuTTY.

      Para obtener más información sobre las claves de seguridad, visita https://wordpress. org/support/article/editing-wp-config-php/#security -keys.

      nota

      Los valores siguientes tienen una finalidad de ejemplo únicamente; no los use en la instalación.

      define('AUTH_KEY', ' #U$$+[RXN8:b^-L 0(WU_+ c+WFkI~c]o]-bHw+)/Aj[wTwSiZ<Qb[mghEXcRh-'); define('SECURE_AUTH_KEY', 'Zsz._P=l/|y.Lq)XjlkwS1y5NJ76E6EJ.AV0pCKZZB,*~*r ?6OP$eJT@;+(ndLg'); define('LOGGED_IN_KEY', 'ju}qwre3V*+8f_zOWf?{LlGsQ]Ye@2Jh^,8x>)Y |;(^[Iw]Pi+LG#A4R?7N`YB3'); define('NONCE_KEY', 'P(g62HeZxEes|LnI^i=H,[XwK9I&[2s|:?0N}VJM%?;v2v]v+;+^9eXUahg@::Cj'); define('AUTH_SALT', 'C$DpB4Hj[JK:?{ql`sRVa:{:7yShy(9A@5wg+`JJVb1fk%_-Bx*M4(qc[Qg%JT!h'); define('SECURE_AUTH_SALT', 'd!uRu#}+q#{f$Z?Z9uFPG.${+S{n~1M&%@~gL>U>NV<zpD-@2-Es7Q1O-bp28EKv'); define('LOGGED_IN_SALT', ';j{00P*owZf)kVD+FVLn-~ >.|Y%Ug4#I^*LVd9QeZ^&XmK|e(76miC+&W&+^0P/'); define('NONCE_SALT', '-97r*V/cgxLmp?Zy4zUU4r99QQ_rGs2LTd%P;|_e1tS)8_B/,.6[=UK<J_y9?JWG');
    5. Guarde el archivo y salga del editor de texto.

Para instalar sus WordPress archivos en la raíz de documentos de Apache
  • Ahora que ha descomprimido la carpeta de instalación, ha creado una base de datos y un usuario MySQL y ha personalizado el archivo de WordPress configuración, puede copiar los archivos de instalación en la raíz de documentos del servidor web para poder ejecutar el script de instalación que complete la instalación. La ubicación de estos archivos depende de si quieres que tu WordPress blog esté disponible en la raíz real del servidor web (por ejemplomy.public.dns.amazonaws.com) o en un subdirectorio o una carpeta situada debajo de la raíz (por ejemplo,). my.public.dns.amazonaws.com/blog

    • Si quieres WordPress ejecutarlo desde la raíz de tus documentos, copia el contenido del directorio de instalación de WordPress (pero no el directorio en sí) de la siguiente manera:

      [ec2-user ~]$ cp -r wordpress/* /var/www/html/
    • Si quieres WordPress ejecutarlo en un directorio alternativo bajo la raíz del documento, primero crea ese directorio y, a continuación, copia los archivos en él. En este ejemplo, WordPress se ejecutará desde el directorioblog:

      [ec2-user ~]$ mkdir /var/www/html/blog [ec2-user ~]$ cp -r wordpress/* /var/www/html/blog/
importante

Por razones de seguridad, si no pasa al siguiente procedimiento de inmediato, pare el servidor web Apache (httpd) ahora. Tras mover la instalación a la raíz de documentos de Apache, el script de WordPress instalación queda desprotegido y un atacante podría acceder a su blog si el servidor web Apache estuviera en funcionamiento. Para detener el servidor web Apache, escriba el comando sudo systemctl stop httpd. Si pasa al siguiente procedimiento, no es preciso que pare el servidor web Apache.

Para permitir el uso WordPress de enlaces permanentes

WordPress Los enlaces permanentes necesitan usar .htaccess archivos de Apache para funcionar correctamente, pero esto no está habilitado de forma predeterminada en Amazon Linux. Use este procedimiento para permitir todas las anulaciones en la raíz de documentos de Apache.

  1. Abra el archivo httpd.conf con el editor de textos que prefiera (como nano o vim). Si no tiene un editor favorito, nano es más adecuado para principiantes.

    [ec2-user ~]$ sudo vim /etc/httpd/conf/httpd.conf
  2. Busque la sección que comienza por <Directory "/var/www/html">.

    <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted </Directory>
  3. Cambie la línea AllowOverride None de la sección anterior por AllowOverride All.

    nota

    Hay múltiples líneas AllowOverride en este archivo; asegúrese de que cambia la línea de la sección <Directory "/var/www/html">.

    AllowOverride All
  4. Guarde el archivo y salga del editor de texto.

Para instalar la biblioteca de dibujos gráficos de PHP en AL2

La biblioteca GD para PHP le permite modificar imágenes. Instale esta biblioteca si tiene que recortar la imagen de encabezado para su blog. La versión phpMyAdmin que instale puede requerir una versión mínima específica de esta biblioteca (por ejemplo, la versión 7.2).

Utilice el siguiente comando para instalar la biblioteca de dibujos gráficos de PHP AL2. Por ejemplo, si instaló php7.2 desde amazon-linux-extras como parte de la instalación de la pila LAMP, este comando instalará la versión 7.2 de la biblioteca de dibujos gráficos de PHP.

[ec2-user ~]$ sudo yum install php-gd

Para verificar la versión instalada, utilice el siguiente comando:

[ec2-user ~]$ sudo yum list installed php-gd

A continuación, se muestra un ejemplo de la salida:

php-gd.x86_64 7.2.30-1.amzn2 @amzn2extra-php7.2
Para ajustar los permisos de archivo para el servidor web Apache

Algunas de las funciones disponibles WordPress requieren acceso de escritura a la raíz del documento de Apache (por ejemplo, cargar contenido multimedia a través de las pantallas de administración). Si aún no lo ha hecho, aplique los siguientes permisos y pertenencias a grupos (tal y como se describe con más detalle en laTutorial: Instale un servidor LAMP en AL2).

  1. Otorgue la propiedad de archivos de /var/www y su contenido al usuario apache.

    [ec2-user ~]$ sudo chown -R apache /var/www
  2. Otorgue la propiedad de grupo de /var/www y su contenido al grupo apache.

    [ec2-user ~]$ sudo chgrp -R apache /var/www
  3. Cambie los permisos del directorio /var/www y sus subdirectorios para agregar permisos de escritura de grupo y establecer el ID de grupo en futuros subdirectorios.

    [ec2-user ~]$ sudo chmod 2775 /var/www [ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
  4. Cambie de forma recursiva los permisos de archivo de /var/www y sus subdirectorios.

    [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0644 {} \;
    nota

    Si pretende utilizarlos también WordPress como servidor FTP, aquí necesitará una configuración de grupo más permisiva. Para ello, revise los pasos recomendados y la configuración WordPress de seguridad.

  5. Reinicie el servidor web Apache para recoger el grupo y los permisos nuevos.

    • [ec2-user ~]$ sudo systemctl restart httpd
Ejecute el script WordPress de instalación con AL2

Ya está listo para la instalación WordPress. Los comandos que utilice dependen del sistema operativo. Los comandos de este procedimiento se utilizan con AL2.

  1. Use el comando systemctl para asegurarse de que se inician los servicios httpd y de base de datos cada vez que se arranca el sistema.

    [ec2-user ~]$ sudo systemctl enable httpd && sudo systemctl enable mariadb
  2. Verifique que el servidor de base de datos se está ejecutando.

    [ec2-user ~]$ sudo systemctl status mariadb

    Si el servicio de base de datos no se está ejecutando, inícielo.

    [ec2-user ~]$ sudo systemctl start mariadb
  3. Verifique que el servidor web Apache (httpd) se está ejecutando.

    [ec2-user ~]$ sudo systemctl status httpd

    Si el servicio httpd no se está ejecutando, inícielo.

    [ec2-user ~]$ sudo systemctl start httpd
  4. En un navegador web, escriba la URL de su WordPress blog (la dirección DNS pública de la instancia o la dirección seguida de la blog carpeta). Deberías ver el script WordPress de instalación. Proporcione la información requerida para la WordPress instalación. Seleccione Instalar WordPress para completar la instalación. Para obtener más información, consulte el paso 5: ejecutar el script de instalación en el WordPress sitio web.

Siguientes pasos

Una vez que haya probado su WordPress blog, considere la posibilidad de actualizar su configuración.

Uso de un nombre de dominio personalizado

Si tienes un nombre de dominio asociado a la dirección EIP de tu EC2 instancia, puedes configurar tu blog para que utilice ese nombre en lugar de la dirección DNS EC2 pública. Para obtener más información, consulta Cambiar la URL del sitio en el sitio WordPress web.

Configuración del blog

Puede configurar el blog para usar distintos temas y complementos y ofrecer una experiencia más personalizada a los lectores. Sin embargo, en ocasiones el proceso de instalación puede producir un efecto indeseado y provocar la pérdida del blog completo. Recomendamos encarecidamente que cree una copia de seguridad de Amazon Machine Image (AMI) de la instancia antes de instalar temas o complementos, de forma que pueda restaurar el blog si algo sale mal durante la instalación. Para obtener más información, consulte Crear su propia AMI.

Aumentar la capacidad

Si su WordPress blog se hace popular y necesita más capacidad de procesamiento o almacenamiento, tenga en cuenta los siguientes pasos:

  • Ampliar el espacio de almacenamiento de la instancia. Para obtener más información, consulte Volúmenes elásticos de Amazon EBS en la Guía del usuario de Amazon EBS.

  • Mover la base de datos MySQL a Amazon RDS para aprovechar la capacidad de fácil escala del servicio.

Mejore el rendimiento de la red de su tráfico de Internet

Si espera que su blog impulse el tráfico a partir de los usuarios ubicados en todo el mundo, considere el uso de AWS Global Accelerator. Global Accelerator le ayuda a reducir la latencia al mejorar el rendimiento del tráfico de Internet entre los dispositivos cliente de sus usuarios y la WordPress aplicación en la que se ejecuta AWS. Global Accelerator utiliza la red AWS global para dirigir el tráfico a un punto final de aplicación en buen estado en la AWS región más cercana al cliente.

Obtenga más información sobre WordPress

Para obtener más información WordPress, consulte la documentación de ayuda del WordPress Codex en http://codex.wordpress.org/.

Para obtener más información sobre la solución de problemas de la instalación, consulte Problemas comunes de instalación.

Para obtener información sobre cómo hacer que tu WordPress blog sea más seguro, consulta Hardening WordPress.

Para obtener información sobre cómo mantener tu WordPress blog up-to-date, consulta Actualización WordPress.

Ayuda Ha cambiado el nombre DNS público y ahora el blog se ha roto

WordPress La instalación se configura automáticamente con la dirección DNS pública de la EC2 instancia. Si detienes y reinicias la instancia, la dirección DNS pública cambia (a menos que esté asociada a una dirección IP elástica) y tu blog dejará de funcionar porque hace referencia a los recursos en una dirección que ya no existe (o que está asignada a otra EC2 instancia). Encontrará una descripción más detallada del problema y varias soluciones posibles en Cambiar la URL del sitio.

Si esto le ha ocurrido a la WordPress instalación, es posible que pueda recuperar el blog siguiendo el procedimiento que se indica a continuación, que utiliza la interfaz de línea de wp-cli comandos para WordPress.

Para cambiar la URL WordPress del sitio por la wp-cli
  1. Conéctate a tu EC2 instancia mediante SSH.

  2. Anote la URL del sitio anterior y la URL del sitio nuevo para la instancia. Es probable que la URL del sitio anterior sea el nombre de DNS público de la EC2 instancia cuando la WordPress instalaste. La nueva URL del sitio es el nombre DNS público actual de tu EC2 instancia. Si no está seguro de la URL del sitio anterior, puede usar curl para buscarla con el comando siguiente.

    [ec2-user ~]$ curl localhost | grep wp-content

    Debería ver referencias al nombre DNS público anterior en el resultado, que tendrá un aspecto similar a lo siguiente (la URL del sitio anterior en rojo):

    <script type='text/javascript' src='http://ec2-52-8-139-223.us-west-1.compute.amazonaws.com/wp-content/themes/twentyfifteen/js/functions.js?ver=20150330'></script>
  3. Descargue el wp-cli con el comando siguiente.

    [ec2-user ~]$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  4. Busca y reemplaza la antigua URL del sitio en tu WordPress instalación con el siguiente comando. Sustituya la EC2 instancia y la ruta a la WordPress instalación URLs por el sitio antiguo y el nuevo (normalmente, /var/www/html o/var/www/html/blog).

    [ec2-user ~]$ php wp-cli.phar search-replace 'old_site_url' 'new_site_url' --path=/path/to/wordpress/installation --skip-columns=guid
  5. En un navegador web, introduce la nueva URL del sitio de tu WordPress blog para comprobar que el sitio vuelve a funcionar correctamente. Si no es así, consulte Cambiar la URL del sitio y Problemas comunes de instalación para obtener más información.