Instalar PHP y MySQL

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 Esto no es del todo cierto, ya que se pueden utilizar lenguajes que se interpreten del lado del cliente, como JavaScript., que no es más que un lenguaje de maquetado. Es decir, HTML no nos permite más que indicar el aspecto del texto. Basicamente lo más excitante que podemos hacer con HTML es mostrar imágenes y crear enlaces.

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).

Modificando la variable de entorno path

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:

Salida de phpinfo

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).

El instalador quiere que nos registremos en MySQL.com ;)

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.

Distintas opciones de configuración de MySQL

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.

Opciones de seguridad de MySQL

Una vez llegados a este punto basta con pulsar execute para cargar la configuración seleccionada e iniciar MySQL.

168 comentarios en «Instalar PHP y MySQL»

  1. Hola he instalado todo tal cual lo explican mas arriba y ningun problema.
    Ahora bien quien me puede ayudar con este error q me sale a correr una web:

    Warning: require(config.php) [function.require]: failed to open stream: No such file or directory in C:\xxxxx\Apache2.2\htdocs\admin\edituser.php on line 1

    Fatal error: require() [function.require]: Failed opening required ‘config.php’ (include_path=’.;C:\php5\pear’) in C:\xxxxx\Apache2.2\htdocs\admin\edituser.php on line 1

  2. ¿como puedo conectar mysql con php y apache? tengo corriendo en mi maquina apache + php, para eso tuve que configurar los archivos de configuracion de ambos, pero para el mysql no tengo idea, ¿solo es instalarlo y ya? ¿como se que funciona?

  3. hola, instale el apache y descargue el fichero php en c:/php, tambien modifique el httpd.conf

    LoadModule php5_module»C:/php/php5apache2_2.dll»

    con comillas y sin comillas, me fije q existiera el dll.

    agrege el
    AddType application/x-httpd-php.php
    en los mime , y en la ultima linea del httpd puse
    PHPIniDir»C:/php»

    tambien cambie el php.ini-recomended por php.ini

    y cuando quiero cargar el apache me sale:

    The request operation has failed.

    Noce q tengo que hacer para que salga bien, o si estoy escribiendo mal o en los lugares incorrectos, por favor ayudenme que estoy estancada en esto. :´(

  4. Cecilia PHPIniDir «C:/php» Solo te falta un espacio ¿lo has probado asi?

    Por otro lado gracias por este tutorial que me ha servido para montar mi servidor en mi pc me ha costado pero lo estoy consiguiendo. Solo me queda MySql

  5. Nice!!!… muchas gracias por tu ayuda todo funcionando correctamente mil mil graciaaasss! Un besote para ti

  6. Gracias mil gracias… hasta que encontre un manual que funiciona, tratando de instalar php5 llevaba dos dias en la lucha… MUCHAS PERO MUCHAS GRACIAS. Este manual vale oro. Gracias nuevamente. Ahora si podre hacer mi proyecto. Espero poder molestarte si tengo problemas en conectar mi bd en mysql con php. Pero por el momento estoy feliz de ver el manual de php en mi navegador. Eres grande man!

  7. he seguido todos los pasos del tutorial pero al llegar a la parte de ejecutar la configuracion de MySQL el tercer item no se ejecuta que es start server. ya tengo instalado apache y php.

  8. hola a todos. instale todo perfectamente pero al llamar una base de datos desde una pagina con:
    $link = mysql_connect(«»,»»,»rocco»)
    or die («no se ha podido conectar»);
    me aparece esto: Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘ODBC’@’localhost’ (using password: YES) in C:\servidor\web\conec.php on line 12
    no se ha podido conectar, a que se debera? el password es correcto.

  9. Holas trate de instalar el php hasta eso de las 2 a.m y no me permiti cargar.

    creo q no comprendi estas lineas:
    1. cual de las tres session.save_path es la que tengo q modificar?
    [code]session.save_path = «C:\php\sesiones»[/code]

    2. con decis q me ubique a la ultima linea del httpd.conf?
    [quote]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.[/quote]

  10. Bueno por fin solucione mis errores sin necesidad de hacer el primer paso 🙂
    Pero igual este sitio me sirvio de referencia.
    Instale siguiendo los pasos de la misma pagina de php 🙂
    pero el error q tuve es que el apache q tengo en la pc era la version 2.2 asi q en el manual de php deci q si es 2.2.x el modulo es: php5apache2_2.dll

    Bueno gracias

  11. Todo listo: Apache, PHP y MySql. Funcionan perfectamente pero no se porque cuando intento conectarme a la base( mysql_connect()) me rechaza. Reconoce el servidor «localhost» pero no el usuario. Aparece algo como o parecido. He modificado el fichero de configuración de MySQL pero sigue igual. No se como va esto.

  12. como instalo apache,php6.2 y mysql en mi computadora soy principiante en esto y necesito ayuda descargo php y mysql pero no puedo trabajar en ellos no se que hacer ayudame por favor

  13. holas
    bueno yo soy bastante novato en el mundo de la informatica quisas he pasado algo por alto. bueno el asunto es que intenté instalar varios programas de localhost y el único que me hizo caso es el FoxServ. Aparentemetne todo va hasta que intento entra a Check MySQL, me pide la contraseña y a pesar que la pongo CORRECTA no funciona… ¿sugerencias?
    gracias

  14. BUENISIMOOOOOOOO!!!! muchisimas gracias, aqui encontre la respuestas a mis problemas despues de horas de busqueda!!!! 🙂 solo tenia que renombrar el dll

  15. He llevado a cabo todos estos pasos, pero no me reinicia el servidor apache, cuando intento me pone The requested operation has failed!
    Instalé el apache_2.2.8-win32-x86-no_ssl
    y php-4.4.8-Win32.
    Parece el error es cuando intenta cargar el modulo de php, no sé…
    Gracias

  16. Excelente articulo… gracias a este articulo termine la instalacion exitosamente luego de varias horas de probar mil y una cosas… gracias!!!

  17. Tengo problemas con el php cuando creo el info.php en que directorio debo crearlo y cuando se ejecuta el Apache me sale un mensaje «No services intalled» si alguien me puede ayudar muchas gracias

  18. Como hago para activar el Mysql en Windows?, tengo concimiento de que debo abrir un archivo que esta localizado en la carpeta C:/ y activarlo borrandole un «;» que trae predeterminado, pero no se exactamente la ruta y el nombre de ese archivo. me pueden ayudar con eso?

  19. he hecho todo lo recomendado pero me sale error
    guarde los dlls y el php en windows/system32 pero me sal este error
    Fatal error: Call to undefined function mysql_connect() in C:\Archivos de programa\Apache Group\Apache2\htdocs\colegio\includes\dbconnect.php on line 21

  20. hola ya probe todo, todas las soluciones que comentan aqui y no me funciona el php, no me digan que pruebe tal o tal cosa que ya se publico aca por que ya probe todo

    El apache se inicia, tiene la lucecita en verde, no aparece nada mas en la lista, en la barra de estado del apache monitor dice Apache/2.2.9 (Win32) PHP/5.2.6

    sea que cargue localhost o localhost/index.php solo me funciona el index.html que dice «It Works»
    pero no el index.php ni nada con php
    si pongo codigo php en el index.html no se ejecuta, si llamo a un archivo.php me dice «HTTP 500 Error interno del servidor»
    el otro error que aparece es al ejecutar el httpd.exe, dice:

    (OS 10048)Sólo se permite un uso de cada dirección de socket (protocolo/dirección de red/puerto) : make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs

    ya probe cambiar el puerto de escucha, solo un puerto y con la ip local, ambos, pero nada

    ayudenme!
    ya no se que pueda ser ¬_¬
    gracias ^_^

  21. a los que tengan el problema de : Fatal error: Call to undefined function mysql_pconnect() in

    añadan este codigo en httpd.conf

    LoadModule php5_module «C:/php/php5apache2_2.dll»
    PHPIniDir «C:/php»

    en este orden guarden el archivo y solucionado

  22. Saludos, de ante mano mis felicitaciones.. excelente manual. Les dejo un problemita para el q sepa como solucionarlo, se lo agradeceria.

    Tengo instalado IIS, Apache, PHP y Mysql en mi equipo. Todos funcionan, cuando corro un script de PHP desde el Apache todo funciona perfecto, pero cuando corro un script de PHP desde el IIS no me reconoce las funciones del MySql. Para poder correr PHP en IIS instale la ISAPI en el servidor con la dll php5isapi.dll . Todo funciona menos las funciones de mysql.. espero alguien sepa por q pasa.

    Suerte

  23. tengo un problema:He instalado apache 2.2.11 y php 4.4.9 y ademas e instalado windows installer.Lo hice por la sencilla razón que los programas (apache y php)estan con extensión MSI.y cuando ejecuto el apache «Inicio/Apache http server 2.2/control Apache server/start» me muestra el siguiente mensaje: http. exe Syntax error on line 60 of C: Archivos de programa/Apache software foundation/Apache2.2/conf/httpd.conf: Cannot load C:/servidor/php/sapi/php4apache2.dll into server: No se puede encontrar el módulo especificado.
    Espero que me ayuden
    ¡Ayuda! se los agradecere

  24. Hola: Parto de la base de que la única pregunta estúpida es aquella que no se hace. He instalado Apache 2.2.10 (Win 32) y a la vez he seguido todas las instrucciones del tutorial de esta misma página. Sin embargo no logro que el info.php sea «visto» en el navegador. La línea que esscribí en el info.php quedó exactamente así (sin los símbolos de mayor y menor)
    Estará bien? El archivo está en el raíz del C:
    Si ven que son muchas mis dudas y que me falta ver un tutorial más básico, sólo díganmelo, solamente quiero aprender. José

    1. @José por razones de seguridad no se puede escribir código PHP ni HTML (a excepción de algunas etiquetas) en los comentarios. Si quieres que se vea tienes que sustituir el < por &lt; y > por &gt;

  25. Mmm… veo que no es que me haya olvidado, igual no se ve, la describo:

    cierre de interrogación php espacio phpinfo espacio abre y cierra paréntesis espacio cierre de interrogación.

  26. Gracias Zootropo: Y antes de seguir: Gracias también a vos y a todos los que colaboran aquí con los que hacemos los primeros palotes en esto. Son muy pacientes de verdad. Te cuento pues que finalmente usé la instalación de Appserv, pero le tuve que hacer algunos arreglos «artesanales», por supuesto que siguiendo las instrucciones de este tutorial. Finalmente, lo único que no conseguí es que me muestre el info.php como debe y solamente lo abre como si fuese un archivo txt. Sigo investigando, ya me fije en la extensión y no es eso. Abre sin embargo correctamente el archivo que trae default el Appserver. Por último, no me gusta utilizar un sitio tan bueno sin registrarme, pero no he hallado dónde en este, tal vez no sea costumbre. Gracias otra vez, muy bueno y lcaro lo tuyo Zootropo y todos los aportes, espero poder ayudar a alguien alguna vez.
    Abrazos a tod@s. – José de Esquel (lagos, bosque y Cordillera Patagónica)

  27. Una pregunta estoy empezando a configurar php, pero tengo una duda donde doy de alta lo siguiente:
    modificar la directiva PHPIniDir:
    PHPIniDir «C:/php-5.0.1-Win32»

  28. tengo instalado Appserv y me dice que no tengo permiso para usarlo no puedo correr mis programas dice que no encuentra la página y me dijeron que le tengo que otorgar permisos para que los reconozca y no se como hacerlo ¿Me puedes ayudar por favor me urge? y soy novata apenas estoy aprendiendo

  29. a mi me gustaria saber como configurar php y mysql para que desde php se pueda acceder a una base de datos de mysql sin phpmyadmin.

    gracias por vuestro tiempo.

  30. hola ya instale php y apache y pues ya corre si pruebo el localhost me sale las carpetas y este mensaje Apache/2.0.63 (Win32) PHP/5.2.10 Server at localhost Port 80 y pues creo que ya corre pero al ejecutar el info.php me sale el error http 404 aque se debe esto ayuda es urgente

  31. Hola a todos!
    ya tengo instalado Apache, PHP y mysql ya lo descargue y lo instale. mi problema es que funcione en PHP, para esto, he leido en este mismo foro que tengo que descomentar unas lineas en el php.ini, no?? ya lo hice pero quiero saber si algo mas me falta, ¿tengo que moverle algo al httpd.conf de apache? y como puedo comprobar que ya funciona mysql en php. porfavor sean muy detallistas en la explicacion, necesito mucho su ayuda. gracias.. me urge!!!!

  32. Pingback: Tutorial rápido de PHP | El mundo de IMD

  33. Pingback: Tutorial rápido de PHP | chmod 000 /bin/chmod

  34. Muy buen tuto, estuve navegando por la red y definitivamente este es el mejor tutorial que he encontrado. Te felicito y eres un genio. Gracias!!!

  35. bueno acerca del mostrar la info.php el codigo es asi:

    prueben asi y les saldra, estuve luchando largo rato despues me di cuenta como era jeje alaos

  36. Pingback: Tutorial rápido de PHP

  37. Lo que pasa, Oswaldo es que el módulo de la última versión de php no funciona correctamente con la última versión de apache. Borra el módulo php5apache2.dll y renombra php5apache2_2.dll a php5apache2.dll, con el que si funciona correctamente

    Graciaaaaaaaaaaaaas, graaaaaaaaaaaaaaaaacias, graciaaaaaaaaaaaaaaaaaaaaaaaaaass, muchas gracias por fin corrio el apache con php5 tengo mucho tiempo buscando como hacer esto manualmente y por fin se logro muchisimas gracias

  38. Hola. He estado como una semana con esta tanda, y no he podido hacer la instalacion, quede pegado en el paso en el cual deberia acceder a la página de PHP, es decir en el paso de acceder mediante nuestro navegador a la dirección http://127.0.0.1/info.php o
    http://localhost/info.php

    Como no funciono, lo deje hasta ahi. Me da lata retomarlo ya que realice los pasos uno a uno. He reiniciado cientos de veces.

  39. Muchas gracias , ya que esta web contiene la guia mas completa y entendible de configuracion de este tipo je je, tube un gran problema al principio pero parece que todo era en torno al cargar el modulo de php pero ahora ya tengo con que entretenerme je je…

  40. Mil gracias. Tenia ya mas de 9 horas buscando una solución. Lo único que le faltaba a mi configuración era la línea PHPIniDir. Olfateaba que estaba cerca de una solución porque mis programas en php corrían sin ninguna dificultad desde la línea de comando. Excelente!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.