# asixcloud2024 - wordpress amb RDS
[TOC]
## links
[wordpress tutorial - en una única instància!!](https://ubuntu.com/tutorials/install-and-configure-wordpress#1-overview)
## infraestructura
- vpc amb 2 AZ
- 2 subnets públiques i 2 de privades
- sg frontal (80, 22) from *
- sg rds (3306) from frontal-sg
- igw
- 1 nat ?? la necessitaràs ??
## RDS
- 1er creació del subnet group (conjunt de AZ on se crearan les instàncies per allotjar el SSGGBBDD (mysql))
- crear el gestor de bbdd (mysql) desactivant tot allò que siga innecessari per a una simple demo.
- **NO CREAR LA BBDD** de wordpress (al final del procés) per poder crear-la via script.
## back-end setup (des de la ***ec2 pública***)
- creació de la base de dades
```
tee crea-wordpress-db.sql <<EOF
CREATE DATABASE wordpressdb01;
CREATE USER 'asix01'@'%' IDENTIFIED BY 'Sup3rins3gura!';
GRANT ALL PRIVILEGES ON wordpressdb01.* TO 'asix01'@'%';
FLUSH PRIVILEGES;
exit
EOF
## compte que ara no estem "dintre" de la instància i per tant ens cal indicar ON està ( -h)
cat crea-wordpress-db.sql | sudo mysql -u admin -pUltr4ins3gur4! -h <ssggbbdd.end.point>
## aquestes dues instruccions ja no ens calen doncs no tenim accés ssh a la RDS (afortunadament!!)
#sudo sed -i '/addre/s|127.0.0.1|0.0.0.0|' /etc/mysql/mysql.conf.d/mysqld.cnf
#sudo systemctl restart mysql.service
```
## front-end setup (des de la pròpia ec2 pública)
- instal·lació de programari
```bash
sudo apt update
sudo apt install -y apache2 \
ghostscript \
libapache2-mod-php \
mysql-client \
php \
php-bcmath \
php-curl \
php-imagick \
php-intl \
php-json \
php-mbstring \
php-mysql \
php-xml \
php-zip
```
- descàrrega del CMS (wordpress)
```
sudo mkdir -p /srv/www
sudo chown www-data: /srv/www
curl https://wordpress.org/latest.tar.gz | sudo -u www-data tar zx -C /srv/www
```
- creació web (virtual host a apache)
```
sudo tee /etc/apache2/sites-available/wordpress.conf << EOF
<VirtualHost *:80>
DocumentRoot /srv/www/wordpress
<Directory /srv/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /srv/www/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
EOF
```
- activació mòduls apache
```
sudo a2ensite wordpress
sudo a2enmod rewrite
sudo a2dissite 000-default
sudo service apache2 reload
```
- creació del fitxer de configuració de wordpress
```
sudo -u www-data cp /srv/www/wordpress/wp-config-sample.php /srv/www/wordpress/wp-config.php
```
...AMB LES DADES DE LA EC2 privada (mysql)
- configuració de wordpress
```
sudo -u www-data sed -i 's/database_name_here/wordpressdb01/' /srv/www/wordpress/wp-config.php
sudo -u www-data sed -i 's/username_here/asix01/' /srv/www/wordpress/wp-config.php
sudo -u www-data sed -i 's/password_here/Sup3rins3gura!/' /srv/www/wordpress/wp-config.php
sudo -u www-data sed -i 's/localhost/posa_ací_l_end_point/' /srv/www/wordpress/wp-config.php
```