Instalar Wordpress con Nginx en CentOS 6

Esta guía asume que estas usando una instalación nueva de CentOS 6 y que ya has instalado nginx. Si no sabes como instalar nginx ve a mi post de Railo y nginx aquí y sigue las instrucciones para nginx.

Instala el software necesario

Ejecuta el siguiente comando como root

yum -y install mysql mysql-server php php-common php-fpm php-xml php-xmlrpc php-mysql

Ahora descarga Wordpress y crea un directorio a donde apuntara nginx

wget http://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
mkdir /webroot
mv wordpress /webroot
chown -R nginx:nginx /webroot/wordpress
Crea la base de datos y usuario para wordpress en MySQL

conéctate a la consola de MySQL como root.

mysql -u root -p

Si aun no tienes un password de root en MySQL y no sabes como hacerlo ve aquí y sigue las instrucciones del paso 1.

Ahora crea la base de datos y el usuario de la siguiente forma

CREATE DATABASE wordpressdb;
CREATE USER wordpressusr@localhost IDENTIFIED BY 'usatupasswordaca';
GRANT ALL PRIVILEGES ON wordpressdb . * TO wordpressusr@localhost;
FLUSH PRIVILEGES;
exit
Configura Wordpress

Ve al directorio de Wordpress crea una copia del archivo de configuración que será la que usaremos para esta instalación

cp -p wp-config-sample.php wp-config.php

Abre el archivo wp-config.php usando vi o tu editor favorito, localiza la sección de MySQL y remplaza los campos de base de datos, usuario y password por los valores que correspondan al paso anterior.

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

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

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

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

Cámbiate al directorio /etc/nginx/ y crea una copia de respaldo del archivo nginx.conf

cp -p nginx.conf nginx.conf_OLD

Abre el archivo nginx.conf y remplaza todo el contenido por lo siguiente

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '$status $body_bytes_sent  '
                      '$http_user_agent $http_x_forwarded_for';

    access_log  /var/log/nginx/access.log  main;

    sendfile        	on;
    tcp_nopush     	on;

    keepalive_timeout  30;

    ##################
    #gzip compression#
    ##################

    gzip on;
    gzip_disable msie6;
    # gzip_static on;
    gzip_min_length 1400; 
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 9;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css image/png image/gif image/jpg application/json application/x-javascript text/xml application/
xml application/xml+rss text/javascript applicacion/x-font-ttf font/opentype application/x;

    server_names_hash_bucket_size 64;
    include /etc/nginx/conf.d/*.conf;
}

En el miso directorio crea un archivo llamado wp.conf con el siguiente contenido

location / {
	    # Rewrite rules and other criterias can go here
	    # Remember to avoid using if() where possible (http://wiki.nginx.org/IfIsEvil)
	    try_files $uri $uri/ /index.php?q=$uri&$args;
}

location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
}

Muévete al directorio /etc/nginx/conf.d y crea una copia de respaldo del archivo default.conf

cp -p default.conf default.conf_OLD

Abre el archvo default.conf y remplaza todo el contenido por lo siguiente

server {
listen 80;
server_name tudominio.com www.tudominio.com;
root /webroot/wordpress;
index index.php;
access_log /var/log/blog_access.log;
error_log /var/log/blog_error.log;

if ($http_host != "www.tudominio.com") {
rewrite ^ http://www.tudominio.com$request_uri permanent;
}

include wp.conf;
}

Para finalizar abre el archivo /etc/php-fpm.d/www.conf localiza los campos user y group y cambia sus valores de la siguiente forma

user = nginx
group = nginx
Finalizar

Inicia los servicios de nginx y php-fpm y asegúrate de que inicien todos los servicios necesarios cada vez que reinicie el sistema

service nginx start
service php-fpm start
chkconfig nginx on
chkconfig php-fpm on
chkconfig mysqld on

Si algunos de los servicios ya estuviera corriendo entonces lo reinicias.

En tu navegador web preferido ve a http://www.tudominio.com/wp-admin/install.php y sigue las instrucciones.
Lo has logrado, tu servidor esta listo.

Deja tus comentarios y/o sugerencias.