sábado, 14 de noviembre de 2015

WordPress con Nginx + PHP + MariaDB en Debian 8

Introducción

WordPress es el CMS más popular (gestor de contenidos) en el mundo. Se le permite obtener fácilmente su sitio o blog en marcha y funcionando. Después de la instalación, usted puede manejar casi todo en una interfaz web fácil.

En esta guía, vamos a ir sobre cómo instalar WordPress en un servidor de Debian 8. Para el componente de servidor web, utilizaremos Nginx con MariaDB, un servidor web potente y eficiente que ha visto una amplia adopción debido a sus capacidades de rendimiento.

Requisitos previos

Antes de comenzar con esta guía, hay algunos procedimientos que debe llevar a cabo.

Usted también necesitará un (sistema operativo Linux, el servidor web Nginx, base de datos MySQL, PHP y procesamiento) LEMP instalado y configurado en el servidor. Usted puede aprender cómo instalar y configurar los componentes necesarios siguiendo nuestra guía sobre la instalación de una servidor de LEMP en los siguientes enlaces

  1. Instalación de Nginx + PHP en Debian 8 
  2. Instalación de MariaDB en Debian 8
Cuando haya terminado con los pasos anteriores, puede continuar.


Primer paso - Crear una base de datos en MariaDB

Para gestionar de forma mas fácil nuestro servidor de Base de Datos instalaremos phpMyAdmin

# aptitude install phpmyadmin
Seleccionaremos el tipo de servidor web sobre el cual se ejecutara como aun no tiene soporte directo para Nginx seleccionaremos Apache



 Ahora nos pide crear una base de datos para phpMyAdmin le daremos que no


Ahora crearemos un enlace simbólico para mostrar nuestro phpMyAdmin vía Web 
# ln -s /usr/share/phpmyadmin /var/www
Ahora entramos a la direccion de nuestro serviodor via web para crear la base de datos para wordpress, cuando entren se loguean con el usuario de MariaDB y creanla base de datos para WordPress
http://localhost/phpmyadmin
Ahora abriremos la configuracion de Nginx para el host virtual  
#  nano /etc/nginx/sites-available/default
y agregaremos para los log de error de WordPress la siguiente linea en nuestro archivo de configuración  y para mejor funcionamiento.
access_log /var/log/nginx/www.fca26.co.cu-access.log; 
error_log /var/log/nginx/www.fca26.co.cu-error.log;  
try_files $uri $uri/ /index.php?q=$uri&$args;
  
Nos quedaría así de la siguiente forma 

server {
    listen 80;
    root /var/www;
    index index.php index.html index.htm;
    server_name www.fca26.co.cu fca26.co.cu;
access_log /var/log/nginx/www.fca26.co.cu-access.log;
    error_log /var/log/nginx/www.fca26.co.cu-error.log; 

    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    location ~ \.php$ {
            try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}
y reiniciamos nuestro Servidor Web
# service nginx restart
Ahora procederemos a descargar la ultima versión de WordPress y a descomprimirlo 

$ aptitude install tar
$ cd /var/www/
$ wget http://wordpress.org/latest.tar.gz
$ tar xfvz latest.tar.gz
$ cp -r wordpress/* /var/www
Asignamos los permisos correspondientes 

$ sudo chown -R www-data /var/www$ sudo chmod -R 755 /var/www
Y ya tenemos nuestro WordPress  instalado solo les faltaría entrar a la dirección del servidor y configurar las opciones básicas del WordPress

MariaDB en Debian 8




MariaDB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL. Está desarrollado por Michael (Monty) Widenius (fundador de MySQL) y la comunidad de desarrolladores de software libre. Introduce dos motores de almacenamiento nuevos, uno llamado Aria -que reemplaza con ventajas a MyISAM- y otro llamado XtraDB -en sustitución de InnoDB. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, APIs y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.Este SGBD surge a raíz de la compra de Sun Microsystems -compañía que había comprado previamente MySQL AB - por parte de Oracle. MariaDB es un fork directo de MySQL que asegura que permanecerá una versión de este producto con licencia GPL. Monty decidió crear esta variante porque estaba convencido de que el único interés de Oracle en MySQL era reducir la competencia que MySQL daba al mayor vendedor de bases de datos relacionales del mundo que es Oracle.


  1. Instalación 
Preparamos nuestro sistema Debian actualizando nuestro repo y nuestro núcleo:
# aptitude update && aptitude full-upgrade
una ves actualizado nuestro repo y nucleo procederemos a agregar los repositorios de MariaDB
# apt-get install python-software-properties
#  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
# apt-get install software-properties-common 
#  add-apt-repository 'deb [arch=amd64,i386] http://mariadb.mirror.rafal.ca/repo/10.1/debian jessie main'
después ejecutamos
# apt-get update
# apt-get install mariadb-server
 Agregamos la clave del MariaDB


 Confirmamos la clave puesta anteriormente




y ya tenemos nuestro servidor con MariaDB instalado



Nginx + PHP en Debian Instalación




Nginx, es un servidor web y proxy inverso ligero multiplataforma, que en los últimos tiempos ha subido exponencialmente su cuota de mercado, superando por ejemplo a Microsoft Information Services. Nginx es software libre y con licencia BSD

Algunas de las ventajas por las que ha crecido su uso es:
  • Es multiplataforma.
  • Es más ligero que otros servidores web, perfecto para mejorar el rendimiento.
  • Se puede integrar con Apache y hacer por ejemplo que Nginx sirva el contenido estático y Apache el dinámico
  • Utilizarlo como balanceador de carga.
  • Es compatible con la mayoría de CMS.
Para empezar lo que haremos es instalarlo, con el siguiente comando:

$ sudo apt-get install nginx

Una vez instalado, tenemos que arrancarlo, para ello:

$ sudo service nginx start

Si todo ha ido bien, abrimos un navegador y vamos a la página localhost, nos saldrá el mensaje de “Wellcome to nginx!

Llegados a este punto, lo que vamos a hacer ahora es instalar PHP, para ello ejecutamos el siguiente comando:

$ sudo apt-get install php5-fpm

Vamos ahora a configurar PHP, para ello hay que hacer un par de modificaciones en los ficheros php.ini y www.conf para que nginx  puedan funcionar correctamente.

Lo primero vamos a editar el fichero php.ini y lo que vamos a hacer es cambiar el valor del parámetro cgi.fix_pathinfo a 0. Por defecto está comentado, por lo que también vamos a descomentarlo. Tenemos que ejecutar lo siguiente:

$ sudo gedit /etc/php5/fpm/php.ini

Buscamos la línea donde aparece el parámetro cgi.fix_pathinfo y lo dejamos así:

cgi.fix_pathinfo=0

Ahora vamos a cambiar la configuración del fichero www.conf:

$ sudo nano /etc/php5/fpm/pool.d/www.conf

Y en el parámetro listen, tenemos que asegurarnos que aparece así:

listen = /var/run/php5-fpm.sock

Guardamos y reiniciamos php:

$ sudo service php5-fpm restart

En este punto lo que vamos a hacer ahora es configurar nginx, para ello abrimos y editamos el fichero de host virtual:

$ sudo nano /ect/nginx/sites-available/default

y borramos lo que tiene y ponemos :

server {
    listen 80;

    root /var/www;
    index index.php index.html index.htm;

    server_name www.fca26.co.cu fca26.co.cu; 

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

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

Vamos a ver si llegados a este punto todo funciona, para ellos nos vamos a crear el archivo de configuración de php:

$ sudo nano /var/www/index.php

Le añadimos las siguientes líneas:

<?php phpinfo(); ?>

Guardamos el fichero y reiniciamos nginx

$ sudo service nginx restart


Si ahora tecleasemos http://localhost/, nos tendría que salir la pantalla de información de php.