jueves, 3 de marzo de 2016

Instalar nginx + php + mysql en Windows

Primero descargarmos nginx, en mi caso es la versión 1.9.12

Lo descomprimos en la unidad C.

Luego descargamos php, usare la versión 5.6.19

Descomprime el archivo de php dentro de la carpeta nginx.

Dentro de la carpeta php abre el archivo php.ini y borrar el punto y coma de las siguientes extensiones para activarlas:


  • extension_dir = “ext”
  • extension=php_bz2.dll
  • extension=php_gd2.dll
  • extension=php_imap.dll
  • extension=php_mbstring.dll
  • extension=php_mysql.dll
  • extension=php_mysqli.dll
  • extension=php_pdo_mysql.dll
  • extension=php_pdo_pgsql.dll
  • extension=php_pdo_sqlite.dll
  • extension=php_pgsql.dll



Vamos a la ruta  c:\nginx\conf para editar el archivo nginx.conf

Abrimos para editarlo y busca estas líneas, quita el signo de gato # para que quede así:

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;
}

Crearemos un archivo por lotes para iniciar gnix, Iniciar.bat:

@ECHO OFF
c:\nginx\nginx.exe
c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini
ping 127.0.0.1 -n 1>NUL
echo Starting nginx
echo .
echo .
echo .
ping 127.0.0.1 >NUL
EXIT


Y para detener el servicio, Detener.bat

@ECHO OFF
taskkill /f /IM nginx.exe
taskkill /f /IM php-cgi.exe
EXIT


Servidor Nginx en Opera
Servidor Nginx en Opera


Abrimos el navegador en http://localhost para comprobar que funciona.

phpinfo uasndo Servidor Nginx
phpinfo usando servidor Ngibx en Opera


Para ver que php funciona crea una archivo llamado prueba.php con el siguietne código.

<?php
phpinfo();
?>


Instalando mysql


Descargamos el archivo zip para instalar mysql, usaré la versión 5.6.29 el archivo es pesado. Si quiere ahorrarte espacio borra las carpetas mysql-test, Embedded, sql-bench y las carpetas con nombre debug, y además también puedes borrar los archivos .pdb

Los descomprimos dentro de la carpeta de instalación ngnix, renombrandolo a mysql

El archivo my-default.ini lo copiamos en la misma carpeta cambiando el nombre a my.ini

Esta vacio, solamente con comentarios. Vamos a llenarlos con el siguiente contenido.


[client]
port = 3306
socket = c:/nginx/mysql/tmp/mysql.sock
default-character-set = utf8
character-sets-dir = share/charsets

[mysqld]
default-character-set = utf8
init-connect = "set names utf8"
skip-character-set-client-handshake
basedir = ../mysql
datadir = data

#log = off
general-log = off

bind-address = 127.0.0.1

port = 3306

lower-case-table-names = 2

port = 3306
socket = c:/nginx/mysql/tmp/mysql.sock
basedir = c:/nginx/mysql
datadir = c:/nginx/mysql/data
bind-address = localhost
enable-named-pipe
skip-external-locking

key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

skip-innodb

#skip-networking

#enable-named-pipe

server-id = 1

#log-bin

#innodb_data_home_dir = data
#innodb_data_file_path = ibdata1:1M:autoextend
#innodb_log_group_home_dir = var/
#innodb_log_arch_dir = var/
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit=1
#innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout


Abrimos el Simbolo de Sistema com Administrador vamos a la ruta C:\nginx\mysql\bin\
y tecleamos:

mysqld --install-manual

Si te aparece error es porque no abriste Simbolo del Sistema como administrador. Si lo hiciste bien debes ver este mensaje: “Service successfully installed”

Ahora teclea:

net start mysql

Si todo salio ya lo tienes instalado, aun falta hacer unos ajustes con respecto a los usuarios cosa pero por ahora es todo.

Para detener el servicio es:

net stop mysql

Para retiralo como servicio es:

mysqld --remove


Ahora configuraremos el usuario root:

mysqladmin -u root password contraseña

Contreseña es la palabra que elegiste como contreña, ahora apra segurar el usuario.


mysql -u root -p

Te pedirá tu contraseña para loguearte. Tecleala y ya estarás en la consola de MySQL.


Si en algun momento necesitas cambiar la contraseña del usuario root teclea:

update mysql.user set password=CONTRASEÑA('nueva_contraseña') where user='root';

Para actualiazar los permisos (privilegios)y salir:

flush privileges; quit;

Obviamente debemos detener Mysql tecleando el comando dentro de la carpeta Unidad:\nginx\mysql\bin\ como Administrador


Por ahora es todo, luego añado como instalar phpmyadmin.

Intentando instalar Ruby on Rails en XAMPP

Esto fue un intento de instalar Ruby en XAMPP, lo que ves aqui no funcionará pero lo publico para que quede registrado mientras intento hallar una solución.

Esta es la forma para instalar Ruby on Rails en XAMPP.

Descargar e Instalar XAMPP

Descargar e Instalar RubyInstaller, en mi caso instalaré la versión 2.2.4. Ya que la 2.1 sus gemas no son compatible con las más recientes, especificamente la gema webconsole.


Instala Rubyinstaller en la ruta C:\xampp\railsinstaller

Al finalizar la instalación verifica que estén activadas las opciones para configurar GIT.
Establece la configuración tecleando tu nombre y un correo-e siguiendo las instrucciones.




Ahora checamos el archivo C:\xampp\RailsInstaller\Ruby2.2.0\bin\rails.bat para corregir un Bug que está en esta versión.

Verifica que la ruta para el ejecutable ruby, reemplazamos todas las líneas por este archivo:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:\xampp\RailsInstaller\Ruby2.2.0\bin\ruby.exe" "C:/xampp/RailsInstaller/Ruby2.2.0/bin/rails" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:\xampp\RailsInstaller\Ruby2.2.0\bin\ruby.exe" "%~dpn0" %*

Si no lo haces te aparecerá el error "El archivo no puede encontrar la ruta especificada"

Crearemos un nuevo proyecto de Ruby. Abre la consola Ruby y teclea:

 rails new C:/xampp/htdocs/dev-ruby/redmine/

Agrega las siguientes líneas al final de archivo C:\xampp\config\httpd.conf que puedas abrirlo directamente en XAMPP.

Listen 3000
LoadModule rewrite_module modules/mod_rewrite.so
#################################
# RUBY SETUP
#################################
<VirtualHost *:3000>
ServerName rails
DocumentRoot "c:/xampp/htdocs/dev-ruby/redmine/public/"
<Directory "c:/xampp/htdocs/dev-ruby/redmine/">
Options ExecCGI FollowSymLinks
AllowOverride all
Allow from all
Order allow,deny
AddHandler cgi-script .cgi
AddHandler fastcgi-script .fcgi
</Directory>
</VirtualHost>
#################################
# RUBY SETUP
#################################


Reinicia los servicios Apache y SQL en XAMPP, en caso que marque error borra primera línea Listen 3000 que añadimos anteriormente.

cd C:/xampp/htdocs/dev-ruby/redmine

rails server

Intenta entrar en tu navegador mediante http://localhost:3000

Si ves el mensaje de error 403 Accesso Prohibido, entonces modifica el archivo httpd.conf y encuentra la siguiente sección:

  <Directory>
        AllowOverride none
        Require all denied
    </Directory>

Y cambiala por:

 <Directory>
       Options Indexes FollowSymLinks Includes ExecCGI
       AllowOverride none
       Require all granted
    </Directory>

Reinicia XAMPP.

Si ves el error 403, entonces tenemos que modificar el archivo C:\xampp\apache\conf\extra\httpd-xampp.conf y al final de archivo donde están estas líneas:


<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Require local
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

Que quede así:

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Order deny, allow
Allow from all
Allow from ::1 127.0.0.0/8
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>