Hace unos días comentábamos cómo instalar un servidor web en nuestro PC de forma que pudieramos, entre otras cosas, alojar en este nuestra propia página web, acceder a nuestros ficheros desde otro equipo y probar alguna que otra aplicación web.
Apache, por sí solo, sólo permite mostrar al visitante webs estáticas, escritas en HTML
Si queremos crear una web dinámica, con la que el usuario pueda interaccionar realmente y que modifique su comportamiento según esta interacción, tendremos que utilizar un lenguaje de programación como PHP, Perl, JSP o ASP.
En este artículo veremos cómo instalar en nuestro servidor el intérprete de PHP y el gestor de bases de datos MySQL de forma que podamos usar en nuestro PC aplicaciones como WordPress, el sistema de publicación que utiliza esta web.
PHP es, como ya hemos mencionado, un lenguaje de programación. El código PHP se puede incluir en un documento HTML, lo que nos permite crear páginas web dinámicas. Estas líneas de código serán interpretadas en el servidor y el resultado mandado al cliente después. Esto es lo que se llama server-side o del lado del servidor, en comparación con client-side o del lado del cliente, modelo en el cual es el propio PC cliente el que tiene que interpretar el código. Un ejemplo de lenguaje de programación que ejecuta del lado del cliente es Javascript.
Lo primero que tenemos que hacer para instalar PHP es, evidentemente, descargar los binarios de PHP. Nos interesará obtener el archivo zip con los binarios de la última versión (buscad algo parecido a “PHP zip package” bajo el encabezamiento “Windows Binaries”). No utiliceis el instalador.
Una vez descargado, pasamos a descomprimirlo. A efectos prácticos el directorio donde lo instalemos no importa, pero a lo largo del tutorial utilizaré como ruta c:\php.
Antes de pasar a configurar PHP y el servidor Apache para que utilice el intérprete instalado, modificaremos la variable de entorno Path, que indica a Windows los directorios donde buscar archivos, por ejemplo, cuando se llama a un ejecutable. Hacemos click con el botón derecho sobre Mi PC y seleccionamos Propiedades para abrir el diálogo de Propiedades del sistema. Seleccionamos la pestaña Opciones avanzadas y una vez ahí, Variables de entorno. En el cuadro de variables de sistema haremos doble click sobre la variable Path para editarla, y añadiremos al final de la lista ;c:\php (cada entrada se separa con un punto y coma).
Las distintas opciones de PHP se configuran mediante un archivo llamado php.ini situado en c:\php. Por defecto este archivo no existe, sino que tendremos que crearlo renombrando el archivo php.ini-recommended. Pasemos a editar php.ini.
Busca el texto include_path = ".;c:\php\includes"
y descoméntalo (borra el ; al inicio de la línea). Evidentemente, si no hemos instalado php en C:/php tendremos que modificar esta línea.
Modifica el valor de doc_root para que coincida con el directorio donde se guardan los archivos que mostrará Apache (por defecto, si no lo cambiamos en httpd.conf, este será C:\Archivos de programa\Apache Group\Apache2\htdocs).
Modificamos el valor de session.cookie_path:
session.cookie_path = \
Y por último, modificamos el valor de session.save_path para poder trabajar con sesiones (el directorio que pasemos como valor a esta variable debe existir, PHP no lo creará por nosotros):
session.save_path = "C:\php\sesiones"
Solo resta activar algunas extensiones útiles para que estas se carguen automaticamente. Tendremos que indicar a PHP dónde se guardan las extensiones, modificando extension_dir de forma que contenga la ruta al directorio ext dentro de la carpeta donde se instaló PHP (c:\php\ext si PHP se instaló en c:\php).
Una vez hecho esto buscamos la sección Windows Extensions que muestra una lista de distintas extensiones que podemos activar. Para cada extensión que queramos, no tenemos más que borrar el punto y coma al principio de la línea o bien añadir una nueva línea si no existe. En el Manual de PHP podemos ver para qué sirve cada una de ellas. Necesitaremos activar, al menos, php_mysql.dll para que PHP pueda guardar y obtener datos de una base de datos MySQL. También es muy recomendable php_mysqli.dll, que ofrece conexiones mejoradas (i de improved) y php_mbstring.dll, necesaria para utilizar codificaciones de caracteres en las que cada caracter ocupa más de un byte (por ejemplo UTF8, la codificación que se utiliza en esta web). Si no sabeis de que os hablo, mejor activad las tres 😉
Es recomendable no activar una extensión si no conoces cual su función, entre otras cosas porque muchas de ellas necesitan otros archivos, y en el caso de que PHP no los encuentre se quejará.
Una vez configurado PHP es el momento de modificar la configuración de Apache para trabajar con este. Como recordareis del artículo anterior, el archivo de configuración de Apache es httpd.conf, situado por defecto en C:\Archivos de programa\Apache Group\Apache2\conf.
Busca el texto:
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Inmediatamente después encontrarás una lista de módulos que se cargarán con Apache. Añade al final de la lista LoadModule php5_module “c:/php/php5apache2.dll” para cargar el módulo de PHP 5.
Busca el texto:
# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
#AddType application/x-tar .tgz
#
# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress
# information on the fly. Note: Not all browsers support this.
# Despite the name similarity, the following Add* directives have nothing
# to do with the FancyIndexing customization directives above.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
Que precede a una lista de tipos MIME que el servidor es capaz de reconocer. Añade al final de la lista AddType application/x-httpd-php .php
Por último busca:
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.html.var
y sustituye DirectoryIndex index.html index.html.var por DirectoryIndex index.php index.html index.html.var. Esto indicará a Apache que los archivos php también pueden utilizarse como archivos de índice de un directorio.
Añade al final del fichero la línea PHPIniDir “c:/php” para indicar al servidor web dónde encontrar el archivo php.ini y reinicia el PC.
Hora de probar que PHP se ha instalado correctamente. Esto se suele hacer creando un archivo php (crear un nuevo archivo con cualquier editor de textos, con nombre, por ejemplo info.php) cuyo contenido será < ?php phpinfo() ?>. Introduce en la barra de direcciones del navegador la url http://localhost/info.php para probarlo. El resultado debería ser parecido a este:
Solo resta proceder a la instalación de MySQL. MySQL es una sistema de gestion de bases de datos de código abierto. Una base de datos no es más que un conjunto de información relacionada con una cierta estructura. Todas las entradas y comentarios escritos en esta web, por ejemplo, se guardan en una base de datos mediante PHP y son mostrados cada vez que el usuario lo pide mediante PHP. Por eso es más que probable que si vas a utilizar PHP tengas que instalar también MySQL (u otro sistema de gestión de bases de datos como PostgreSQL).
Descarga la última versión del instalador para Windows de MySQL desde su página web. En el momento de escribir este artículo existe una versión 5.0 pero no se recomienda dado que aún es una beta. En este ejemplo utilizaremos la versión 4.1.14.
La instalación utilizando el archivo que hemos descargado es bastante sencilla. Simplemente pulsa sobre siguiente (next) hasta llegar a la sección de registro en MySQL.com. No es necesario que nos registremos en su página web, por lo que podemos seleccionar simplemente Skip Sign-Up (Saltar registro).
Al final de la instalación se muestra una casilla que nos da la opción de abrir un wizard que nos permitirá configurar MySQL de forma rápida y sencilla. Evidentetemente, debemos mantener la casilla marcada.
La primera opción que se nos presenta en este wizard es si queremos utilizar una configuración estándar o bien una configuración más detallada. Dado que no es el objetivo de este artículo profundizar en el uso y configuración de MySQL vamos a elegir la opción “Standard Configuration”.
Marcamos las casillas correspondientes para instalar MySQL como un servicio de Windows (Install As Windows Service) y que este se lance automaticamente (Launch the MySQL Server automatically). Marcamos también el que se añada el directorio que contiene los ejecutables de MySQL a la variable Path de Windows (Include Bin Directory in Windows PATH) para poder correr estos desde cualquier lugar.
A continuación se nos mostrará una pantalla desde la que podremos introducir una contraseña para el usuario root (el administrador de la base de datos, es decir, un usuario con máximos privilegios). Hazlo, y procura acordarte de ella 😉 También se nos da la opción de seleccionar si queremos que sea posible conectarse como root desde otro PC y si queremos crear una cuenta anónima. Estas dos últimas opciones son riesgos innecesarios, por lo que mantendremos los checkboxes desmarcados. Siguiente.
Una vez llegados a este punto basta con pulsar execute para cargar la configuración seleccionada e iniciar MySQL.
la verdad no he podidio configurar php y apache
instalo apache y esta bien pero cuando configur php y despues el httpd del conf de apache al poner esta línea para cargar el modulo se detiene el apache y no corre bien.
#LoadModule php5_module “c:/php/php5apache2.dll”
me podrias ayudar.
gracias
Una pregunta: ¿de dónde descargo el Apache?
Gracias
Échate un vistazo a esto: Instalar un servidor web: Apache
holas, estoy desesperado, la pagina info.php, se ve en modo texto, supongo que no esta conectado apache y php,el 27/02/2007 q es dentro de 4 dias,debo entregar una pagina dinamica funcionando, ayuda urgente porfavor.
Bueno, yo solo tuve dos problema al principio, el apache no iniciaba, revise con calma y decía algo de un error en una linea, era en donde se agregaba el php5 tuve que quitar las “” para que funcionara, despues de eso me di cuenta que no servia el info.php y solo modifique “”, por “”
y con esto funciona de maravilla
Saludos, Sr ChitoMix
ha que bien muchas gracias por ese manual me sirvio de mucha ayuda se les agradece…
me salvaron de una que hace ratos no sabia como era lo de la configuracion del mySQL gracias nuevamente…
He instalado PHP, Apache y MySQL funciona todo bien pero cuando me quiero conectar a una BD usando la funcion mysql_connect me sale lo siguiente
Fatal error: Call to undefined function mysqli_connect() in C:\web\BD\prueba.php on line 20
Alguien tiene idea de que puede ser. Gracias
¿Has activado la extensión correspondiente Mauricio?
Ya regresé
aunque este tuto te recomienda cambiar el path en “Mi PC” yo te recomiendo copiar todos tus archivos .dll desde tu carpeta de PHP\ a Windows32(NT,2000,XP,2003) o system (en Windows 9x), (los archivos dll contenidos en php/ext no los muevas)y el archivo php.ini a windows o windowsNT (segun sea el caso) despues realiza la configuracion asi como dice aqui.
recomendacion en windows, para definir rutas dentro de tus configuraciones (httpd.conf y php.ini) usa esta barra “/”, las rutas de directorios (“c:etc/etc”) siempre van entre comillas y sin “/” al final.
espero les funcione. ¡a mi ya me jalo :)) !
Impresionante…
Gracias por todo, la única web que ha servido de algo.
Sigue asi
Muchas gracias por el manual, muy bueno.
Tengo una preguntica. resulta que todo esta perfectamente instalado, pero si creo un archivo con ext. php, al observarlo, no se identifica como tipo php, alguien me podria ayudar
Buenas,me ha encantado el manual. Es bastante claro, pero debo haber hecho algo mal. He repasado todo, pero no doy con la tecla. Me da este error:
PHP Warning: PHP Startup: Unable to load dynamic library ‘C:\PHP\ext\php_curl.dll’ – No se puede encontrar el m¾dulo especificado.
in Unknown on line 0
Y se repite para todos los módulos a pesar que no los he “descomentado”.
Ya he comprobado que el extension_dir sea c:\PHP\ext
Gracias por anticipado.
Justamente cuando quise practicar PHP, mySQL, y aun mas carecia del instalador PHP y mySQL, fue de mucha ayuda el haber leido este sitio para mi…
Suerte Juan
hola que tal quisiera que alguien me ayudara tengo un error y no lo puedo solucionar PHPIniDir “c:/php” es con esta instruccion me pueden decir en donde va ya que al correr el apache me marca este error “quizas esta mal escrito o definido por un modulo no incluido en el servidor” el archivo php.ini si lo tengo y no se por que no lo reconoce si alguien me puede pasar su archivo para remplazar el mio se lo agradecere 🙂
!!AUXILIO!! tengo u nproblema el archivo httpd de apache me marca el siguiente error no puede cargarse C:/php/php5apache2.dll en el servidor no se puede encontrar el modulo especificado no entiendo por que ya que la libreria si se encuentra en esa ruta si alguien me puede ayudar se lo agradecere:'(
jajaj ya pude por fin jeje gracias zotropo encontre la respuesta en otro comentario, solo quiero agregar que esta es una muy buen tutorial 🙂
hola que tal alguien me podria decir de donde descargar una herramienta para manejar mysql de forma grafica ya lo instale pero no estoy familiarizado con esta base de datos y se me haria mas facil manejarla en un ambiente grafico gracias espero y alguien pueda ayudarme
Facilitando el uso de MySQL: phpMyAdmin
hola que tal ya instale todo y funciona a la perfeccion pero tengo una duda sobre otro tema y como vi que hay una gran comunidad de programadores aqui mi pregunta es si alguien ha manejado servlet con html si la respuesta es afirmativa quisiera saber si se puede y existe una herramienta que me convierta todas mis paginas en algo asi como un ejecutable si alguien sabela respuesta gracias
hola ya instale todo pero tengo el siguiente problema al quererme conectar a la base de datos con la funcion mysql_connect me marca el siguiente error
Fatal error: Call to undefined function mysql_connect() in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\TMP1leolh66lv.php on line 40 y n el php.ini s idescomente las librerias correspondientes estoy usando apache2.2.4 y php 5.2.1 si alguien me puede dar una manita gracias hay les dejo el comentario
Para los que se estén volviendo locos intentando que php reconozca la libreria “mysqli.dll” hay una solucion sencilla.
Pilla la libreria libmysql.dll de mysql\bin o php\ext y copiala en apache\bin
Así de sencillo
hola Psychonaut ya intente lo que me dics pero creo que sigue sin funcionar si alguien tien otra idea para intentar gracias:'(
para akellos que tengan problemas con el apache y esta dll “php5apache2.dll,” la solucion es esta cambien la dll por php5apache2_2.dll y dejenla sin comillas esto es asi LoadModule php5apache2 C:/php/php5apache2_2.dll , asi es como funciona esto, en cuanto al mysql,por que me marca el fatal error en la conexcion ala base de datos osea me dice que mysql_conecct()… bueno me marca el error con esa cosa 😛 saludos
Gracias
despues de luchar por un mes con muchos tutoriales este fue el que al final me permitio instalar con exito apache, php y mysql y encotre cual era la causa del error 403 de http
tengo un problema al tratar de ver ejemplos de php que establecen conexion con el servidor sql y con la bd, al ejecutarlo si se conecta al servidor pero no puede seleccionar la bd
Hola tengo instalado en mi casa php5.2 apache2.2 mysql5.2 y phpMyAdmin2.10 y todo de maravilla. El problema es cuando intento instalar todo mi sitio en otra PC, porque las extensiones (php_mysql.dll php_mysqli.dll) no las carga y las bases de datos son inaccesibles en ambas computadora la partición para el el sitio (F:\) ósea e tratado de que en las dos computadoras sea todo igual pero ni así me queda ¿que puedo hacer?
Soy nuevo en apache, php y mysql, no he podio que funcione el info.php, mi plataforma es Windows 2000, ya cambie el modulo de php5 al php5apache2_2.dll y no saca el error de que no lo encuentra, pero al tratar de arrancar o parar el apache sale: error (OS 2) El sistema no puede hallar el archivo especificado. : No installed service named “Apache2”.
Que debo hacer ?????????
Gracias
Hola, llevo todo el dia instalando apache y php, todavia no me ha dado tiempo a Mysql.
Bueno mi problema es el siguiete, consigo arrancar apache sin problemas (despues de superar lo de renombrar el fichero php5apache2.dll). Pero cuando intento hacer http://localhost/phpinfo.php me da el siguiente error; http 403 (Prohibido).
¿Que puedo hacer , me estoy volviendo loca?
Ya he encontrado la solucion para el error http 430, la solucion es la siguinte
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
______________________________________________________________
donde dice “Allow from all” originalmente estaba como “Deny from all” yo lo he cambiado y funciona.
Espero que a alguien le sirva de algo.
Ya instale apache, y php5 de forma correcta
el problema es ke no logro ke php conecte con la base de datos ke tengo en mysql. ya intente poner el @ adeltante y todo pero sigo sin poder conectarme.
Consejos?
gracias
la pagina del info.php no carga por el error http 404 no encontrado. ¿a qué se refiere? si alguien me lo puede explicar
muy buenos consejos y una muy buena guia todo lo q se ve aqui.estoy por instalar php, y mysql en IIS pero no se q versioes usar para q sean compatibles.
Ejecuta el HTTPD.exe en la carpeta …Apache22\bin\HTTPD.exe, y solucionaras el problema
bueno me ayudo mucho, y sigan adelante chau
help instale el AppServer Open Project todo bien
¿pero cual es el user y password por default del phpmyadmin?
es root y la password es 123456 y sino en blanco
Hola amigos ,para los que tengan problemas con la instalacion de php , mandenme un mail a alexin_76@hotmail.com y le mando un mail como instalar PHP 5 con mysql 5.0 y los archivos ya configurados de php.ini y httpd.
El unico problema es que funciona a la perfeccion con mysql_query , pero estoy trabajando con procedimientos almacenados me funciona de maravilla en el navicat pero en php me da el sgte error : Invalid query: PROCEDURE sare_8.listar can’t return a result set in the given context
revisando foros me indican que funcion acon mysqli_query , pero no he editado el php.ini , solo me falta la mysqli.dll.
si alguien me puede ayudar lo agradeceria
Hola a todos!
Mi instalación es Apache 2.2.6 y PHP 5.2.5… pero ahí me quedo. He probado todas las sugerencias, desde renombrar el php5apache2.dll, a quitar las comillas… pero me sigue apareciendo el http 404. El código de mi phpinfo() está revisado. De dónde puede venir el error?
Por favor, que alguien me eche una mano que llevo horas y horas y no consigo avanzar!
Gracias!
Lo indicado arriba para poner intalar el PHP me a funcionado Correctamente.
Gracias…
hola ayudenme en un priblema con mysql ya tengo instalado todo solo me falta eso por que hize una prueba y me sale este error..Fatal error: Call to undefined function mysql_pconnect() in C:\servidor\web\po.php on line 2.
no se si me pueden ayudar de antemano les quedo agradecido oo denme un ejemplo para saber si mysql esta bien instalado ah y ya revise las extensiones y esta bien
oigan no puedo instalar el apache nose que pasa
porfa ayudenme
hola
al principio tambien tuve problemas con lo de la pagina de info.php pero lo que hice fueron 2 cosas:
le quite las comillas al documento “httpd” de la carpeta de c:\archivos de programa\Apache..\..\conf\
y al final la linea que agrege fue esta:
LoadModule php5_module C:/php/php5apache2_2.dll
tal cual asi sin comillas entre la ruta C:.., despues note que aunque guarde el codigo php desde el bloc de notas con el nombre info.php, realmente se guardó como “info.php.txt”, para lo cual está mal, es por esto que a algunos les salía como texto el codigo en el explorador; lo que deben hacer es volver a abrir un bloc de notas nuevo, pegar ahi el codigo siguiente:…
nombre a guardar: “info.php”
en el campo de Tipo: seleccionen “Todos los archivos”
en el campo Codificación: seleccionen “Unicode”
de esta forma el archivo debe guardarse como “info.php” y NO como “info.php.txt”.
Espero que esto les solucione muchos problemas.
Saludos y felicidades por el blog está muy completo.
Hola amigos; saben esto de la computacion me gusta; aunque si es un poco confusa, soy nueva en esta pagina y creanme que esta pagina esta muy completa y muy interesante y fijense que me van a hacer una evaluacion de como instalar un servidor PHP y la verdad es que tengo dudas.
Bueno…
¿para instalar PHP, se tiene que descargar apache?
si se tiene que descargar¿que tipo de apache me recomiendan?
¿la version 2.2.6 o la 2.0.61?
y por ultimo
¿como puedo llamar un ejecutable?
Ayudenme a resolver mis dudas
GRACIAS…
Hola tengo problemas al configurar el php 5, la version que me he descargado es 5.2.5. El caso es que sigo todos los paso del manual, pero el problema esta en que cuando intento arrancar el apache me da un erro diciento que no puede encontrar el modulo del archivo php5apache2.dll. Yo tengo descomprimido el php en D:\Servidor\php, puede ser ese el problema?
Hola tengo un problema, cuando intento abrir el apache me sale este mansaje de error “make_sock: could not bind to addres 0.0.0.0:80 no listening sockets avaiable, shuting down
Unable to open logs”
¿que pasa?
ayuda plis…
mi version de apache es 2.2.6
gracias…
hola
soy nuevo en esto, tengo problemas con la clausula PHPIniDir “c:/php” la he colocado al final del archivo httpd.conf, pero me da error, como que no reconoce el comando, he revisado varias veces y no encuentro el error.
Tambien me da problemas la clausula no indicas si debe estar en algun lugar predeterminado, y parece que la sintaxis da error.
te agradeceria mucho puedas darme respuesta
gracias
lo que debes hacer es verificar y modificar si es necesario el archivo Httpd.conf que esta ubicado en la carpeta Conf en la ruta donde tienes instalado el Apache 2.0.n como sigue:
En la sección “Dynamic Shared Object (DSO) Support” verifica esta linea:
LoadModule php5_module “D:/Servidor/php/php5apache2.dll”
OBS. debes verificar que el archivo php5apache2.dll exista en la carpeta D:/Servidor/php/
y si tuvieras instalado apache 2.2.n debes modificar :
En la sección “Dynamic Shared Object (DSO) Support” verifica esta linea:
LoadModule php5_module “D:/Servidor/php/php5apache2_2.dll”
y verificar que el archivo php5apache2_2.dll exista en la carpeta D:/Servidor/php/
con esto deberia solucionarse tu problema.
hasta pronto….
Muchas gracias por tu guía de instalación!!
Por fin he logrado configurar apache y php para que funcione mysql (y también php:))
Un saludo!
instale la version mysql-essential-5.0.45-win32 de mysql pero no puedo iniciar el servicio.
algun tipo de ayuda??
gracias.
Hola todos, no se si alguien ya lo pregunto, lo que pasa es que ya logre instalar el php y el apache pero cuando hago mis codigos de php si no pongo despues de la apertura “<?php” el php no me lo reconoce y cuando trabajaba con el WOS si me lo reconocia sin necesidad de poner php, a lo mejor es algo de la configuracion de php. ¿Alguien me podria ayudar para resolver esta pequeña duda?
Les mando un saludo muy cordial.