Creamos una instancia de Ubuntu 18.04 en EC2 con asignación de IP pública.
Abrimos el tráfico HTTP a su security group.
Nos conectamos a la instancia.
Instalamos apache2
sudo apt-get install apache2
Instalamos WordPress
sudo apt-get install wordpress
Creamos un enlace simbólico para que el apache2 encuentre
sudo ln -s /usr/share/wordpress /var/www/html/wordpress
Configuramos WordPress
En /etc/apache2/sites-available/ creamos el fichero wordpress.conf con el contenido:
Alias /blog /usr/share/wordpress <Directory /usr/share/wordpress> Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Order allow,deny Allow from all </Directory> <Directory /usr/share/wordpress/wp-content> Options FollowSymLinks Order allow,deny Allow from all </Directory>
En /etc/wordpress creamos el fichero config-<dns-de-la-instancia-ec2>.php con el contenido:
<?php define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'la-contraseña-de-DB_USER'); define('DB_HOST', 'dns-de-la-instancia-rds-de-mysql'); define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content'); ?>
Creamos una instancia MySQL en RDS
Abrimos el tráfico en su security group al security group de la instancia EC2 por el puerto 3306
Desde nuestra máquina Ubuntu en EC2 podemos conectarnos a la instancia MySQL
mysql -h <dns-de-la-instancia> -u <usuario-maestro> -p Password
Y creamos el usuario y la base de datos de wordpress tal y como lo habíamos configurado
CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password'; CREATE DATABASE `wordpress-db`; GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost"; FLUSH PRIVILEGES; exit
Ahora ya podemos finalizar la instalación en un navegador accediendo a la URL: http://<dns-de-la-instancia-ec2>/blog/wp-install
Actualización de plugins, temas, traducciones…
Instalamos servidor FTP
sudo apt-get install vsftpd
Creamos un usuario:
sudo useradd -m ftpuser
Establecemos la contraseña con el comando:
sudo passwd ftpuser
Configuramos el servidor:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
Añadir lo siguiente al final de fichero /etc/vsftpd.conf
pasv_enable=YES pasv_min_port=13000 pasv_max_port=13100 port_enable=YES pasv_address=[public dns from the amazon EC2 instance] pasv_addr_resolve=YES
Modificamos las siguientes lineas:
# Uncomment this to enable any form of FTP write command. write_enable=YES # Uncomment this to allow local users to log in. local_enable=YES
Arrancamos y activamos el servicio:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
Añadimos dos reglas al security group de la instancia EC2:
TCP 20-21 TCP 13000-13100
Filezilla al conectar indicamos servidor Unix y modo de transferencia pasivo.
El usuario de apache como dueño de los ficheros
sudo chown -R www-data:www-data /usr/share/wordpress/ sudo chown -R www-data:www-data /var/www/html/