Check the new version here

Popular channels

Hacer server winxp con Apache, PHP, mysql, etc !

"Montar Un Servidor Web Con Apache, PHP y MySQL y PHPmyAdmin con Windows XP (basatante largo)"


Este manual es para Montar el PHP como Modulo de Apache por 3 razones, la primera es que es una de las manera más facil de configurar el PHP en apache, la segunda es que es la configuración que mayor estabilidad tiene, y la tercera es que esta configuración es la que la mayoria de los servers usa y es la que use yo. Tambien se puede configurar muy facil como CGI usando la libreria FastCGI pero es altamente inestable y es un suicidio si queremos probar nuestros scripts bien. Ahora tambien podemos hacer que jale php usando IIS de Microsoft, pero es una lata, es inestable, hay que instalar mil cosas a windows, de las cuales solo usaras una pero que a huevo te instala todas, en resumen mejor echale un cerillo a tu PC antes de usar IIS, además lo cobran.

Así que pondre este tutorial para que tu montes tu propio servidor en tu pc da manera facil y gratuita y puedas probar tus script's de php, probar tus bases de datos, etc, ahora pondre los links a los programas que yo mismo use para que luego no se diga que pongo una cosa y uso otra, así no abra pierde, y tambien pondre mis experiencias personales. Antes de empezar cabe aclarar que este manual es para instalarlo en Windows XP, no me hago responsable por cualquier otra versión de Windows, aunque deberia de funcionar igual, no es mucha ciencia en realidad. Ahora si empecemos con todos los pasos:

Instalación de Apache 1.3.X
Yo me decidi por la versión 1.3.X ya que es la más sencilla a mi juicio de instalar, buscaremos la última versión de este tipo. Yo estoy usando la version 1.3.37 la cual hasta el momento es la ultima más estable de la serie 1.3.x, y el archivo que tenemos que bajar es:

http://archive.apache.org/dist/httpd/binaries/win32/apache_1.3.37-win32-x86-no_src.msi

En este punto hay un punto como comentario, no se porque pero Apache para esta version solo saco en MS o sea que necesita Windows Installer, no saco un exe lo cual se me hace raro, pero si alguien encuentra una version anterior (no tan vieja) que si sea ejecutable pues adelante, pero recomiendo esta en especial porque es muy ligera a diferencia de los Ejecutables

Bien, una vez que lo tengamos, ejecutamos el instalador y vamos recorriendo las pantallas hasta que salga una donde nos piden unos datos, en cuyo caso pondremos:
Network Domain: 127.0.0.1
Server Name: 127.0.0.1
Administrator's Email Address: nuestro e-mail, aunque no es totalmente necesario.
Run when started manually, only for me. Seleccionamos esta opción. Tal y como se muestra a continuacion:



La IP 127.0.0.1 es la dirección IP asociada a nuestra máquina, es decir el host local o vulgarmente conocido como Localhost. Es importante decir que a la hora de probar tus scripts en modo local, da igual que pongas 127.0.0.1 o localhost. Finalmente, recordar que el Apache se instala por defecto en la carpeta:
C:Archivos de programaApache GroupApache
Bien, ahora vamos a instalar el PHP. Asegúrate ahora de tener cerrado el Apache.

Instalación de PHP 4
Ahora instalaremos el PHP4, y procedemos a descargar el PHP para Windows. El archivo es el siguiente:

http://mx2.php.net/distributions/php-4.4.4-Win32.zip

gualmente y como prometi, yo use la version 4.4.4 que es la versión disponible hasta esta fecha. Según vayan saliendo nuevas versiones podrás irlas encontrando en php.net en la sección downloads.

Una vez descargado todo el ZIP, nos creamos una carpeta en el sitio donde queramos instalar los archivos del servidor (PHP, MySQL...), por ejemplo nos creamos una carpeta en la raíz del disco duro y que quede así: C:Servidor Ahora extraemos los archivos del ZIP de PHP dendro de esa carpeta. En este caso se crea la carpeta C:Servidorphp-4.4.4-Win32 pero como esta muy largo el nombre y poco operativo para un servidor, procedemos a renombrarla a C:ServidorPHP

Y ahora hay que seleccionar el php4ts.dll (localizado en C:ServidorPHPphp4ts.dll) y copiarlo al directorio System32 de la carpeta del Windows. Si hay otro archivo en System32 lo sobreescribimos. Igualmente seleccionar los archivos que están en la carpeta C:ServidorPHPdlls y copiarlos a la carpeta System32 igual que hicimos con el archivo php4ts.dll

Ahora otro comentario, yo en lo personal no use php5 porque aún le falta cierta compatibilidad con los foros y blogs, así que es preferible que instales la 4 que jala perfecto con cualquier sistema de foro si es esto lo que quieres echar a andar en tu servidor.

Configuración del archivo php.ini
El siguiente paso es configurar el php.ini. Renombramos o copiamos el archivo C:ServidorPHPphp.ini-dist y le ponemos php.ini Ahora lo editamos con el mismo block de notas. Si lo necesitáramos (lee antes la explicación), editamos la línea register_globals = Off y la colocamos el valor: register_globals = On

Explicacion:
¿Qué hago con register_globals? ¿ON u OFF?
Activar esta directiva nos permite asumir que las variables son globales y pueden llegar por cualquier método (POST, GET, COOKIE, SERVER, etc). Así, por ejemplo, si utilizamos una variable global de sesión o cookie se puede suplantar fácilmente mediante una variable por url, con lo cual nuestro script no es seguro. Un buen programador de PHP tendría la directiva en OFF y usaría los arrays globales ($HTTP_X_VARS) o los superglobales $_POST, $_GET, etc., que están disponibles a partir de la versión 4.1.X de PHP. ¿Y por qué? Pues por esos temas de seguridad en los script y porque debemos acostumbrarnos a no manejar variables globales ya que en un futuro el PHP tendrá la opción en OFF por defecto y no podremos cambiarla. Sin embargo, por temas de compatibilidad con script antiguos o que hagan uso de variables globales, podría interesarnos activar esta característica, pero repito que lo deseable sería tenerla en OFF y hacer uso de los arrays globales o superglobales.
---------------------------------------------------------------------
A continuación vamos a indicar a PHP dónde se guardan las extensiones. Dentro del php.ini buscamos extension_dir y le ponemos la carpeta que contiene los archivos php_xxx.dll, que por defecto es la carpeta extensions dentro de PHP.
IMPORTANTE: durante toda la configuración de directorios, debes utilizar esta barra "/" y no esta "". O sea, que debe quedar así:

; Directory in which the loadable extensions (modules) reside.
extension_dir = C:/Servidor/PHP/extensions/

Además podemos activar las extensiones que queramos o necesitemos, para lo cual buscamos Windows Extensions y para cargar las extensiones les quitamos el ; de delante.

Por ejemplo, si quisiéramos cargar la extensión gd2.dll (para manejar las funciones PHP relativas a imágenes) deberíamos cambiar ;extension=php_gd2.dll por extension=php_gd2.dll

Puedes ver para qué sirve cada extensión en el Manual oficial de PHP. Como nota adicional, resaltar que hay algunas extensiones que requieren de librerías extra que no vienen en el paquete completo de PHP, y para hacerlas funcionar tendremos que buscar dichas librerías. En Mi caso yo tengo activadas extension=php_mbstring.dll, extension=php_gd2.dll, extension=php_gettext.dll.

Ahora, si vamos a hacer pruebas con upload de archivos via HTTP, debemos indicar el directorio donde los archivos se almacenarán temporalmente. Para ello buscamos upload_tmp_dir y le damos el valor de una carpeta que exista. Por ejemplo, en nuestro directorio C:ServidorPHP creamos una carpeta uploads, por lo que pondremos
"C:/Servidor/PHP/uploads/", quedando algo así:
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = C:/Servidor/PHP/uploads/

Si queremos cambiar el tamaño máximo de los archivo que pueden subirse via HTTP, buscamos upload_max_filesize y cambiamos el valor por defecto que trae, 2M (2 MB), por el que queramos. No se recomienda poner un valor alto.
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Para trabajar con sesiones, debemos especificar un directorio donde se guarden los archivos temporales. Al igual que 2 pasos antes, buscamos session.save_path y le damos el valor de un directorio que exista (o lo creamos):
session.save_path = C:/Servidor/PHP/sessions/

A continuación copiamos el php.ini a la carpeta C:Windows de nuestro Windows XP. Ya teniendo todo esto es momento de decirle a apache que ya esta listo el PHP

Configuración del archivo httpd.conf de Apache
Buscamos Dynamic Shared Object (DSO) Support que es donde se cargan los módulos.

Ahí vamos a cargar el módulo de PHP para Apache, dando la dirección del archivophp4apache.dll (PHP4) que lo contiene. Encontramos hasta un ejemplo:
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Y ahora añadimos justo debajo:
LoadModule php4_module C:/Servidor/PHP/sapi/php4apache.dll

De tal manera que tiene que quedar así:
# Example:
# LoadModule foo_module modules/mod_foo.so
# LoadModule php4_module C:/Servidor/PHP/sapi/php4apache.dll

Ahora bajamos un poco por el httpd.conf y llamamos al módulo mod_php4.c, de tal manera que quede así:
ClearModuleList
AddModule mod_php4.c
#AddModule mod_vhost_alias.c

Vale, ahora buscamos en el httpd.conf el modulo mod_dir.c y nos sale esto:
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
Modificamos la línea central para que si entramos en un directorio tipo http://127.0.0.1/directorio/ nos autoejecute el index predeterminado (si existe) y no nos salga un mensaje de error. Puedes usar más nombres si lo prefieres. Se ejecutarán por orden: si no encuentra el primero, pasa al segundo; si no está el segundo, pasa al tercero, y así sucesivamente hasta que si no encuentra ninguno entonces da error. En la siguiente línea, si en nuestro directorio tenemos un index.htm y un index.php, por defecto se ejecutará el index.htm ya que está antes.

DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml

Ahora le añadimos debajo estas líneas:

AddType application/x-httpd-php .php .php3 .php4 .phtml
AddType application/x-httpd-php-source .phps

La primera indica las extensiones que serán interpretadas por el Apache. Por ejemplo podemos añadir la extensión .htm o .html para que el Apache ejecute el código PHP contenido en esas páginas (es decir, el uso de código PHP no está limitado exclusivamente a archivos *.PHP). La segunda sirve para que si entras en una página loquesea.phps entonces se muestra el código PHP a color, muy útil si queremos por ejemplo mostrar el código fuente a color en una página. De tal forma que al final todo queda así:

<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml
AddType application/x-httpd-php .php .php3 .php4 .phtml
AddType application/x-httpd-php-source .phps
</IfModule>

El directorio predeterminado para guardar nuestras páginas es el htdocs del Apache:
C:Archivos de programaApache GroupApachehtdocs
Pero podemos cambiarlo fácilmente. Buscamos DocumentRoot y nos sale esto:
DocumentRoot "C:/Archivos de programa/Apache Group/Apache/htdocs"
Nosotros sustituimos la carpeta htdocs del Apache por la que queramos. Todos los archivos que vayas a probar con el Apache deberán estar localizados en esta carpeta. Por ejemplo nos creamos una carpeta WEB dentro del directorio del servidor:
DocumentRoot "C:/Servidor/WEB/"
Y ya podemos guardar el archivo httpd.conf

Probando nuestro servidor Apache
Ahora vamos a probar el Apache y PHP, para lo cual deberemos arrancar el Apache.
Para Apache 1.3.X sólo tenemos que arrancar el apache.exe de la carpeta del Apache para iniciar el servidor, con lo cual nos sale una ventanita de MS-Dos donde nos indicará que está activo (running) o no. Basta cerrar la ventanita de MS-Dos para desactivar el Apache.

Si todo ha ido bien, podemos crear un archivo llamado por ejemplo info.php dentro de la carpeta de nuestra web cuyo contenido sea exclusivamente el siguiente:
<?
phpinfo();
?>
Si accedemos mediante nuestro navegador a la dirección http://127.0.0.1/info.php o http://localhost/info.php (recuerda que 127.0.0.1 = localhost) con el Apache activo deberemos visualizar una página de información de PHP. Si no sale, algo ha fallado, revisa
los pasos.



Algo así debería aparecerte.
Como has podido observar, para acceder a nuestro servidor local y así poder probar nuestros script y las páginas de nuestra web, siempre accederemos con la dirección 127.0.0.1 o localhost (sin WWW) en el navegador pues esta es la dirección del host local de nuestro ordenador. En general, para visualizar o acceder a cualquier archivo (PHP, HTML, TXT, ZIP, GIF, JPG, etc.) que tengamos en nuestra carpeta de la web, lo haremos de la siguiente forma:
http://localhost/CARPETA/ARCHIVO.EXT

Donde CARPETA es la carpeta (o serie de carpetas) relativas a la raiz en que se encuentra el ARCHIVO.EXT. Por tanto resaltar que no sólo podemos hacer llamadas a script PHP, sino también a páginas HTML, descarga de archivos, imágenes, etc., tan solo poniendo la dirección correcta en el navegador. Es simplemente un servidor. De esta forma, podemos tener nuestra web funcionando en nuestro propio ordenador para construirla desde cero o bien hacer las pruebas que necesitemos sin tener que estar conectados a Internet.

Instalación de MySQL
Vamos a hacer la instalación de una versión 5.0.X, por lo que en este caso buscaremos la
versión que corresponda en los downloads para Windows.Hasta este momento la ultima más estable es la versión 5.0.26 y el archivo que uso es:

http://mysql.sd2.mirrors.redwire.net/Downloads/MySQL-5.0/mysql-5.0.26-win32.zip

Existen dos tipos de archivo descargable, en ZIP y en EXE (el link aunque este en zip, dentro trae el instalador. Yo prefiero el ejecutable porque es más facil de configurar, por defecto se instala en C:Archivos de programaMySQLMySQL Server 5.0, se recomienda elegir otra ruta de instalación, y por ejemplo lo vamos a hacer en C:ServidorMySQL para tener el PHP y MySQL en la misma carpeta.

Nos dara la bienvenida a MySQL


Nos preguntara que tipo de instalación queremos, por supuesto seleccionamos custum(personalizada) para poder cambiar la ruta de instalación

Nos lleva a la ventana de custum y aqui damos click al botos de Change y le damos la nueva ruta la cual sera C:ServidorMySQL para tener cmo habiamos dicho PHP y MySQL juntos.



Ya solo le damos next y en la ultima ventana le damos al Boton Install y eso es todo en esta Parte
-----------------------------------------------------------------

Una vez finalizada la instalación, nos mostrara un mensaje el cual te dira que si quieres configurar MySQL server ahora, selecciunalo y le das finish, te abrira otra ventana la cual es para configurar el password de root, creo que no te deja mantenerlo vacio por seguridad, ya que esto acarrea problemas así que acuerdate bien de que contraseña pones sino tendras que desinstalarlo y volverlo a instalar.Antes al lado del reloj te salia un semáforo. Si el semáforo se ponía en verde, perfecto, si no, algo habia fallado fallado, ahora es diferente ya que mysql se instala como un servicio de windows en modo automático por defecto, o sea que cada que inicias windows se inicia MySQl, esto es muy conveniente cuando solo vamos a usar la PC como servidor, pero si solo lo vamos a usar como medio de prueba de nustros scripts, el que siempre se este ejecutando MySQL gasta recursos que podriamos utilizar con otras aplicaciones, asi que lo que yo hago es ir a inicio->ejecutar y tecleo services.msc, busco el servicio MySQL le doy click con el boton derecho, selecciono propiedades y en esa ventana voy a tipo de inicio, selecciono Manual tal cmo aparece en la imagen y listo.



Y para no estar a cada rato llendo a inicio->ejecutar etc, creo un acceso directo al escritorio a servicios y así puedo iniciar y para MySQL cuando quiera.
----------------------------------------------------------------------------------------

Instalación de phpMyAdmin
PhpMyAdmin es una utilidad que nos sirve para inteactuar con una base de datos de forma muy sencilla y desde una interfaz web. Nos sirve por ejemplo para crear bases de datos, tablas, borrar o modificar dados, añadir registros, hacer copias de seguridad, etc. Es una aplicación tan útil que casi todos los hosting con MySQL disponen de ella, por ello se analizará su instalación. Además, vamos a usarlo para crear los usuarios MySQL para así poder utilizar las bases de datos de forma segura. Al ser una aplicación escrita en PHP, necesita de Apache y MySQL para poder funcionar.

La versión más estable y la cual yo estoy utilizando es la 2.9.0.1 y su link de descarga es el siguiente:

http://easynews.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.9.0.1.zip

La instalación es relativamente sencilla: extraer todo el ZIP en la carpeta raíz de nuestra web.
OJO: en la carpeta de nuestra web, C:ServidorWEB y no dentro de la carpeta del PHP o similares. Como pone un nombre extraño a la carpeta, mejor la renombramos a phpmyadmin, de forma que quedaria algo así: C:ServidorWEBphpmyadmin y esto es porque cambiamos la ruta de DocumentRoot en el archivo httpd.conf, a menos que hayan especificado otro nombre deberan ponerlo.

Primero que nada vamos a ir a C:ServidorWEBphpmyadminlibraries y abriremos el archivo config.default.php con nuestro block de notas y luego seleccionaremos todo el contenido y lo copiaremos a otro página en blanco del mismo blok de notas y lo nombraremos config.inc.php que es nuestro archivo que debemos configurar y el cual pondremos en la carpeta C:ServidorWEBphpmyadmin.

Ahora vamos a hacer una pequeña configuración del phpMyAdmin. Para ello debemos editar este archivo que acabamos de crear (el archivo config.inc.php) y, leyendo de arriba hacia abajo, buscamos la primera aparición de la siguiente línea:
$cfg['PmaAbsoluteUri'] = '';
Debemos darle la ruta absoluta donde tenemos el phpMyAdmin. En nuestro caso sería así:
$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';
Recuerda que podemos poner localhost o 127.0.0.1 Ahora buscamos si nos aparece algo
como esto:
$cfg['blowfish_secret'] = '';
Le pondremos una cadena de caracteres cualquiera, que servirá de semilla para la encriptación de contraseñas al usar la autentificación con cookies:
$cfg['blowfish_secret'] = 'aqui puedes poner lo que quieras';
Y guardaremos el archivo.

Para probar que se instalo correctamente vamos a http://localhost/phpmyadmin/ y deberia darnos una ventana como esta:



Ya con esto podemos crear usuarios, bases de datos, modificarlas, etc.

Nota personal: si les llegara a dar el siguiente error a la hora de abrir phpmyadmin:

#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

esto es por una incompatibilidad con los nuevos protocolos de autentificación y se resuelve muy facil, simplemente ve a la consola de DOS de mysql y has lo siguiente:
1) Escribir:
mysql -u root -pontucontraseña
2)Escribir:
mysql>use myslq;
mysql>update user set password=old_password(’tucontraseña’) where user=’root’;
mysql>flush privileges;
mysql>exit;

Y listo, reinicia apache(por precuacion) y tambien reinicia mysql y listo.

Apache Manager para Apache 1.3.X
Primero que nada lo descargamos de:



Pass Para Descomprimir:
razacom-f_p-m_d

Con esta aplicación podremos manegar apache más facilmente, iniciarlo, pararlo, reiniciarlo, además se ejecuta el Apache 1.3.X como un icono al lado del reloj y no como una ventana de Ms-Dos que puede llegar a ser molesta. Además permite cerrar, pausar y reiniciar el Apache si por ejemplo estamos haciendo:



Este programa se distribuye en un ZIP que contiene un ejecutable y más archivos; estos archivos son el código fuente, pero el archivo que nos interesa es el apmgr.exe que copiaremos en la misma carpeta que esté el apache.exe A continuación, basta llamar al a apmgr.exe para arrancar el Apache. Si lo hacemos desde un acceso directo, en el destino podemos poner C:Ruta-del-Apacheapmgr.exe -r donde el -r indica que arranque automáticamente el Apache al iniciar el apmgr.exe.

Esta es la configuración a mi parecer más idonea y la que mejor me ha funcionado, si desean más información, les adjunto el manual completo de donde saque la información y si aún así tienen dudas pues ponganlas aqui y con gusto se las resolveremos:



Pass Para Descomprimir:
razacom-f_p-m_d
-----------------------------------------------------
Termineeee.......
!!!
0
10
0
1
10Comments