Continuando con la serie de artículos para la creación de un servidor gratis de AWS hasta configurar un wordpress, hoy traemos la segunda parte, en esta aprenderemos como instalar Wordpress y preparación de su base de datos en Mysql.
Al final de los artículos terminaremos con un ejemplo, mi sitio nathzg que será mi página para poner los trabajos que hago y mi CV.
Debemos tener ya listo el servidor en AWS, apache instalado y funcionando y tener conexión por ssh, como se explicó en el articulo anterior
Para poder tener un CMS en wordpress debemos definir donde se alojaran los datos de nuestra página, para esto utilizaremos la base de datos MySQL, procedamos a instalar:
Asumimos que ya saben conectarse al servidor, y procedemos a utilizar el gestor de paquetes de ubuntu apt con los siguientes comandos:
sudo apt-get update
sudo apt-get install mysql-server
El proceso nos pedira ponerle una clave al root del mysql asi que procedemos a poner nuestra clave (recuerden guardarla para la creación de la base de datos):
Con esto ya tenemos instalado el servidor, pero sin ninguna base de datos creada para nuestro wordpress, eso lo veremos más abajo.
Php es un elemento escencial para la instalación de nuestro wordpress, este nos permiten la comunicación entre nuestro wordpress y la base de datos en mysql, para instalarlo procedemos a utilizar el gestor de aplicaciones de ubuntu.
Primero que debemos hacer como siempre que instalamos algo y es actualizar los repositorios de nuestra distribución y de paso todas las actualizaciones disponibles:
sudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get -y upgrade
Una vez todo actualizado podemos ver la lista de todos los paquetes disponibles de php7 con el siguiente comando:
apt-cache pkgnames | grep php7.2
Ahora procedemos a instalar el php, con el siguiente comando:
sudo apt-get install -y php7.2 php7.2-cli php7.2-common php7.2-mbstring php7.2-intl php7.2-xml php7.2-mysql libapache2-mod-php7.2 php-mcrypt
después validamos la versión de php instalada
php -v
Ahora procedemos a ajustar algunos parametros del php que nos permitirán subir archivos mayores a los 2M al wordpress
cd /etc/php/7.2/apache2
sudo vi php.ini
Una vez aquí cambiamos los siguientes valores y procedemos a reiniciar el web server:
max_execution_time 60 memory_limit 128M post_max_size 32M upload_max_filesize 32M
ahora reiniciamos
sudo systemctl restart apache2
Para crear nuestra base de datos, debemos ingresar con el usuario root:
mysql -u root -p
Una ves logueado creamos la base de datos para nuestro wordpress
mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
después nos creamos un usuario para nuestro wordpress con privilegios sobre la base de datos que acabamos de crear (podemos utilizar el usuario y password que consideremos apropiado)
mysql> GRANT ALL ON wordpress.* TO ‘wordpressuser’@‘localhost’ IDENTIFIED BY ‘password’;
Ahora refrescamos los privilegios para que el mysql los reconozca
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
Muchos plugin de wordpress necesitan utilizar el archivo .htaccess para comunicación con el servidor web para eso es necesario algunos ajustes que le permitan a los plugin hacer su trabajo, para esto utilizaremos un editor de archivos de texto para realizar los cambios, utilizamos los siguientes comandos:
sudo vi /etc/apache2/apache2.conf
Buscamos la sección donde aparezca lo siguiente:
y cambiamos el AllowOverride None por AllowOverride All
sudo a2enmod rewrite
Si al momento de ejecutar el comando les sale el error:
proceden a editar el .profile con el siguiente comando:
vi .profile
y agregan al final del archivo lo siguiente:
export LANGUAGE=en_US.UTF-8export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8
Te deslogueas y accedes nuevamente, ejecutas el comando y ya no te deberia saltar el error:
Ahora procedemos a habilitar los cambios con
sudo apache2ctl configtest
Reiniciamos el apache con el comando
sudo systemctl restart apache2
Ahora con todas las configuraciones hechas procedemos a realizar nuestra instalación de nuestro wordpress
Como primer paso procedemos a descargar con el comando
curl -O https://wordpress.org/latest.tar.gz
Una vez finalizado lo descomprimimos
tar xzvf latest.tar.gz
Cuando termina creamos el archivo htaccess dentro de las carpetas del wordpress y le damos permisos:
cd wordpress touch .htaccess chmod 660 .htaccess
Ahora comenzamos a preparar el archivo de configuración del wordpress
cp wp-config-sample.php wp-config.php
y creamos la carpeta upgrade con
mkdir wp-content/upgrade
Por último copiamos nuestra carpeta de wordpress a las carpetas públicas del apache para eso salimos de la carpeta wordpress con el comando cd .. y después procedemos a copiar la carpeta
sudo cp -a wordpress/. /var/www/html
Ahora procedemos a borrar el archivo index.html de la carpeta pública
sudo rm /var/www/html/index.html
Para este tutorial nosotros no creamos ningun usuario asi que los permisos los daremos al usuario default del sistema, llamado ubuntu, procedemos primero a dar permisos sobre el directorio con el comando
sudo chown ubuntu:www-data /var/www/html/
sudo chown -R www-data:www-data /var/www/html/*
Ahora tenemos que definir cuales serán los permisos para los archivos nuevos y eso lo hacemos configurando el setgid mediante el comando
sudo find /var/www/html -type d -exec chmod g+s {} ;
Ahora debemos dar permisos a la carpeta content del wordpress
sudo chmod g+w /var/www/html/wp-content
sudo chmod -R g+w /var/www/html/wp-content/themes sudo chmod -R g+w /var/www/html/wp-content/plugins
Ahora procedemos a realizar unos ajustes en el archivo de configuración, comenzamos con las llaves privadas del wordpress, estas las generamos con el comando
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Esto generara los valores unicos por usuario (NO COPIE MIS LLAVES QUE NO LE FUNCIONARÁN) y las remplazamos en la sección en el archivo de configuración:
Abrimos el archivo de configuración con vi /var/www/html/wp-config.php y agregamos las llaves privadas, tambien hacemos los cambios de conexión de base de datos: nombre, usuario y contraseña
Adicional agregamos debajo de los define, en el archivo la siguiente configuración define(‘FS_METHOD’, ‘direct’); esta nos permitira poder subir archivos directos al servidor sin que nos pida autenticar una cuenta ftp.
Con esto ya estariamos listos para ir al wordpress y terminar la instalación, en un browser vamos a la dirección pública de nuestro server https://ip_publica
Terminamos de poner el nombre de nuestro sitio, contraseña y el correo de contacto y presionamos en el botón de instalar wordpress.
Presionamos en login y accedemos con el usuario y contraseña que acabamos de crear
Con esto ya tendríamos nuestro wordpress web listo y preparado para la construcción de nuestra página, tema que veremos en el siguiente artículo.
Cualquier consulta no duden en contactarme y pueden visitar mi página que está creada totalmente sobre la infraestructura de Amazon AWS.