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
https://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.