Instalar WordPress en servidor NginX.

Hay muchos tutoriales de como instalar WordPress y este es uno de ellos. Pero por extraño que parezca no todo el mundo sabe instalar WordPress y lo mas difícil, es instalarlo con el servidor web NginX con exito.

Partiendo de la Base de como montar un servidor Debian Squezze, y habiendo configurado el servidor NginX con soporte PHP y Mysql, procederemos a la instalación de WordPress.

En primer lugar nos logueamos como root y crearemos el directorio /var/www

root@atotclic6:/home/ernest# mkdir /var/www/

root@atotclic6:/home/ernest# mkdir /var/www/dominio

root@atotclic6:/home/ernest# mkdir /var/www/dominio/web

Una vez creados procedemos a descargar WordPress

root@atotclic6:/home/ernest# cd /tmp

root@atotclic6:/tmp# wget es.wordpress.org/wordpress-3.3.1-es_ES.tar.gz  yo lo descargo en español hay otros idiomas.

Ahora lo descomprimimos.

root@atotclic6:/tmp# tar xvfz wordpress-3.3.1-es_ES.tar.gz

Movemos todo lo que hay dentro de wordpress con “*” a web.

root@atotclic6:/tmp# mv /tmp/wordpress/* /var/www/dominio/web/

Damos permisos recursivos de servidor.

root@atotclic6:/tmp# chown -R www-data:www-data /var/www/dominio/web

Copiamos y editamos el config de WordPress. Tenemos que poner el nombre de la base de datos, el usuario y la contraseña de dicho usuario, serán los que vamos a crear con la base de datos.

root@atotclic6:/tmp# cp /var/www/dominio/web/wp-config-sample.php /var/www/dominio/web/wp-config.php

root@atotclic6:/tmp# nano /var/www/dominio/web/wp-config.php

Creamos la Base de datos, usuario y contraseña.

root@atotclic6:/tmp/# mysqladmin -u root -p create wordpress

Enter password: aqui la contraseña de root de Mysql, que habremos introducido a la instalación de Mysql.

Entramos en Mysql.

root@atotclic6:/tmp# mysql -u root -p

Enter password: aqui otra vez

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 36

Server version: 5.1.49-3 (Debian)

 

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL v2 license

 

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

Aquí rellenamos los campos uno seria wordpress si habéis cambiado el nombre a la base de datos por otro distinto, otro campo el usuario y contraseña para wordpress. Se deja localhost por que se supone que la base de datos esta en el mismo servidor.

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO ‘usuario‘@’localhost‘ IDENTIFIED BY ‘contraseña para wordpress‘;

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO ‘usuario‘@’localhost.localdomain‘ IDENTIFIED BY ‘contraseña para wordpress‘;

Query OK, 0 rows affected (0.00 sec)

Damos privilegios.

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

Y salimos.

mysql> quit;

Bye

root@atotclic6:/tmp# nano /etc/nginx/sites-available/dominio.vhost

Y lo rellenamos con esto cambiando dominio por vuestro dominio.

server {
listen 80;
server_name dominio www.dominio;
root /var/www/dominio/web;

if ($http_host != “dominio”) {
rewrite ^ http://dominio$request_uri permanent;
}

index index.php index.html;

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}

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

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Guardamos y cerramos.

Lo activamos así.

root@atotclic6:/tmp# ln -s /etc/nginx/sites-available/dominio.vhost /etc/nginx/sites-enabled/dominio.vhost

Reiniciamos el servicio.

root@atotclic6:/tmp# /etc/init.d/nginx reload

Reloading nginx configuration: nginx.

Y a instalar WordPress desde algunas de esta direcciones

http://localhost/wp-admin/install.php

http://dominio/wp-admin/install.php

http://ip_servidor/wp-admin/install.php

Yo recomiendo que se instale con el nombre del dominio, para evitar posibles errores dentro de wordpress.