Instalar WordPress en Ubuntu (Apache + MariaDB + PHP)

En este post veremos como instalar la última versión disponible de WordPress en un servidor Ubuntu con soporte para Apache2, PHP y MariaDB.

A continuación, vemos los pasos a seguir:

 

 En primer lugar nos asignamos los permisos adecuados y actualizamos el servidor con los siguientes comandos:

text
sudo su
apt update && sudo apt dist-upgrade && sudo apt autoremove

 

 Ahora instalamos el servidor web Apache2 necesario para el funcionamiento de WordPress. Además, una vez instalado, deshabilitamos la lista de directorios:

text
apt install apache2
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

#Comandos para iniciar, detener y habilitar el servicio de apache

text
systemctl stop apache2.service
systemctl start apache2.service
systemctl enable apache2.service

 

 En este paso, instalaremos el servidor de la base de datos que en este post será MariaDB. Una vez instalado también crearemos una contraseña para este servidor de bases de datos. Para ello ejecutamos los siguientes comandos:

text
apt-get install mariadb-server mariadb-client
mysql_secure_installation

Tras ejecutar el último comando, se nos mostrarán las siguientes preguntas que contestaremos de esta forma.

  • Enter current password for root (enter for none):  Enter
  • Set root password? [Y/n]: Y
  • New password: Escribe una contraseña
  • Re-enter new password: Repite la contraseña
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]:  Y
  • Reload privilege tables now? [Y/n]:  Y

#Detener, Iniciar y habilitar el servicio MariaDB

text
systemctl stop mariadb.service
systemctl start mariadb.service
systemctl enable mariadb.service

 

 

 Ahora es el momento de instalar otro componente necesario para el funcionamiento de WordPress junto Apache y MariaDB, se trata de PHP. En este post vamos a realizar el proceso instalando la versión 7.2 de PHP.

text
apt-get install software-properties-common python-software-properties
add-apt-repository -y ppa:ondrej/php
apt-get update
apt-get install php7.2 php7.2-cli php7.2-common
apt search php7.2
sudo apt-get install php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-intl php7.2-mysql php7.2-xml php7.2-zip

Una vez instalado PHP, editamos el archivo de Apache2 correspondiente a PHP con el comando (en el caso que tengamos instalada otra versión de php cambiaríamos el 7.2 del comando por nuestra versión, puedes ver la versión que utilizas con php -v):

text
nano /etc/php/7.2/apache2/php.ini

y pegamos este código encargado de establecer los límites de los archivos que utilizaremos en nuestro WordPress:

text
post_max_size = 20M
memory_limit = 256M
max_execution_time = 300
max_input_vars = 10000
upload_max_filesize = 64M

[alert type=»info» icon-size=»small»]Recordar que para guardar los cambios con el editor nano utilizamos CTRL + O y para salir CTRL + X.[/alert]

 

 Una vez hemos realizado toso los pasos anteriores, es el momento de preparar la base de datos que utilizará WordPress.

Aclarar que los valores que vas a ver en los siguientes comandos base_de_datos, tu_usuario y tu_password puedes cambiarlos por lo que necesites en cada caso.

Entramos en el servidor de la base de datos con nuestra contraseña introducida en el paso 3 mediante este comando

text
mysql -u root -p

Creamos la Base de Datos:

text
CREATE DATABASE base_de_datos;

Creamos el usuario que podrá gestionar la Base de Datos:

text
CREATE USER 'tu_usuario'@'localhost' IDENTIFIED BY 'tu_password';

Le asignamos los permisos necesarios al usuario que acabamos de crear:

text
GRANT ALL ON WP_database.* TO 'tu_usuario'@'localhost' IDENTIFIED BY 'tu_password' WITH GRANT OPTION;

Y finalmente salimos del gestor de bases de datos:

text
FLUSH PRIVILEGES;
EXIT;

 

 En este paso configuraremos en Apache nuestro sitio de WordPress. En primer lugar editamos el archivo:

text
nano /etc/apache2/sites-available/wordpress.conf

Y pegamos en el lo siguiente:

text
<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/wordpress/
     ServerName example.com
     ServerAlias www.example.com

     <Directory /var/www/html/wordpress/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Mencionar que podemos modificar los directorios a nuestras necesidades y no usar obligatoriamente el nombre de la carpeta wordpress que vemos en el ejemplo.

 

 Ahora habilitaremos nuestro sitio de WordPress e instalaremos la última versión disponible en nuestro servidor asignando los permisos necesarios y modificando el archivo de configuración de WordPress.

text
a2ensite wordpress.conf
a2enmod rewrite
cd /tmp && wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
mv wordpress /var/www/html/wordpress
chown -R www-data:www-data /var/www/html/wordpress/
chmod -R 755 /var/www/html/wordpress/
mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

Editamos el archivo de configuración de WordPress con los datos introducidos en el paso 5 de nuestra base de datos.

text
nano /var/www/html/wordpress/wp-config.php
text
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'base_de_datos');

/** MySQL database username */
define('DB_USER', 'tu_usuario');

/** MySQL database password */
define('DB_PASSWORD', 'tu_password');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Finalmente sólo nos quedaría reiniciar el servicio de Apache2 para que se hagan efectivos los cambios:

text
systemctl reload apache2.service

Y acceder desde un navegador web a nuestra_ip/wordpress para acabar la configuración.