Instalar PHP 5 en Windows 7 con Apache

31

Luego que tenemos Instalado y funcionando nuestro Apache 2.2 es muy sencillo Instalar y configurar PHP 5 en nuestro PC con Windows 7.

Seleccionar la versión y compilación adecuada de PHP

Lo primero que vamos a hacer es descargar la última versión disponible de PHP 5 en el sitio de descarga http://windows.php.net/download/.PHP 5 para  Windows

Los identificados como VC9 están compilados con Visual Studio 2008 C++, y están optimizados para usar PHP en Windows con IIS (Internet Information Server), el servidor propio de Windows, pero nosotros no utilizaremos IIS, ya que usamos Apache en vez de IIS.

Cuando decidimos usar como Servidor Web Apache no debemos usar las VC9, por tanto seleccionamos el archivo identificado con VC6 que está compilado con Visual Studio 6 y es la propia para los ejecutables de Apache.

Lo otro que debemos elegir es la versión Thread Safe, ya que es la que va con Apache, la Non-Thread Safe está mejorada para utilizar con Windows e IIS, pero no con Apache, por eso la elección.

La decisión de usar Apache la fundamento en que la mayoría de los servidores en Internet usan Linux y Apache, y si bien vamos a usar el PC con Windows para desarrollar es deseable que nuestras aplicaciones corran lo más parecido posible, sobre todo en algunas técnicas como la aplicación de Mod_Rewrite, y URLs amigables que veremos en próximos artículos de desarrollo web con PHP teniendo en cuenta SEO o sea webs optimizadas para buscadores.

Descargar PHP 5.3.2

No ocuparemos tampoco el instalador MSI, será suficiente con el ZIP, por tanto el archivo a descargar es: VC6 x86 Thread Safe (2010-Mar-04 20:11:08) ZIP de 13.03 MB.

Tener en cuenta que la fecha puede cambiar, pero con lo explicado ya sabrán seleccionar el archivo correcto.

Instalar PHP 5.3.2

Ahora que tenemos el archivo ZIP vamos a descomprimirlo en nuestra carpeta c:\appserv\php5

Como dijimos no correremos el instalador solo basto con descomprimirlo, y usamos como destino general nuestra carpeta c:\appserv de forma que quede todo el servidor de prueba quede ordenado, hasta ahora tendríamos estas carpetas:

c:\appserv

Apache2.2

php5

www

Configurar Apache 2.2 con PHP

Cuando instalamos Apache por si mismo servirá paginas Html, imágenes, etc, pero no es capaz de interpretar PHP, por tanto debemos ahora indicarle que nuestro PHP recién descomprimido será quien interprete los archivos programados en este lenguaje antes de enviarlos al navegador del usuario.

Para esto, vamos a abrir con un editor el archivo de configuración de Apache que vimos en la Instalación de Apache, o sea c:\appserv\Apache2.2\conf\httpd.conf

En este archivo, buscamos la sección donde carga los módulos y agregamos la línea:

LoadModule php5_module “C:/appserv/php5/php5apache2_2.dll”

esta línea, es bastante obvia si prestamos atención, lo que hace es cargar el módulo de PHP5 para Apache 2.2. Debemos agregar la línea al comienzo o final de todos lo otros módulos que se están cargando, prestando atención que esta línea no tenga un # (sharp) delante, ya que eso significa que no debe ejecutarse.

Debajo debemos agregar otra línea:

AddType application/x-httpd-php .php

es la que advierte a Apache para que procese los archivos con extensión .php, de otra forma nos daría un error de archivo desconocido.

Con la combinación de estas dos lineas tenemos entonces un Apache 2.2 admitiendo archivos .php e interpretándolos con PHP5.

Algunas aplicaciones PHP antiguas utilizaban archivos con extensión .php3 y .php4, siendo este número la versión de PHP3 o PHP4. Si nos encontramos con una aplicación que usa esas extensiones, para no tener que renombrar todos los archivos .php3 a .php podemos agregar otra línea AddType para cada extensión adicional, de la siguiente forma:

AddType application/x-httpd-php .php3

AddType application/x-httpd-php .php4

Luego agregamos la siguiente línea:

PHPIniDir “C:/appserv/php5″

nos indica donde está el archivo de configuración de PHP 5 llamado php.ini, que permitirá personalizar el funcionamiento del mismo. En c:\appserv\php5 hay un archivo “php.ini-development” que copiaremos como “php.ini“, este será el archivo de configuración por defecto, que por ahora no cambiaremos.

Verificando la Instalación de PHP 5

Para que Apache tome la nueva configuración debemos reiniciar el Servidor, podemos hacerlo en una de estas 3 formas:

  1. Reiniciar el PC
  2. Ejecutar en el Símbolo de sistema (como admin), ubicados en la carpeta c:\appserv\Apache2.2\bin> la orden httpd.exe -k stop para detener el servidor, y luego httpd.exe -k start para iniciarlo nuevamente
  3. O como vimos en la Instalación de Apache, usamos el Monitor de Apache, para detener y arrancar nuevamente

Recordemos que si hay algún problema podremos ver el Log de sucesos en c:\appserv\Apache2.2\logs\error.log

Si todo va bien, podemos intentar ejecutar nuestro primer programa PHP, haremos uno bien sencillo llamado index.php que contenga:

<?php

echo ‘Hola’;

?>

lo guardaremos en c:\appserv\www y probaremos en el navegador con http://localhost/index.php donde debería salir el mensaje Hola

Si llamamos a http://localhost, el Server Apache toma por defecto el archivo index.html. En principio no reconoce por defecto nuestro index.php y quizás muestre las carpetas del disco duro, o no haga nada, en vez de ejecutar nuestro Hola, pero como vimos, si funciona como http://localhost/index.php

Para agregar index.php como archivo por defecto, abrimos el httpd.conf y buscamos una línea que dice:

DirectoryIndex index.html

le agregamos los otros archivos posibles que debe tomar por defecto, por ejemplo:

DirectoryIndex index.php index.html index.htm

Ahora si llamamos a http://localhost obtendremos el mismo resultado que llamando a http://localhost/index.php en nuestro navegador.

Para culminar editaremos nuestro index.php agregando una linea:

<?php

echo ‘Hola’;

phpinfo();

?>

La función phpinfo() nos muestra la configuración de PHP 5, con eso comprobamos que todo va bien.

Aguardo sus  dudas y comentarios, en la próxima veremos como Instalar MySQL Server :)

Artículos relacionados:

Google Buzz!
Te gusta este post ?
Me gusta!
Este post le gusta a 6 usuarios
Loading ... Loading ...

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

31 comentarios para “Instalar PHP 5 en Windows 7 con Apache”

  1. Richard says:

    Buenas muchas gracias por su ayuda estoy intentando instalar php pero no seDonde poner las líneas add type , las colocó de bajo de la de load module pero al volver a ejecutar el apache me sale error que será?
    En donde coloca esas líneas? Ayuda por favor

  2. Richard says:

    Ya lo logre es agregando las líneas pero sin las comillas ahora el problema es que me dice que no tengo permiso de la para ver la página, porque?

  3. jhon says:

    Amigo cuando corro el httpd.exe -k stop me da el siguiente mensaje
    (0s 5)Acceso denegado. failed to open the Apache2.2 service

    • No tienes permiso suficiente para instalar el Apache, debes instalarlo con un usuario administrador del Windows 7

      • victor says:

        Amigo Jorge Oyhenard … veo muy interesante la manera de como explicar con mucho detalle esto y grcias por eso , pero tengo una consulta la verdad yo no se de donde sale la carpeta www que tu dices ya esta en la ruta c:\appserv

        Apache2.2

        php5

        www

        pido porfavor que me expliques eso , yo utilizo el windows 7 .
        Gracias .. Victor

        • No creí necesario explicar como crear una carpeta en windows jeje, pero bueno te paras en c:\appser y haces botón derecho nueva carpeta y listo creas una carpeta vacía llamada www

          Ahí luego puedes crear otros archivos php o tantas carpetas como quieras para tus sitios en el servidor local.

  4. lacas says:

    sale un error al acer la configuracion y ya inente modificando varias y cuando le pongo las modificaciones como comentario vuelve a funcionar alguna razon

  5. elmorriz says:

    El problema que tiene lacas seguro es el mismo que tuve yo, al copiar y pegar directamente el texto del navegador la ruta de la carpeta de php5, la ruta de la carpeta debe de estar entre comillas estardar es decir ” y el ejemplo tiene ” aunque se parecen mucho no son lo mismo, intenta escribirlas manualmente y veras que soluciona el problema.

  6. Maurvar says:

    Hola Jorge Oyhenard gracias por este tutorial esta bien explicito y de fácil comprensión me gustaría saber si ya tienes el tutorial para la instalación de MySQL Server. Ya que es bueno hacer la integración de las tres aplicaciones a la ves de antemano gracias

  7. sergio says:

    esta muy bien el sitio

  8. Luis Lastra says:

    Bueno he presentado muchísimos problemas para poder empezar a usar Php…

    Necesito mucha ayuda por lo que aquí les dejo lo que tengo para que me digan como hacer los cambios!!! Ojo en verdad que he tratado de mil formas… para hacer a la vista mas fácil encontrar problemas quite todas las líneas de comentarios que entiendo son las que tiene los #.

    ServerRoot "C:/appserv/Apache2.2"

    Listen 127.0.0.1:8080

    LoadModule actions_module modules/mod_actions.so
    LoadModule alias_module modules/mod_alias.so
    LoadModule asis_module modules/mod_asis.so
    LoadModule auth_basic_module modules/mod_auth_basic.so
    LoadModule authn_default_module modules/mod_authn_default.so
    LoadModule authn_file_module modules/mod_authn_file.so
    LoadModule authz_default_module modules/mod_authz_default.so
    LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
    LoadModule authz_host_module modules/mod_authz_host.so
    LoadModule authz_user_module modules/mod_authz_user.so
    LoadModule autoindex_module modules/mod_autoindex.so
    LoadModule cgi_module modules/mod_cgi.so
    LoadModule dir_module modules/mod_dir.so
    LoadModule env_module modules/mod_env.so
    LoadModule include_module modules/mod_include.so
    LoadModule isapi_module modules/mod_isapi.so
    LoadModule log_config_module modules/mod_log_config.so
    LoadModule mime_module modules/mod_mime.so
    LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule setenvif_module modules/mod_setenvif.so

    <IfModule !mpm_netware_module>
    <IfModule !mpm_winnt_module>
    User daemon
    Group daemon
    </IfModule>
    </IfModule>

    ServerAdmin luis_lastra@ovi.com

    #ServerName localhost:8080

    DocumentRoot "C:/appserv/Apache2.2/htdocs"

    <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    </Directory>

    <Directory "C:/appserv/Apache2.2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>

    <FilesMatch "^.ht">
    Order allow,deny
    Deny from all
    Satisfy All
    </FilesMatch>

    ErrorLog "logs/error.log"

    LogLevel warn

    <IfModule log_config_module>
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common

    <IfModule logio_module>
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access.log" common
    </IfModule>

    <IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/appserv/Apache2.2/cgi-bin/"
    </IfModule>

    <IfModule cgid_module>
    </IfModule>

    <Directory "C:/appserv/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>

    DefaultType text/plain

    <IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    </IfModule>

    <IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
    </IfModule>

    De antemano Gracias

  9. Maurvar says:

    Hola te comento que he tenido varios problemas con el pH 5.3.1 al conectar con las bases de datos puesto que hice la configuración del php.ini basándome en el php.ini de php 5.2.6 y php 5.2.12 el cual me estaba funcionando perfecto con apache 2.2.14 y el phpMyAdmin Versión 3.3.0-beta1 pero cuando solicito un sitio en el explore me arroja el siguiente error:

    Warning: mysql_pconnect(): OK packet 6 bytes shorter than expected in C:AppServwwwmaurosnet_comConnectionsmauro.php on line 9
    Warning: mysql_pconnect(): mysqlnd cannot connect to MySQL 4.1+ using old authentication in C:AppServwwwmaurosnet_comConnectionsmauro.php on line 9
    Fatal error: mysqlnd cannot connect to MySQL 4.1+ using old authentication in C:AppServwwwmaurosnet_comConnectionsmauro.php on line 9

    Por otro lada cuando trato de entrar por el phpMyAdmin Versión 3.3.0-beta1 al MySQL también me arroja un error que dice

    phpMyAdmin – Error
    #2000 – mysqlnd cannot connect to MySQL 4.1+ using old authentication

    la verdad es que no entiendo a que se deba tantos errores con el pH 5.3.1 si estoy haciendo la configuración igual al php.ini de pH 5.2.6 y pH 5.2.12 las cuales funcionaban perfecto.

    Por fa necesito una solución a dichos errores o cuales son los cambios que tengo que hacer en el php.ini para que todo marche a la perfección ya que me urge poder solucionar estos inconvenientes.

    Agradezco cualquier ayuda pronta.

  10. Luis_Kyof says:

    Instale apache sin problemas con tu tutorial, pero en php5 he tenido problemas, trate de cambiar el nombre del archivo: "php.ini-develope…." y no se puede.

    cuando inicio el servidor apache, sale que esta corriendo junto con php, pero cuando creo el archivo, index.php dice que no se encuentra el archivo o algo asi, alguna respuesta por favor, me esta colmando la paciencia :( .

    • elQuique says:

      Y como intentaste renombrar el archivo ? es una operación muy sencilla ren php.ini-developer php.ini y listo !!, claro tenes que tener permisos de administración. Lo mismo el index.php lo haces con cualquier editor y lo ubicas en www siendo esta si seguiste el ejemplo c:appservwww y debe estar configurada como carpeta en la configuración del Apache.

  11. Juan says:

    Gracias excelente manual, me ha servido de mucho ya que habia usado appserver, xxampp y Wampserver y ninguno habia querido hacer funcionar al 100 el php, y para instalar un servidor a pelo es bastante dificil si no tienes ni la mas minima idea :(

    Gracias me ha servido de mucho

  12. T41es says:

    Hombre muchas gracias por el tuto funciona de 10 !!! no me funciono de una pero es solo cuestión de leer y entender, pues no hay nada mejor que encontrar uno mismo los errores y corregirlos pues asi se aprende full ! un saludo desde Bogota !

  13. Eduard says:

    buenas.. amigo es que segui los pasos normalmente y cuando voy abrir el archivo .php por el explorador no me aparece el mensaje como deberia de aparecer sino ke sale la opcion de abrirlo y solo abre el codigo, depronto que sera lo que hice mal… te pregunto es necesario colokar eso de PHPIniDir “C:/appserv/php5″ si yo utilizo por defecto php5 muchas gracias….

  14. Jose Luis says:

    Tengo instalado el XAMPP que me configura apache php y mysql todo funciona bien bajo en contexto de localhost, pero cuando quiero acceder a mis paginas desde otra pc de mi red. No funciona a pesar que se pueden hacer ping a la pc en donde esta instalado el apache.

    Saludos
    Jose Luis

  15. Guillermo says:

    Muchas gracias por tu manual, Hay una cosa que no tengo claro al ejecutar el Index.php me dice que no encuentra la página y la tengo en www. He repasado todo y está como tu dices.

    • elQuique says:

      Usas index.php o Index.php ?, ten en cuenta que la mayúscula cuenta. Igualmente si llamas a localhost sin el archivo index ejecuta el archivo por defecto.

Dejar un comentario