Instalar Nginx, PHP-7.0 y MariaDB en Windows

Debido a que tenemos un proyecto entre manos, ayer me decidi a realizar una instalacion de NGINX, PHP-7.0 y MariaDB en Windows, de esta forma, puedo testear en Windows dicha instalacion, aunque no me gusta nada, hay a quien si le gusta y este interesado en estos tipos de instalaciones.

Pues bien vamos a empezar.

Nos drigimos a NGINX ahi descargamos NGINX para windows, esta en formato zip, lo descomprimimos en la C:\ ,la carpeta la podemos llamar nginx o yo la he llamado por su verison C:\nginx-1.10.2

Hasta aqui facil no, seguimos con PHP 7

Nos dirigimos a la pagina de descarga de php-7.0 para windows

http://windows.php.net/download#php-7.0

Yo he elejido la Non Thread Safe, ya que se ejecutara como binario CGI

VC14 x64 Non Thread Safe

Una vez descargado le descomprimimos en la C:\ o com en mi caso en C:\nginx-1.10.2\php

Vamos a configurar NGINX para ejecutar PHP

Dentro de la carpeta conf en el directorio de NGINX, tenemos el fichero nginx.conf, sobre la linea 65 tenemos que descomentar las siguientes lineas y modificar con nuestra eleccion de directorios etc

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

por la linea 45 anadimos index.php, quedandonos asi

index  index.html index.htm index.php;

Yo he seguido este hilo https://www.nginx.com/resources/wiki/start/topics/examples/phpfastcgionwindows/ y he creado estos scripts

start_nginx.bat

@echo off
echo Starting PHP FastCGI...
set PATH=c:\nginx-1.10.2\php;%PATH%
cd c:\nginx-1.10.2\
start nginx
c:\nginx-1.10.2\php\RunHiddenConsole.exe c:\nginx-1.10.2\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx-1.10.2\php\php.ini
exit

stop_nginx.bat

@echo off
taskkill /f /im nginx.exe
taskkill /f /im php-cgi.exe
exit

Con esto ya tenemos NGINX funionando con php-7.0, ahora vamos por MariaDB

Nos dirigimos  la web de descarga https://downloads.mariadb.org/mariadb/10.1.18/

Ahi seleccionamos mariadb-10.1.18-winx64.msi

Una vez descargado el ejecutable clic clic clic, atotclic.

Para configurar mysqli descomentamos o modificamos las siguientes lineas en C:\nginx-1.10.2\php\php.ini

extension_dir = C:/nginx-1.10.2/php/ext

extension=php_mysqli.dll

extension=php_pdo_mysql.dll

Si habiamos ejecutado el script start_nginx.bat ejecutamos estop o hacemos un reload a nginx

accedemos al directorio de NGINX y

nginx.exe -s reload

Para comprobar php info.php

<?php
phpinfo();
?>

Para comprobar MariaDB

mysql_test.php

<?php
// Conexión a la base de datos
$base = mysqli_connect("127.0.0.1", "root", "password", "mysql");
if ($base) {
echo 'Conexión realizada.<br />';
echo 'Información del servidor:'.mysqli_GET_host_info($base).
'<br />';
$sql = "select host, user FROM user";
// Preparación de la consulta
$resultado = mysqli_prepare($base, $sql);
// Ejecución de la consulta.
$ok = mysqli_stmt_execute($resultado);
if ($ok == FALSE) {
echo "Error en la ejecución de la consulta.<br />";
}
else {
// Asociación de variables de resultado.
$ok = mysqli_stmt_bind_result($resultado,$host,$user);
// Lectura de valores.
echo "Host y usuario tabla user<br />";
while (mysqli_stmt_fetch($resultado)) {
echo $host.", ".$user."<br />";
}
mysqli_stmt_close($resultado);
}
if (mysqli_close($base)) {
echo 'Desconexión realizada.<br />';
}
else {
echo 'Error en la desconexión.';
}
}
else {
printf('Error %d : %s.<br/ >',mysqli_connect_errno(),
mysqli_connect_error());
}
?>

Esto es todo, un servidor web funcionando en menos de una hora.