Esta practica es una continuación de la practica 1.6
En primer lugar copiaremos los siguientes archivos del ejercicio anterior y crearemos los siguientes archivos: deploy_wordpress_with_wpcl.sh
├── conf/
│ └── 000-default.conf
├── htaccess/
│ └── .htaccess
├── php/
│ └── index.php
├── script/
│ ├── .env
│ ├── .env.ejemplo
│ ├── deploy_wordpress_own_directory.sh
│ ├── deploy_wordpress_root_directory.sh
│ ├── deploy_wordpress_with_wpcl.sh
│ ├── install_lamp.sh
│ └── setup_letsencrypt_https.sh
├── .gitignore
└── README.md
Para comenzar pondremos la misma estructura inicial de todos los script, después de esto eliminaremos los archivos temporales para posteriormente descargar Wp-cli
rm -rf /tmp/wp-cli.phar*
Comenzamos con la descarga de WordPress con la utilidad de Wp-Cli, esto se descargara en los archivos temporales
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -P /tmp
Para poder ejecutar WordPress cli debemos de darle permisos de ejecución mediante chmod +x /tmp/wp-cli.phar
Para ejecutarlo solo llamando al nombre debemos de moverlo a /usr/local/bin/wp, de esta forma llamamos a wp y no a la ruta
mv /tmp/wp-cli.phar /usr/local/bin/wp
En primer lugar eliminaremos los archivos que se encuentren en /var/www/html para que no aya conflicto al descargar el código fuente de WordPress
rm -rf /var/www/html/*
Posteriormente descargaremos el código de este mediante eñl comando wp que emos descargado y configurado anteriormente
wp core download --locale=es_ES --path=/var/www/html --allow-root
Para poder realizar la instalación de WordPress debemos de crear una base de datos con un usuario para esta,ademas debemos de añadir en el .env las siguientes variables:
- WORDPRESS_DB_NAME
- WORDPRESS_DB_USER
- WORDPRESS_DB_PASSWORD
- IP_CLIENTE_MYSQL, este sera localhost
mysql -u root <<< "DROP DATABASE IF EXISTS $WORDPRESS_DB_NAME"
mysql -u root <<< "CREATE DATABASE $WORDPRESS_DB_NAME"
mysql -u root <<< "DROP USER IF EXISTS $WORDPRESS_DB_USER@$IP_CLIENTE_MYSQL"
mysql -u root <<< "CREATE USER $WORDPRESS_DB_USER@$IP_CLIENTE_MYSQL IDENTIFIED BY '$WORDPRESS_DB_PASSWORD'"
mysql -u root <<< "GRANT ALL PRIVILEGES ON $WORDPRESS_DB_NAME.* TO $WORDPRESS_DB_USER@$IP_CLIENTE_MYSQL"
Una vez que creamos la base de datos, configuramos WordPress mediante wp de la siguiente forma, para esto necesitaremos añadir en el .env la siguiente variable:
- WORDPRESS_DB_HOST, que sera localhost
wp config create \
--dbname=$WORDPRESS_DB_NAME \
--dbuser=$WORDPRESS_DB_USER \
--dbpass=$WORDPRESS_DB_PASSWORD \
--dbhost=$WORDPRESS_DB_HOST \
--path=/var/www/html \
--allow-root
Para automatizar la instalación de WordPress utilizaremos el comando wp, aquí configuraremos los datos de el administrador de este, el titulo entre otras cosas.
Antes de añadir este comando añadiremos al .env las siguientes variables:
- LE_DOMAIN, este lo debemos de tener anteriormente ya que lo emos utilizado para Les`t Encrypt
- WORDPRESS_TITLE
- WORDPRESS_ADMIN_USER
- WORDPRESS_ADMIN_PASSWORD
- WORDPRESS_ADMIN_EMAIL
wp core install \
--url=$LE_DOMAIN \
--title="$WORDPRESS_TITLE"\
--admin_user=$WORDPRESS_ADMIN_USER \
--admin_password=$WORDPRESS_ADMIN_PASSWORD \
--admin_email=$WORDPRESS_ADMIN_EMAIL \
--path=/var/www/html \
--allow-root
Con esto ya podemos entrar a nuestro dominio y nos aparecerá una pagina de ejemplo de WordPress
Este es una forma de apuntar al contenido de una web, con esto aremos que con el nombre de la pagina nos redirection al archivo deseado, de esta forma mejora el SEO entre otras cosas
En primer lugar reescribiremos la estructura de este para que ocurra la redirection
wp rewrite structure '/%postname%/' \
--path=/var/www/html \
--allow-root
Posteriormente debemos de configurar el archivo .htaccess para que ocurra la redirection de forma correcta, sin esto no sera posible redirection a la pagina correcta
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Ademas debemos de copiar este archivo en /var/www/html
cp ../htaccess/.htaccess /var/www/html
Para esto instaremos un tema y un plugin y lo activaremos
El tema que instalaremos es mindscape, esto lo lograremos con el siguiente comando
wp theme install mindscape --activate --path=/var/www/html --allow-root
Ademas instalaremos un plugin llamado wps-hide-login que nos permite ocultar la ruta de administración cambiándola de nombre, ya que por defecto es /wp-admin
wp plugin install wps-hide-login --activate --path=/var/www/html --allow-root
Ademas debemos de configurar la ruta que queremos que sea de administrador, esto lo lograremos mediante el siguiente comando, para que este funcione debemos de añadir en el .env
la variable WHP_PAGE
que sera el nuevo nombre de la ruta de administración
wp option update whl_page "$WHP_PAGE" --path=/var/www/html --allow-root
Debemos de cambiar e propietario de WordPress ya que si no, cada vez que queramos modificar algo, instalar o activar algo nos pedirá el usuario root
chown -R www-data:www-data /var/www/html