Cómo instalar wordpress sobre NGINX

Instalación de WordPress en un servidor basado en Debian.

El procedimiento original lo he creado en base a las recomendaciones de How to install WordPress with Nginx on Ubuntu 12.04 e Installing WordPress pero lo he ido actualizando en sucesivas instalaciones.

Prerrequisitos

  • Se dispone de un nombre de servidor (FQDN) exclusivo para uso del servicio dado que se hace uso de la facilidad de servidores virtuales del servidor web. el nombre utilizado en este ejemplo es wp.example.org.
  • Se dispone de un servidor LEMP instalado según LEMP server installation.
  • La comunicación con el gestor de procesos php se realiza utilizando el módulo fast CGI PHP FPM y a través de un socket en el dominio UNIX. Se ajustarán los valores de timeout para el módulo según se indica en #FastCGI_Timeout.
  • No se utiliza el paquete Debian por defecto para el servicio sino que se descarga la última versión estable del producto desde WordPress download.

Descarga del software

Desde la página WordPress download se descarga en el directorio temporario el paquete de software en formato tar.gz.
Si no se puede acceder con un navegador web directamente desde el servidor, se toma nota del enlace pulsando el botón derecho del ratón sobre el mismo y utilizando el comando wget como en este caso:

# cd /tmp; wget https://wordpress.org/latest.tar.gz

Se descomprime el paquete dentro del directorio /var/local y se ajustan los permisos de manera que el software sea accesible por el servidor web:

# cd /var/local; tar xvzf /tmp/latest.tar.gz
# chown -R www-data:www-data wordpress/
# chmod -R o-rwx wordpress/

Configuración de MySQL

Se debe crear un usuario de la BBDD que será el dueño de todas las tablas asociadas al servicio. Para ello se ingresa al servidor de base de datos con permisos de administrador mediante el comando mysql -u root -p y, una vez validados; se procede a ejecutar la siguiente secuencia de comandos desde el prompt de sql:

mysql> create user 'wpuser'@'localhost' identified by 'wppass';
Query OK, 0 rows affected (0.00 sec)

mysql> create database wpdb;
Query OK, 1 row affected (0.00 sec)

mysql> grant index, create, select, insert, update, delete, alter, lock tables on wpdb.* to 'wpuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Se debe tomar nota del nombre asignado a la base de datos creada, así como de su dueño y password ya que estos parámetros serán necesarios para configurar el servicio.

Configuración de Nginx

La forma standard de configurar un servicio en nginx consiste en generar un archivo en el directorio /etc/nginx/sites‑available/ describiendo la sección server del servicio y luego enlazarlo simbólicamente a un fichero en el directorio /etc/nginx/sites‑enabled/.
Para facilitar la posible administración multi‑site, conviene crear este fichero como /etc/nginx/sites‑available/wordpress:

#
# wordpress : WordPress virtual server configuration
#
# 17DEC2014 - Jose Ignacio Croce <jose@crossforests.com>
#
server {

listen 80;

root /var/local/wordpress;
index index.php index.html index.htm;

server_name wp.example.com;

location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}

# pass the PHP scripts to FastCGI server
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

}

# EOF : wordpress

Configuración del servicio

Se accede al directorio donde se aloja el software y se copia el fichero wp‑config‑sample.php como wp‑config.php y se ajustan los permisos para acceso de servidor web.

# cp /var/local/wordpress/wp-config-sample.php /var/local/wordpress/wp-config.php
# chown www-data:www-data /var/local/wordpress/wp-config.php
# chmod 0640 /var/local/wordpress/wp-config.php

Se edita el archivo wp‑config.php y se ajustan los parámetros de la base de datos creada anteriormente.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdb');

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

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

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

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

Validación

Se reinicia el servidor web con la secuencia de comandos:

# service php5-fpm restart
# service nginx restart

Se accede por primera vez al servicio desde un navegador, a través de la URL http://wp.example.org.
El resultado esperado es acceder a la página de configuración inicial.
Se completa el formulario y al confirmar ya queda creado el site y puede procederse a editar posts.

El siguiente paso a nivel de administración debería ser cargar nuevos temas y plugins o realizar actualizaciones de la instalación con Actualizaciones e instalación de plugins y temas en wordpress.

José Administrator
Apasionado por el software, la electrónica y la fotografía.
follow me

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *