GNU/Linux >> Tutoriales Linux >  >> Linux

Configurar un sitio web de WordPress con equilibrio de carga en AWS EC2 – Parte 1

Configure un sitio web de WordPress con equilibrio de carga en AWS EC2. Aprenda a configurar su aplicación de WordPress para manejar un alto tráfico con capacidades de escalado automático en AWS con Elastic Load Balancing.

En esta guía completa, instalará WordPress, configurará su sitio web para usar AWS S3 para archivos multimedia, creará una imagen de máquina de Amazon, configurará una plantilla, creará una configuración de lanzamiento, configurará un grupo de escalado automático para administrar el tráfico en vivo y configurará RDS para su base de datos.

Requisitos

  • Una instancia EC2 en ejecución. Aprenda a crear una instancia de AWS EC2. Puede elegir Ubuntu 20.04 LTS o más reciente.
  • Asigne una IP elástica a su instancia EC2.
  • Configure Amazon RDS y conéctelo con la instancia EC2.
  • Configure AWS Route 53 para su nombre de dominio.

Si tiene todos los requisitos previos requeridos mencionados anteriormente, puede continuar con la configuración de Elastic Load Balancing.

Asegúrese de haber agregado el grupo de seguridad de su instancia EC2 al grupo de seguridad de RDS para una conexión exitosa de EC2 a RDS.

Configuración inicial del servidor

SSH a la instancia de VM y comience actualizando y actualizando los paquetes.

sudo apt update
sudo apt upgrade

Instalar Apache2 para WordPress

Instale Apache2 usando el siguiente comando.

sudo apt install apache2

Esto instalará apache2 y todas las dependencias requeridas.

Configurar cortafuegos

Ahora puede configurar un cortafuegos sin complicaciones (UFW) con Apache para permitir el acceso público a los puertos web predeterminados para HTTP , HTTPS y SSH

sudo ufw app list

Verá todas las aplicaciones enumeradas.

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
  • Apache :Este perfil abre el puerto 80 (tráfico web normal, sin cifrar)
  • Apache completo :Este perfil abre ambos puertos 80 (tráfico web normal, sin cifrar) y puerto 443 (tráfico cifrado con TLS/SSL)
  • Apache seguro :Este perfil abre solo el puerto 443 (tráfico cifrado con TLS/SSL)
  • Abrir SSH :Este perfil abre el puerto 22 para acceso SSH.

Ahora habilitaremos Apache Full.

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

Habilite UFW usando el siguiente comando

sudo ufw enable

Instalar PHP 8 y ​​Extensiones

Añade el ondrej/php que tiene el paquete PHP 8 y ​​otras extensiones PHP requeridas.

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Una vez que haya agregado el PPA, puede instalar PHP 8.

sudo apt install php8.0 libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl php8.0-bcmath unzip mariadb-client -y

Configurar PHP 8

Ahora configuramos PHP para Aplicaciones Web cambiando algunos valores en php.ini archivo.

Para PHP 8 con Apache el php.ini la ubicación estará en el siguiente directorio.

sudo nano /etc/php/8.0/apache2/php.ini

Presiona F6 para buscar dentro del editor y actualizar los siguientes valores para un mejor rendimiento.

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

Una vez que haya instalado y configurado su configuración de PHP, debe reiniciar su Apache para que los cambios surtan efecto.

sudo service apache2 restart

Configurar directorios de sitios web

Una vez que haya instalado PHP 8 y ​​Apache, puede continuar con los directorios de configuración.

Su sitio web se ubicará en el directorio de inicio y tendrá la siguiente estructura.

Reemplazar yourdomainname con su nombre de dominio original sin la extensión.

/var/www/html/
 -- yourdomainname
 ---- public

El public El directorio es el directorio raíz de su sitio web.

Ahora creamos estos directorios y establecemos los permisos correctos

Debe acceder a su instancia de VM mediante SSH y ejecutar estos comandos

mkdir -p /var/www/html/yourdomainname/public
sudo chmod -R 755 /var/www/html/yourdomainname
sudo chown -R www-data:www-data /var/www/html/yourdomainname

Configurar servidores virtuales para WordPress

Cree un nuevo archivo de configuración para su sitio web en el sites-available directorio.

sudo nano /etc/apache2/sites-available/yourdomainname.conf

Copie y pegue la siguiente configuración, asegúrese de cambiar las directivas server_name, error_log y root para que coincidan con su nombre de dominio. Presiona CTRL+X seguido de Y para guardar los cambios.

<VirtualHost *:80>
      ServerAdmin [email protected]
      ServerName www.yourdomainname.com
      ServerAlias yourdomainname.com

      DocumentRoot /var/www/html/yourdomainname/public

      <Directory /var/www/html/yourdomainname/public>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
      </Directory>

      <Directory /usr/share/phpmyadmin>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/yourdomainname.com_error.log
      CustomLog ${APACHE_LOG_DIR}/yourdomainname.com_access.log combined
</VirtualHost>

Para habilitar esta configuración de sitio web recién creada, enlace simbólico el archivo que acaba de crear en el sites-enabled directorio.

sudo a2ensite yourdomainname.conf

Verifique su configuración y reinicie Apache para que los cambios surtan efecto

sudo systemctl restart apache2

Instalar PhpMyAdmin (Opcional)

Ahora puede instalar PhpMyAdmin, que lo ayuda a crear una base de datos y asignarle un usuario de una manera fácil de usar.

Descargue PhpMyAdmin y configúrelo usando los siguientes comandos.

sudo wget -P /usr/share https://files.phpmyadmin.net/phpMyAdmin/5.1/phpMyAdmin-5.1-all-languages.zip
sudo unzip /usr/share/phpMyAdmin-5.1-all-languages.zip -d /usr/share
sudo mv /usr/share/phpMyAdmin-5.1-all-languages /usr/share/phpmyadmin
sudo rm -f /usr/share/phpMyAdmin-5.1-all-languages.zip
sudo mkdir /usr/share/phpmyadmin/tmp
sudo chmod -R 777 /usr/share/phpmyadmin/tmp
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Edite el config.inc.php archivo

sudo nano /usr/share/phpmyadmin/config.inc.php

Agregue lo siguiente debajo del /* Authentication type */ .

$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'RDS_DATABASE_ENDPOINT';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['verbose'] = 'Amazon RDS';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['TempDir'] = '/usr/share/phpmyadmin/tmp';

Introduce el secreto del pez globo.

$cfg['blowfish_secret'] = 'Some_Secret_Password_54_characters';

Presiona CTRL+X seguido de Y y ENTER para guardar y salir del archivo.

Crear base de datos

Ahora puede iniciar sesión en su instancia de RDS con PhpMyAdmin (http://yourdomainname.com/phpmyadmin ) con el nombre de usuario y la contraseña maestros que configuró al crear la instancia.

Cree una nueva base de datos y un usuario asociado con esa base de datos.

Descargar WordPress

Ahora que nuestro software de servidor está configurado, podemos descargar e instalar WordPress.

Siempre se recomienda obtener la última versión de WordPress de su sitio web.

cd /var/www/html/yourdomainname/public
curl -LO https://wordpress.org/latest.tar.gz

Una vez que se descarga WordPress, debe extraerlo con el siguiente comando.

sudo tar xzvf latest.tar.gz

Ahora, puede copiar todo el contenido del directorio en nuestra raíz de documentos.

sudo cp -a /var/www/html/yourdomainname/public/wordpress/. var/www/html/yourdomainname/public

A continuación, limpie su directorio raíz eliminando el wordpress carpeta y el tar descargado archivo.

sudo rm -r /var/www/html/yourdomainname/public/wordpress
sudo rm -f /var/www/html/yourdomainname/public/latest.tar.gz 

Configure los permisos correctos para la carpeta raíz. No olvides reemplazar el yourdomainname con tu nombre de dominio usaste.

sudo chmod -R 755 /var/www/html/yourdomainname
sudo chown -R www-data:www-data /var/www/html/yourdomainname

Instalar WordPress

Ahora visite su sitio web en el navegador y seleccione el idioma que le gustaría usar y haga clic en continuar.

Se le pedirá que ingrese su database , user , password y hostname .

Introduce el nombre de la base de datos que creó usando PhpMyAdmin y el usuario asignado a la base de datos con la contraseña. Finalmente, ingrese el punto final de RDS como el nombre de host .

Ahora puede ejecutar la instalación.

Una vez que se completa la instalación, debemos configurar el método que debe usar WordPress para escribir en el sistema de archivos. Dado que le hemos dado permiso al servidor web para escribir donde lo necesita, podemos configurar explícitamente el método del sistema de archivos como "directo". Si no establecemos esto con nuestra configuración actual, WordPress solicitará las credenciales de FTP cuando realicemos algunas acciones como actualización de WordPress, actualizaciones de complementos, carga de archivos, etc. Esta configuración se puede agregar debajo de la configuración de conexión de la base de datos en el archivo de configuración.

sudo nano /var/www/html/yourdomainname/public/wp-config.php

Encuentra la línea define('DB_PASSWORD', 'password'); y pegue la siguiente línea debajo.

define('FS_METHOD', 'direct');

Presiona Ctrl+X y Y para guardar su archivo de configuración.

Conviértase en un profesional certificado de AWS con este curso fácil de aprender ahora.

Eso es para la parte 1. Ahora ha creado una Instancia en EC2 y RDS e instaló WordPress.

En la siguiente parte, puede configurar AWS S3, configurar WordPress para usar S3 para la biblioteca de medios, solicitar SSL administrado por AWS, crear un balanceador de carga, un grupo de escalado automático y apuntar su dominio al balanceador de carga.

Puede ver la siguiente parte de este tutorial completo aquí.


Linux
  1. Cómo lanzar una instancia AWS EC2 usando Terraform

  2. Cómo configurar el enrutamiento basado en host en el balanceador de carga de aplicaciones de AWS

  3. Cree una instancia EC2 en AWS usando Terraform

  4. Cómo instalar VSFTP en Ubuntu 20.04

  5. AWS EC2 - No queda espacio en el dispositivo

Cómo instalar Lighttpd para alojar un sitio web en RHEL 8

Cómo cambiar el nombre del sitio web en WordPress

Cómo hacer una copia de seguridad y restaurar un sitio web de WordPress

Configurar un sitio web de WordPress con equilibrio de carga en AWS EC2 - Parte 2

Cómo instalar y configurar Sendmail en Ubuntu

Cómo configurar su primer sitio web de WordPress