28 de abril de 2010

Apache, Php y Mysql en Windows 7... pain in the ass ?

Buenas nuevamente queridos lectores, aunque no he publicado unos artículos que tenia pensado, decidí dar con este punto clave para cualquier programador que este orientando su trabajo al mundo de las aplicaciones web y tiene el fantabuloso windows 7 (como yo)...


En un articulo previo que hablaba sobre las maquina virtuales, mencione el hecho de "embasurar" un sistema operativo invitado de una maquina virtual, con servidores ó entornos de desarrollo anticuados ó simplemente molestos, para no dañar la bella imagen y estructura de nuestro sistema operativo nativo, pero cuando la necesidad lo merite y necesitas de un servidor http como apache, un lenguaje de programación interpretado como php y un motor de base de datos como mysql, y que todo este batido de mierxxx funcione en  Windows puede tornarse hecatombico, mas aun para un principiante o alguien que se de por vencido rápido con las computadoras.


Ya no se mortifiquen tanto, ayer se me ocurrió migrar este batido de mierxxx de Windows Xp a Windows 7 64bit, y me ha funcionado correctamente, por tanto explicare en par de saltos como lo instale, pero primero como ya es costumbre, el glosario por mi propia lucidez mental de algunos términos inherentes al post que estas leyendo. 


servidor http: es un programa, basado en servicios, procesos o demonios que permiten ejecutar código script, hypertexto, xml, appwebs, etc etc en un servidor dedicado o simplemente a desarrolladores  para visualizar y debuggear paginas web o aplicaciones web.

apache: es un proyecto de software libre que permite realizar lo mencionado arriba, en los sistemas windows y los basados en unix (linux). 

lenguaje de programación interpretado: a diferencia del lenguaje de programación compilado, este es ejecutado mediante un interprete en tiempo real (por script), es ejecutado en un servidor y visualizado en un cliente. 

php: acronimo recursivo de php hypertext pre-processor. un lenguaje interpretado para desarrollo de aplicaciones web, y esta embebido en código html (paginas web).

aplicaciones web: con el desarrollo de nuevas tecnologías informáticas, ya el mundo www, no se limita a mostrarnos paginas de información sino que cada vez mas podemos interactuar con ellas de formas muy dinámicas. es por ellos que cuando ingresamos a una pagina donde hay manejo de data, registros, y procedimientos como lo haría una aplicación instalada en el pc, se conoce como aplicación web. 

motor de bases de datos: como el servidor http se basa en programa, servicios o demonios, pero en este caso para la gestión de bases de datos.

mysql: es un proyecto de software libre de un motor de base de datos, funciona para muchas plataformas, y esta muy diversificado entre la comunidad informática.

Ok, hasta estamos bien de conceptos, procedemos a lo principal de este articulo.
como una receta de cocina primero vamos a necesitar los ingredientes para su preparación asi que esta la lista de los que yo usé:

- Cualquier IDE para Mysql. yo use SQLyog.
- Windows 7 (yo lo hice con windows 64 bit)
- Paciencia, prudencia y un refresquito.
Fíjense que el mysql es de 64bits pero pueden descargarse el de 32 bits (x86) dependiendo sea el caso.. esta instalación funciono para windows 7 32 y 64 bits pero estén pendientes con el binario que se descarguen sea el compatible con el SO. 

Como yo se que ni a mi ni a ustedes nos gusta estar pasando dlls de terceros a la carpeta system32 de windows y esas cosas, como indican en otros tutoriales, este no será el caso, pues solo se instalas los módulos y se modifican ciertos archivos de configuración.

Configurar Apache:

lo primero que vamos a hacer es instalar apache. es muy sencillo pues solo debes darle siguiente siguiente siguiente, pero cuando te pida la ubicación de instalación recomiendo que sea en una carpeta como "C:\apache" ó "C:\httpserver" (asi la tengo yo). y cuando te pida nombre y dirección del servidor y correo del admin del servidor colocas localhost, localhost, admin@localhost respectivamente.

Listo, si todo ha salido bien deberias tener en la carpeta C:\httpserver o como la hayas llamado un montón de archivos y carpetas y en la barra de tareas el icono de apache server con un play verde.

Antes de irnos al archivo de configuración de Apache. Vamos a instalar PHP y Mysql

esto si es mucho mas sencillo solo deber descomprimir el archivo zip de php en una carpeta llamada preferiblemente php y dentro de "c:\httpserver" donde esta instalado el apache.

Igual que apache ejecutamos el instalador de Mysql  y siguiente siguiente siguiente hasta cuando nos pida la direccion de carpetas le colocamos "C:\httpserver\mysql" y luego siguiente->fin.
Paso a seguir, Nos indicara la opción de configurar el mysql le decimos que si y siguiente siguiente siguiente. me gustaria que habilitaran al lado de lo que dice puerto 3066 la opcion de excepcion de firewall, y no olviden colocar contraseña del root.

¿Por qué colocar todo en la misma carpeta? no tiene mucha mas ciencia que mantener un orden en este batido de mierxx, y tener mas claro el direccionamiento de los servidores (http, php y mysql) para la posterior edición de los archivos de configuración. Lo del nombre httpserver, como dije antes es capricho mio, pueden usar cualquier nombre: "pepito" "gomita" "prueba1" "batidodemierxx" , pero como la tengo yo es una forma prudente de llamarlo.

Si todo está bello deberia verse asi:


ok... Ahora si la parte ladilla -> configurar los archivos de configuracion varrrga la rebundancia, de los servidores.

Ok lo primero que vamos a haver es detener el servidor apache, abajo en la barra de tareas en el icono del servidor apache le dan click en stop, y vamos a la carpeta C:\httpserver\conf, copiamos por motivos de precaución el archivo httpd.conf, y luego lo modificamos con el bloc de notas:

- en la parte donde esta los LoadModule agregar al final lo siguiente ->

LoadModule php5_module "C:/httpserver/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/httpserver/php"

Fijense en las direcciones pueden variar dependiendo de las ubicaciones y nombres de las carpetas que le hayan dado.

- Donde está


      DirectoryIndex index.html



 le agregan index.php ->




    DirectoryIndex index.html index.php



Cerramos y guardamos..

Ahora vamos a la carpeta C:\httpserver\php

y copiamos por seguridad el archivo php.ini-development, luego renombramos este por php.ini y lo modificamos con el bloc de notas:

-Donde está esta parte ->

; Directory in which the loadable extensions (modules) reside.

; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"


agregar abajo


extension_dir = "C:/httpserver/php/ext/"

- luego donde estan las extension=php_xxxxxx descomentar las siguientes dos lineas (quitarles el ; que tiene por delante)

extension=php_mysql.dll
extension=php_mysqli.dll
 
Cerrar y guardar.
 
aunque no lo crean falta poco! Ahora necesitamos abrir el host local de windows:
 
-abrimos ejecutar -> y escribimos cmd  y presionamos shift+control+enter (permisos administrativos) ->
y en la pantalla negra y fea de msdos que saldrá escribimos (o pegamos):
 
notepad C:\Windows\System32\drivers\etc\hosts
 
- desconmentamos la linea 127.0.0.1 localhost quitandole el simbolo # que tiene por delante, cerramos y guardamos.
 
Ahora deberia estar mas que listo nuestro servidor http con php y mysql. restauramos el servidor apache dandole click en su icono de la barra de tareas y luego start.
 
abrimos un explorador de internet y escribimos http://localhost/, deberia aparecer una pagina diciendo "it Works", bien probemos el php. vamos a la carpeta "C:\httpserver\htdocs" y creamos un archivo nuevo llamado index.php lo editamos con el bloc de notas y escribimos lo siguente:
 

 
cerramos y guardamos. ahora en el explorador colocamos la dirección http://localhost/index.php, si todo esta bello deberiamos ver una página con un monton de información acerca de nuestra configuración php y hemos finalizado la configuración de nuestro servidor.
 
Para desarrollar aplicaciones php existen muchos IDE o entornos de programación, a mí como me gusta el código uso netbeans con plugin php, pero para no matarse codificando y diseñando también se encuentran el php editor y el famoso dreamweaver, entre muchisimos más.
 
espero que les haya sido útil esta información y por favor cualquier dato, sugerencia, pregunta o critica, pueden usar los medios previstos para el feedback bloguero de comunicación conmigo, como el www.formspring.me/juanpgarciac o mi twitter www.twitter.com/juanpgarciac o comentando aqui abajito.
 
 
 

3 comentarios:

  1. Oye Juan, te recomiendo (porque me ha pasado jaja) no escribas el artículo en word y lo pegues aquí, hazlo en el wordpad, porque se desconfiguran las fuentes en el blogger. Interesante el artículo, saludos.

    ResponderBorrar
  2. Excelente la información! Sin problema alguno pude instalar en win7 64b! Mil gracias!

    ResponderBorrar
  3. Hasta ahora no he encontrado una nueva herramienta genial para trabajar con MySQL en win - Valentina Studio. Es la edición gratuita puede hacer las cosas más de las muchas herramientas comerciales!
    ¡Muy recomendable comprobarlo. http://www.valentina-db.com/en/valentina-studio-overview

    ResponderBorrar