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: Alojar un blog de WordPress en AL2023
El procedimiento siguiente ayuda a instalar, configurar y asegurar un blog de WordPress en la instancia de AL2023. Este tutorial es una buena introducción al uso de Amazon EC2 porque tendrá control total de un servidor web que aloja el blog de WordPress, algo que no es habitual con un servicio de hosting tradicional.
Es responsable de actualizar los paquetes de software y de mantener los parches de seguridad del servidor. Para llevar a cabo una instalación más automatizada de WordPress que no requiera interacción directa con la configuración del servidor web, el servicio CloudFormation ofrece una plantilla de WordPress que también puede usar para no perder tiempo. 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 desacoplada, consulte Implementación de sitio web de WordPress de alta disponibilidad en la Guía para desarrolladores de AWS Elastic Beanstalk.
importante
Estos procedimientos son para usar con AL2023. Para obtener 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 para instalar WordPress en una instancia de Ubuntu, consulte WordPress
Temas
Requisitos previos
Recomendamos que asocie una dirección IP elástica (EIP) a la instancia que está usando para alojar un blog de 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 usuario de Amazon EC2. En el tutorial Tutorial: Install a LAMP server on AL2023 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 establecidos de forma correcta 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.
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.
Instalación de WordPress
Conecte la instancia y descargue el paquete de instalación de WordPress. Para obtener más información sobre cómo conectarse a la instancia, consulte Conexión a 023 instancias AL2.
-
Descargue e instale estos paquetes con el siguiente comando.
dnf install wget php-mysqlnd httpd php-fpm php-mysqli mariadb105-server php-json php php-devel -y -
Es posible que aparezca una advertencia con un texto similar en la salida (las versiones pueden variar con el tiempo):
WARNING: A newer release of "Amazon Linux" is available. Available Versions: dnf upgrade --releasever=2023.0.20230202 Release notes: https://aws.amazon.com Version 2023.0.20230204: Run the following command to update to 2023.0.20230204: dnf upgrade --releasever=2023.0.20230204 ... etcComo práctica recomendada, sugerimos mantener el sistema operativo lo más actualizado posible. Sin embargo, es posible que desee probar cada versión para asegurarse de que no haya conflictos en su entorno. Si se produce un error en la instalación de los paquetes anteriores indicados en el paso 1, es posible que deba actualizarse a una de las versiones más recientes enumeradas y volver a intentarlo.
-
Descargue el último paquete de instalación de WordPress con el comando wget. El comando siguiente debería descargar siempre la última versión.
[ec2-user ~]$wget https://wordpress.org/latest.tar.gz -
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 un usuario de base de datos y una base de datos para la instalación de WordPress
La instalación de WordPress necesita almacenar información, como las publicaciones en el 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.
-
Inicie la base de datos y el servidor web.
[ec2-user ~]$sudo systemctl start mariadb httpd -
Inicie sesión en el servidor de base de datos como el usuario
root. Escriba la contraseñarootde la base de datos cuando se lo pidan. Esta contraseña puede ser diferente de la contraseñarootdel 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 Paso 3: Proteger el servidor de base de datos (AL2023).
[ec2-user ~]$mysql -u root -p -
Cree un usuario y una contraseña para la base de datos MySQL. La instalación de WordPress usa estos valores para comunicarse con la base de datos MySQL. Escriba el comando siguiente sustituyendo un nombre de usuario y contraseña únicos.
CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';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.
-
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 teclaTaben 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`; -
Conceda privilegios completos para la base de datos al usuario de WordPress que ha creado antes.
GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost"; -
Vacíe los privilegios de base de datos para recoger todos los cambios.
FLUSH PRIVILEGES; -
Salga del cliente de
mysql.exit
Para crear y modificar el archivo wp-config.php
La carpeta de instalación de WordPress contiene un archivo de configuración de ejemplo llamado wp-config-sample.php. En este procedimiento, va a copiar este archivo y a modificarlo para ajustarlo a su configuración específica.
-
Copie el archivo
wp-config-sample.phpen un archivo llamadowp-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 -
Modifique el archivo
wp-config.phpcon el editor de texto favorito (por ejemplo nano o vim) y escriba los valores de la instalación. Si no tiene un editor favorito,nanoes más adecuado para principiantes.[ec2-user ~]$nano wordpress/wp-config.php-
Busque la línea que define
DB_NAMEy cambiedatabase_name_herepor el nombre de la base de datos que ha creado en Paso 4 de Para crear un usuario de base de datos y una base de datos para la instalación de WordPress.define('DB_NAME', 'wordpress-db'); -
Busque la línea que define
DB_USERy cambieusername_herepor el usuario de la base de datos que ha creado en Paso 3 de Para crear un usuario de base de datos y una base de datos para la instalación de WordPress.define('DB_USER', 'wordpress-user'); -
Busque la línea que define
DB_PASSWORDy cambiepassword_herepor la contraseña fuerte que ha creado en Paso 3 de Para crear un usuario de base de datos y una base de datos para la instalación de WordPress.define('DB_PASSWORD', 'your_strong_password'); -
Busque la sección denominada
Authentication Unique Keys and Salts. Estos valoresKEYySALTofrecen una capa de cifrado a las cookies del explorador que los usuarios de WordPress almacenan en sus equipos 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 de claves que pueda copiar y pegar en el archivo wp-config.php. 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.Parar obtener más información sobre claves de seguridad, visite 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'); -
Guarde el archivo y salga del editor de texto.
-
Para instalar archivos de WordPress bajo la raíz de documentos Apache
-
Una vez descomprimida la carpeta de instalación, creada la base de datos MySQL y un usuario, y personalizado el archivo de configuración de WordPress, ya puede copiar los archivos de instalación en la raíz de documentos del servidor web para ejecutar el script de instalación que completa la instalación. La ubicación de estos archivos depende de si quiere que el blog de WordPress esté disponible en la raíz real del servidor web (por ejemplo,
) o en un subdirectorio o carpeta bajo la raíz (por ejemplo,my.public.dns.amazonaws.com).my.public.dns.amazonaws.com/blog-
Si desea que WordPress se ejecute en la raíz de documentos, copie el contenido del directorio de instalación de WordPress (pero no el directorio propiamente) como sigue:
[ec2-user ~]$cp -r wordpress/* /var/www/html/ -
Si desea que WordPress se ejecute en un directorio alternativo bajo la raíz de documentos, cree primero el directorio y después copie los archivos. En este ejemplo, WordPress se ejecutará desde el directorio
blog:[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. Después de mover la instalación bajo la raíz de documentos Apache, el script de instalación de WordPress queda desprotegido y un atacante podría obtener acceso al blog si el servidor web Apache estuviera en ejecución. Para detener el servidor web Apache, escriba el comando sudo service
httpd stop. Si pasa al siguiente procedimiento, no es preciso que pare el servidor web Apache.
Para permitir que WordPress use enlaces permanentes
Los enlaces permanentes de WordPress necesitan usar archivos .htaccess de Apache para funcionar correctamente, pero esto no está habilitado de manera predeterminada en Amazon Linux. Use este procedimiento para permitir todas las anulaciones en la raíz de documentos de Apache.
-
Abra el archivo
httpd.confcon el editor de textos que prefiera (como nano o vim). Si no tiene un editor favorito,nanoes más adecuado para principiantes.[ec2-user ~]$sudo vim /etc/httpd/conf/httpd.conf -
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 # AllowOverrideNone# # Controls who can get stuff from this server. # Require all granted </Directory> -
Cambie la línea
AllowOverride Nonede la sección anterior porAllowOverride.Allnota
Hay múltiples líneas
AllowOverrideen este archivo; asegúrese de que cambia la línea de la sección<Directory "/var/www/html">.AllowOverrideAll -
Guarde el archivo y salga del editor de texto.
Para instalar la biblioteca de dibujo de gráficos de PHP en AL2023
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 de phpMyAdmin que instale puede requerir una versión mínima específica de esta biblioteca (por ejemplo, la versión 8.1).
Utilice el siguiente comando para instalar la biblioteca de dibujo de gráficos de PHP en AL2023. Por ejemplo, si instaló php8.1 desde el origen como parte de la instalación de la pila LAMP, este comando instala la versión 8.1 de la biblioteca de dibujo de gráficos de PHP.
[ec2-user ~]$sudo dnf install php-gd
Para verificar la versión instalada, utilice el siguiente comando:
[ec2-user ~]$sudo dnf list installed | grep php-gd
A continuación, se muestra un ejemplo del resultado:
php-gd.x86_64 8.1.30-1.amzn2 @amazonlinux
Para instalar la biblioteca de dibujo de gráficos de PHP en la Amazon Linux AMI
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 de phpMyAdmin que instale puede requerir una versión mínima específica de esta biblioteca (por ejemplo, la versión 8.1).
Para comprobar qué versiones están disponibles, utilice el siguiente comando:
[ec2-user ~]$dnf list | grep php
A continuación, se incluyen líneas de ejemplo de la salida de la biblioteca de dibujo de gráficos de PHP (versión 8.1):
php8.1.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-cli.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-common.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-devel.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-fpm.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-gd.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux
Utilice el siguiente comando para instalar una versión específica de la biblioteca de dibujo de gráficos de PHP (por ejemplo, la versión php8.1) en la AMI de Amazon Linux:
[ec2-user ~]$sudo dnf install -y php8.1-gd
Para ajustar los permisos de archivo para el servidor web Apache
Algunas de las características disponibles en WordPress (por ejemplo, cargar medios a través de las pantallas de administración) requieren acceso de escritura a la raíz de documentos de Apache. Si todavía no lo ha hecho, aplique los siguientes permisos y suscripciones de grupo (como se describe detalladamente en el tutorial del servidor web LAMP).
-
Otorgue la propiedad de archivos de
/var/wwwy su contenido al usuarioapache.[ec2-user ~]$sudo chown -R apache /var/www -
Otorgue la propiedad de grupo de
/var/wwwy su contenido al grupoapache.[ec2-user ~]$sudo chgrp -R apache /var/www -
Cambie los permisos del directorio
/var/wwwy 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 {} \; -
Cambie de forma recursiva los permisos de archivo de
/var/wwwy sus subdirectorios.[ec2-user ~]$find /var/www -type f -exec sudo chmod 0644 {} \;nota
Si tiene la intención de utilizar WordPress también como servidor FTP, necesitará una configuración de grupo más permisiva aquí. Para conseguirlo, revise las recomendaciones sobre pasos y configuración de seguridad en WordPress
. -
Reinicie el servidor web Apache para recoger el grupo y los permisos nuevos.
[ec2-user ~]$sudo systemctl restart httpd
Para ejecutar el script de instalación de WordPress con AL2023
Ahora está listo para instalar WordPress. Los comandos que utilice dependen del sistema operativo. Los comandos de este procedimiento son para utilizarlos con AL2023. Utilice el procedimiento que sigue a este con la AMI de AL2023.
-
Use el comando systemctl para asegurarse de que se inician los servicios
httpdy de base de datos cada vez que se arranca el sistema.[ec2-user ~]$sudo systemctl enable httpd && sudo systemctl enable mariadb -
Verifique que el servidor de base de datos se está ejecutando.
[ec2-user ~]$sudo systemctl status mariadbSi el servicio de base de datos no se está ejecutando, inícielo.
[ec2-user ~]$sudo systemctl start mariadb -
Verifique que el servidor web Apache (
httpd) se está ejecutando.[ec2-user ~]$sudo systemctl status httpdSi el servicio
httpdno se está ejecutando, inícielo.[ec2-user ~]$sudo systemctl start httpd -
En un navegador web, escriba la URL del blog WordPress (bien como dirección DNS pública para la instancia, o bien esa dirección seguida de la carpeta
blog). Debería ver el script de instalación de WordPress. Proporcione la información requerida por la instalación de WordPress. Seleccione Install WordPress para completar la instalación. Para obtener más información, consulte Paso 5: Ejecutar el script de instalaciónen el sitio web de WordPress.
Para ejecutar el script de instalación de WordPress con la AMI de AL2023
-
Use el comando chkconfig para asegurarse de que se inician los servicios
httpdy de base de datos cada vez que se arranca el sistema.[ec2-user ~]$sudo chkconfig httpd on && sudo chkconfig mariadb on -
Verifique que el servidor de base de datos se está ejecutando.
[ec2-user ~]$sudo service mariadb statusSi el servicio de base de datos no se está ejecutando, inícielo.
[ec2-user ~]$sudo service mariadb start -
Verifique que el servidor web Apache (
httpd) se está ejecutando.[ec2-user ~]$sudo service httpd statusSi el servicio
httpdno se está ejecutando, inícielo.[ec2-user ~]$sudo service httpd start -
En un navegador web, escriba la URL del blog WordPress (bien como dirección DNS pública para la instancia, o bien esa dirección seguida de la carpeta
blog). Debería ver el script de instalación de WordPress. Proporcione la información requerida por la instalación de WordPress. Seleccione Install WordPress para completar la instalación. Para obtener más información, consulte Paso 5: Ejecutar el script de instalaciónen el sitio web de WordPress.
Pasos siguientes
Una vez probado el blog de WordPress, considere actualizar su configuración.
Uso de un nombre de dominio personalizado
Si tiene un nombre de dominio asociado con la dirección EIP de la instancia de EC2, puede configurar el blog para que use ese nombre en lugar de la dirección DNS pública de EC2. Para obtener más información, consulte Cambiar la URL del sitio
Configuración del blog
Puede configurar el blog para usar distintos temas
Aumentar la capacidad
Si el blog de WordPress llega a hacerse popular y necesita más potencia de cómputo o almacenamiento, considere los pasos siguientes:
-
Ampliar el espacio de almacenamiento de la instancia. Para obtener más información, consulte Volúmenes elásticos 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
Más información sobre WordPress
Los siguientes enlaces contienen más información sobre WordPress.
-
Para obtener más información acerca de WordPress, consulte la documentación de ayuda de WordPress Codex en Codex
. -
Para obtener más información acerca de la solución de problemas de la instalación, consulte Problemas de instalación comunes
. -
Para obtener más información acerca de cómo aumentar la seguridad del blog de WordPress, visite la página sobre el endurecimiento de WordPress
. -
Para obtener más información acerca de cómo mantener el blog de WordPress actualizado, visite la página sobre actualización de WordPress
.
Ayuda Ha cambiado el nombre DNS público y ahora el blog se ha roto
La instalación de WordPress se configura automáticamente usando la dirección DNS pública de la instancia de EC2. Si detiene y reinicia la instancia, la dirección DNS pública cambia (salvo que está asociada a una dirección IP elástica) y el blog no funcionará porque hace referencia a los recursos de una dirección que ya no existe (o que se ha asignado a otra instancia de EC2). Para ver una descripción más detallada del problema y varias soluciones posibles, visite https://wordpress.org/support/article/changing-the-site-url/
Si ha sucedido esto con la instalación de WordPress, podrá recuperar el blog mediante el procedimiento siguiente, que usa la interfaz de línea de comandos wp-cli para WordPress.
Para cambiar la URL del sitio de WordPress con la wp-cli
-
Conéctese a la instancia de EC2 con SSH.
-
Anote la URL del sitio anterior y la URL del sitio nuevo para la instancia. La URL del sitio anterior probablemente sea el nombre DNS público de la instancia EC2 cuando instaló WordPress. La URL del sitio nuevo es el nombre DNS público actual de la instancia de EC2. 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-contentDeberí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> -
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 -
Busque y remplace la URL del sitio anterior en la instalación de WordPress por el comando siguiente. Sustituya las URL del sitio anterior y del nuevo para la instancia de EC2 y la ruta de instalación de WordPress (normalmente
/var/www/htmlo/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 -
En un explorador web, escriba la URL del nuevo sitio del blog de WordPress para verificar que el sitio funciona correctamente de nuevo. Si no es así, consulte Cambiar la URL del sitio
y Problemas comunes de instalación para obtener más información.