servidor web

210
Apache, PHP, MySQL, Phpmyadmin, SMTP. 06/06/2009 [email protected] 1

Upload: cristian-muena-sabja

Post on 12-Dec-2014

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Servidor Web

Apache, PHP, MySQL, Phpmyadmin, SMTP.

06/06/[email protected]

Page 2: Servidor Web

Servidor Web

06/06/[email protected]

Dedicado para aquellas personas que tienen

intención de crear su propio servidor casero bajo

Windows.

En el futuro, realizaré este mismo manual bajo

sistema operativo Linux.

Que lo pasen bien.

Page 3: Servidor Web

Índice

06/06/[email protected]

Presentación – 4

Ver. Servidores – 11

Apache 2.0 – 13

PHP 5 – 29

Config. archivo INI – 38

Apache 2.0.x – 48

Probando Apache – 60

MySQL 5.1 – 71

phpMyAdmin – 100

Usuarios MySQL – 114

Servidor SMTP – 145

Actualizaciones – 165

VirtualHosts – 174

Cara Internet – 193

Otros manuales – 203

Enlace de interés – 205

Versión manual – 208

Contacto – 209

Autor – 210

Page 4: Servidor Web

Presentación

06/06/[email protected]

Page 5: Servidor Web

Servidor Web

06/06/[email protected]

Este es un manual sencillo para crear un servidor

Web casero para poder hacer pruebas con script

para PHP, base de datos como MySQL, instalar tu

propio foro muy popular phpBB e incluso una Web

prefabricada muy famosa y conocida como Joomla,

entre otras cosas.

Está orientado a personas nóveles y se explicará

paso a paso, detalladamente y amena posible para

su comprensión.

Page 6: Servidor Web

Servidor Web

06/06/[email protected]

Se anima al lector introducirse al manual del

servidor Web de manera muy sencilla y amena.

Notarás que está diseñado también como referencia

rápida.

Los programas que vamos a usar son

completamente gratuitos, sin desembolsar ninguna

cantidad de dinero por ello.

Utilizaremos herramientas equivalentes sobre

manejo de base de datos.

Page 7: Servidor Web

Servidor Web

06/06/[email protected]

Montarás un servidor SMTP envío de correo

electrónico y un servidor y cliente FTP para

transmitir archivos.

Como actualizar futuras actualizaciones de nuestro

servidor.

Sobre todo, trataremos temas de mínima seguridad

y consejos.

Espero que te lo pases bien a lo largo de este

manual.

Page 8: Servidor Web

Servidor Web

06/06/[email protected]

Se trabajará en el entorno Windows XP SP3 desde

que se creó este manual.

Page 9: Servidor Web

Servidor Web

06/06/[email protected]

NOTA:

Este manual sólo nos centraremos en un servidor

casero para hacer pruebas.

No vamos hacer ajustes fino de seguridad a cara al

público.

Cualquier configuración que haga, mal

funcionamiento e incluso pérdidas de datos corre

bajo tu responsabilidad.

Si tienes dudas sobre este manual, olvídese de él.

Estás avisado.

Page 10: Servidor Web

06/06/[email protected]

Page 11: Servidor Web

Versiones de Servidores

Apache 2.0 y Apache 2.2

06/06/[email protected]

Page 12: Servidor Web

Versiones de Servidores

06/06/[email protected]

En este manual vamos a explicar la instalación y

configuración de Apache por separado.

Elegirás que versión deseas usar.

Si quieres configurar la versión Apache 2.0 vete a la

página.

Si quieres configurar la versión Apache 2.2 vete a la

página.

NOTA: Si vas a usar Apache 2.2 en versión

Windows, tienes que usar el PHP 5.2.x o superior.

Page 13: Servidor Web

Apache 2.0

06/06/[email protected]

Page 14: Servidor Web

Apache 2.0

06/06/[email protected]

Vamos a utilizar el Apache 2.0.63 que es la última

versión desde que se hizo este manual.

Este servidor Web es el más usado, más estable y

más popular hasta la fecha.

La ventaja de este servidor web es que es muy

extendido, tanto en Windows como en Linux.

Dejar claro que el Apache en Linux es mucho mejor,

más seguro y tiene funciones importantes que

Windows es incapaz de poseer.

Page 15: Servidor Web

Apache 2.0

06/06/[email protected]

Entramos en la Web oficial del Apache 2.0 para

descargarlo.

www.apache.org

Dentro de la Web nos iremos en el menú “HTTP

Server”, dentro de ella localizamos la versión que

queremos para este caso y pulsamos Download.

Dentro de ella, nos bajaremos con instalador que

exactamente se llama “apache_2.0.63-win32-x86-

no_ssl.msi”.

Page 16: Servidor Web

Apache 2.0

06/06/[email protected]

Page 17: Servidor Web

Apache 2.0

06/06/[email protected]

También puedes acceder a él en este enlace:

http://httpd.apache.org/download.cgi

Una vez que ya tengamos el archivo descargado lo

ejecutamos.

A partir de aquí, siga los pasos de las imágenes.

Page 18: Servidor Web

Apache 2.0

06/06/[email protected]

Page 19: Servidor Web

Apache 2.0

06/06/[email protected]

Page 20: Servidor Web

Apache 2.0

06/06/[email protected]

Page 21: Servidor Web

Apache 2.0

06/06/[email protected]

Deja estos valores de la

imagen.

Network Domain:

127.0.0.1

Server Name: 127.0.0.1

Administrator's Email

Address: nuestro e-mail,

no es necesario ponerlo.

For All Users, on Port

80, as a Service:

selecciona esta opción.

Page 22: Servidor Web

Apache 2.0

06/06/[email protected]

Page 23: Servidor Web

Apache 2.0

06/06/[email protected]

Page 24: Servidor Web

Apache 2.0

06/06/[email protected]

Aquí puedes

seleccionar la ubicación

de la instalación del

Apache 2.0.

Por defecto en este

caso lo dejamos como

está que es:

“C:\Archivos de

programa\Apache

Group\”.

Page 25: Servidor Web

Apache 2.0

06/06/[email protected]

Page 26: Servidor Web

Apache 2.0

06/06/[email protected]

Page 27: Servidor Web

Apache 2.0

06/06/[email protected]

Page 28: Servidor Web

06/06/[email protected]

Page 29: Servidor Web

PHP 5

06/06/[email protected]

Page 30: Servidor Web

PHP

06/06/[email protected]

Nos toca el turno a PHP, en este caso vamos a usar

la versión PHP 5.2.9-2 que es la última desde que

se hizo este manual.

Su Web oficial es www.php.net.

Pulsamos donwload.

Page 31: Servidor Web

PHP

06/06/[email protected]

Nos bajaremos la

versión zip package sin

instalador.

Page 32: Servidor Web

PHP

06/06/[email protected]

Page 33: Servidor Web

PHP

06/06/[email protected]

Una vez descargado el archivo zip, creamos en la unidad C:\ una carpeta llamada en este caso, Servidor. Dentro de ella crearemos otra carpeta llamada PHP.

Si ya descomprimimos el archivo zip de php, metemos todos los archivos en la carpeta PHP del directorio “C:\Servidor\PHP”.

Page 34: Servidor Web

PHP

06/06/[email protected]

Page 35: Servidor Web

PHP

06/06/[email protected]

Cogemos todos los

archivos dll en el

directorio principal y lo

colocamos en el

directorio

“C:\Windows\System32”

.

También vale para el

Windows Server

2003/2008/Vista/7.

Page 36: Servidor Web

PHP

06/06/[email protected]

Page 37: Servidor Web

06/06/[email protected]

Page 38: Servidor Web

Configuración del archivo INI

PHP

06/06/[email protected]

Page 39: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

NOTA: Si no ves las extensiones de los archivos…

Vete a mi “Mi PC Herramientas Opciones de Carpeta Ver”.

Comprueba la parte“Ocultar las extensiones de archivo para tipo de archivo conocidos” que esté desmarcada.

Page 40: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Encuentra el archivo “C:\Servidor\PHP\php.ini-dist”.

Una vez encontrado, renómbralo “php.ini-dist” a “php.ini”.

Abre el archivo php.ini, pulsa “Control + B” y escribe extenssion_dir.

Una vez encontrado, escribe el directorio que muestra en la imagen.

Page 41: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Podemos activar las extensiones que queramos.

Buscamos “Windows Extensions” para activar las extensiones. Entre ellas busca gd2.dll para manejarlas funciones PHP relativas a imágenes.

Cambia ;extension=php_gd2.dll por extension=php_gd2.dll, es decir, quita el punto y como (;) para activar esta extensión.

Page 42: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Activa las extensiones php_mbstring.dll y php_mcrypt.dll.

Si quieres saber que es cada extensión, lo busca en su manual http://www.php.net/manual/es/

No actives todas las extensiones, pueden ser innecesarias si realmente no lo vas a usar.

Ahora, toca activar la última extensión php_mysql.dll ya que nos hace falta para el MySQL. Lo activas quitando el (;) delante.

Page 43: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Si queremos hacer

pruebas con upload,

indicamos la ruta pero

antes creamos la

carpeta upload en el

directorio

C:/Servidor/PHP/uploa

ds/

Claro que antes,

debemos encontrar en

php.ini

upload_tmp_dir.

Page 44: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Podemos cambiar el

tamaño de los archivos

a subir por vía HTTP.

Buscamos

upload_max_filesize y

cambiamos por el valor

que trae por defecto

que es 2MB por otro.

No se recomienda

poner un valor alto.

Page 45: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Para trabajar con

sesiones, vamos a

indicar un directorio

para que guarde los

archivos temporales.

Buscamos

session.save_path y

indicamos el directorio,

pero antes crear la

carpeta tmp en el

directorio

“C:/Servidor/PHP/tmp/”.

Page 46: Servidor Web

PHP – Configuración del archivo INI.

06/06/[email protected]

Copiamos el archivo php.ini y lo pegamos al

directorio o carpeta C\:Windows.

Si usas el Windows 2000, el directorio o carpeta

sería C\:WinNT.

Nos vamos a Apache para hacerle ver que ya PHP

está preparado y lo podemos usar.

Page 47: Servidor Web

06/06/[email protected]

Page 48: Servidor Web

Apache 2.0.x

Configuración del archivo httpd.conf

06/06/[email protected]

Page 49: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

Vamos a buscar el archivo de configuración de

Apache 2.0.x llamado httpd.conf.

Vete a “InicioApache HTTP Server

2.0Configure Apache ServerEdit the Apache

httpd.conf Configuration File” y abres el archivo

httpd.conf bajo el bloc de notas.

Page 50: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

También puedes

acceder directamente al

directorio “C:\Archivos

de programa\Apache

Group\Apache2\conf”

como muestra la

imagen.

Page 51: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

Page 52: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

Una vez abierto el archivo httpd.conf, buscamos

Dynamic Shared Object (DSO) Support que es

donde se cargan los módulos.

Como vez, añadimos justo debajo LoadModule

php5_module C:/Servidor/PHP/php5apache2.dll.

Page 53: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

El directorio o carpeta predeterminado se guarda en

C:\Archivos de programa\Apache

Group\Apache\htdocs\

Antes que nada, buscamos DocumentRoot.

Lo vamos a cambiar a “C:/Servidor/WEB/” como

muestra abajo, no olvides crear la carpeta web.

Page 54: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

Dentro de la carpeta o directorio web, colocaremos

nuestra web principal, es el directorio raíz principal.

Buscamos DirectoryIndex y nos sale algo similar a

la imagen.

Page 55: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

Modificamos la última línea para que al entrar en un

directorio tipo http://127.0.0.1/directorio/ nos

autoejecute el index predeterminado

(siempre que exista) y no 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.

Page 56: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

DirectoryIndex index.html index.htm index.php

index.php3 index.php4 index.phtml index.html.var

Ahora le añadimos debajo estas líneas (en la

primera de ellas, si estamos instalando

PHP5 también podemos añadir la extensión .php5

además de las que aparecen):

AddType application/x-httpd-php .php .php3 .php4

.phtml

AddType application/x-httpd-php-source .phps

Page 57: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

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í que puedes ver en la

página siguiente:

Page 58: Servidor Web

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/[email protected]

Ya podemos guardar el archivo httpd.conf.

Page 59: Servidor Web

06/06/[email protected]

Page 60: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Page 61: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Para Apache 2.0.X accederemos desde los accesos

directos que se crean en el menú de inicio al acceso

directo Monitor Apache Servers y aparecerá un

icono al lado del reloj. Pinchando en el icono, sale

un menú desde donde podremos iniciar, apagar y

reiniciar el Apache. Como queremos encenderlo, si

no lo hace automáticamente le daremos a Start. Si

ya estaba encendido le daremos a Restart útil si

cambiamos alguna configuración de PHP "al vuelo")

para que al reiniciarlo nos coja los cambios que

hemos hecho.

Page 62: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Page 63: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Page 64: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Ahora dentro de la

carpeta

C\:Servidor\Web

creamos un archivo de

texto con el bloc de

notas (TXT) y

cambiamos el nombre y

la extensión por

info.php.

Page 65: Servidor Web

Probando el servidor Apache

06/06/[email protected]

En el interior del info.php, introducimos este código:

Page 66: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Ahora, cogemos cualquier navegador e introducimos

o bien http://127.0.0.1/info.php o bien

http://localhost/info.php

Page 67: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Page 68: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Si no se muestra la imagen justo de la página

anterior, revisa paso a paso otra vez lo que has

hecho hasta ahora.

Page 69: Servidor Web

Probando el servidor Apache

06/06/[email protected]

Ahora ya puedes acceder cualquier archivo del

Servidor.

Es como ir a moverse al directorio de Windows a

buscar un archivo dentro de su carpeta

correspondiente, por ejemplo:

http://localhost/CARPETA/ARCHIVO.EXT

http://127.0.0.1/CARPETA/ARCHIVO.EXT

Se incluye, cualquier archivo como jpg, zip, rar, gif,

txt, html, php, etc.

Page 70: Servidor Web

06/06/[email protected]

Page 71: Servidor Web

MySQL 5.1

Instalación

06/06/[email protected]

Page 72: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Ahora vamos a instalar una base de datos como

MySQL de libre distribución para almacenar datos.

La versión utilizada es MySQL 5.1.34 desde que se

hizo este manual.

Su Web oficial es www.mysql.com

Puedes descargarlo directamente en este enlace

http://dev.mysql.com/downloads/mysql/5.1.html#win3

2

Page 73: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Llegamos hasta aquí si has pinchado el último

enlace de la página anterior.

Vamos a descargar la versión con instalador.

Pincha en Pick a mirror.

Page 74: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Como no nos vamos a

registrar o introducir el

usuario registrado,

pinchamos

directamente aquí » No

thanks, just take me to

the downloads!

Page 75: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 76: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Pincha en HTTP o FTP, en nuestro caso pulsamos

FTP.

Page 77: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Saldrá una ventana de descarga del archivo y

pulsamos el botón “Guardar archivo”.

Page 78: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Ejecutamos el archivo o

MySQL descargado

mysql-5.1.34-

win32.msi.

Page 79: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Aparecerá la ventana

de instalación.

Fíjese paso a paso las

próximas imágenes.

Page 80: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Elegimos “Custom” ya que es la única opción en elegir la dirección a instalar.

Page 81: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Puedes cambiar de dirección al instalar MySQL o le dejas como está.

Page 82: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 83: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 84: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 85: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 86: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Dejamos la opción indicada y pulsamos el botón “Finish”.

Page 87: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 88: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Elegimos la opción detallada.

Page 89: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Indicamos que será una máquina para desarrollo. Puedes indicar cualquier

opción si lo deseas.

Page 90: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Elegimos que utilizamos bases de datos multifuncional. Estos nos permite

diferentes tipos de bases de datos.

Page 91: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 92: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 93: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Si necesitamos acceso desde el exterior o Ineternet, dejamos las opciones

Tal como aparece en el dibujo.

Page 94: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Lo dejamos como está.

Page 95: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Indicamos que deseamos MySQL como un servicio más del windows.

Si deseamos que nos añada el directorio bin del MySQL en el Path del sistema,

marcamos la segunda opción.

Page 96: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Nos pregunta si deseamos utilizar MySQL con el usuario "root" con contraseña,

o si deseamos crear un usuario anónimo. Lo dejamos en root sin contraseña,

más adelante la introducimos en otros medios.

Page 97: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Page 98: Servidor Web

MySQL 5.1 - Instalación

06/06/[email protected]

Ya podemos usar la base de datos MySQL.

Page 99: Servidor Web

06/06/[email protected]

Page 100: Servidor Web

phpMyAdmin

Gestor de bases de datos vía Web

06/06/[email protected]

Page 101: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

phpMyAdmin es un gestor gratuito por vía Web muy

usado en el mundo. Podemos gestionar nuestra

base de datos muy fácilmente en cualquier punto

que nos encontremos por Internet.

Podemos crear base de datos, tablas, añadir datos,

borrar, crear nuevos usuarios y un largo etc como

ocurre con los gestores de escritorio.

Funciona bajo Apache, PHP y MySQL, sin ellos no

funcionaría por eso lo instalamos primero.

Vamos a la página oficial

http://www.phpmyadmin.net

Page 102: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Vamos a usar la versión

phpMyAdmin 3.15 que

es la hay desde que se

hizo este manual.

Vamos a descargar el

archivo comprimido en

.zip como muestra en la

imagen con la flecha en

rojo.

Page 103: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Descargamos el archivo llamado phpMyAdmin-3.1.5-all-languages.zip y lo descomprimimos.

Al descomprimir, vamos a entrar en la carpeta “lang” para quedarnos con el idioma español o el que deseamos.

Borramos todos los demás archivos para ahorrar peso y nos quedamos en este caso lo que muestra en la imagen.

Page 104: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Vamos al directorio

C:\Servidor\Web y

creamos una carpeta o

directorio llamado

“phpmyadmin” en el

cual nos queda así,

C:\Servidor\Web\phpM

yAdmin.

Desde este directorio

introducimos todos los

archivos

Page 105: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Page 106: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Ahora vamos a configurar el phpMyAdmin.

Vamos al directorio

C:\Servidor\Web\phpmyadmin\libraries\config.def

ault.php.

Lo abrimos con cualquier editor de textos.

Buscamos de arriba a abajo:

$cfg['PmaAbsoluteUri'] = '';

Tenemos que dar la ruta absoluta que quedaría así:

$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';

Page 107: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Recuerda que poner localhost es lo mismo que

poner 127.0.0.1.

Ahora buscamos:

$cfg['blowfish_secret'] = '';

En ella pondremos cualquier carácter, que servirá

para la encriptación de contraseñas al usar la

autentificación con cookies. Por ejemplo:

$cfg['blowfish_secret'] = 'G%VWwethTVWE6hE%h66v674fdYbv95';

Page 108: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Para entrar a phpMyAdmin por primera vez,

debemos configurar el tipo de autentificación para

que pida usuario y contraseña, que es el método

recomendado “existen varios”. Para ello, buscamos

$cfg['Servers'][$i]['auth_type'] y cambiamos su valor

a cookie, de forma que quede así:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

Page 109: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Para cambiar la duración de las sesiones en

phpMyAdmin, podemos buscar la siguiente variable

y poner el valor de la duración de la sesión, en

segundos:

$cfg['LoginCookieValidity'] = 1800;

Page 110: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Si importamos y exportamos bases de datos muy

grandes, puede llegar a ser necesario aumentar el

tiempo máximo de ejecución del script. Éste se

puede cambiar con la siguiente variable, cuyo valor

viene dado en segundos:

$cfg['ExecTimeLimit'] = 300;

Page 111: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Guardamos el archivo

pero no lo cerramos.

Vamos a probar el

phpMyAdmin

introduciendo esta

dirección en el

navegador:

http://localhost/phpmyadmin

Debe aparecer igual

que la imagen.

Page 112: Servidor Web

phpMyAdmin – instalación

06/06/[email protected]

Page 113: Servidor Web

06/06/[email protected]

Page 114: Servidor Web

Configurar usuarios de MySQL

06/06/[email protected]

Page 115: Servidor Web

Configurar usuarios de MySQL

06/06/[email protected]

A estas alturas, todo

debería funcionar sin

ningún problema.

No olvidar que nuestro

usuario es root o Root

sin ninguna contraseña.

Una vez claro, entra al

phpMyAdmin.

Page 116: Servidor Web

Configurar usuarios de MySQL

06/06/[email protected]

Page 117: Servidor Web

Configurar usuarios de MySQL

06/06/[email protected]

Vamos entrar en http://localhost/phpmyadmin y

hacemos lo siguiente.

Crear nuestro propio usuario o usuarios.

Borrar usuarios no deseados (como el usuario root).

Aplicar los cambios realizados.

Configurar phpMyAdmin y los scripts para el nuevo

usuario.

Page 118: Servidor Web

06/06/[email protected]

Page 119: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Una vez dentro de la página principal de phpMyAdmin, debemos encontrar “Privilegios”.

Si aparece la imagen de abajo, mejor crear la contraseña de root desde MySQL.

Page 120: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Vete a InicioTodos los

programasMySQLM

ySQL Server 5.1MySQl

Server Instance Config

Wizard.

Sigue el proceso como

hicimos pasos atrás.

Como no tiene contraseña

de root, déjala en blanco y

pon una nueva, en este

ejemplo hemos puesto

como contraseña 1234.

Page 121: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Page 122: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Ahora podemos entrar

como usuario root y

contraseña 1234.

Page 123: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Ya podemos hacer click

en Privilegios y en la

siguiente página

pulsamos Agregar un

nuevo usuario.

Page 124: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Vamos a agregar nuestro usuario y contraseña, que

será el que usemos luego en nuestros scripts que

hagan uso de MySQL. Por ejemplo, podemos poner

el mismo usuario y contraseña que tenemos en

nuestro hosting, pues así tendremos menos cosas

que recordar. Como ejemplo, pongamos el usuario

Acaymo y la contraseña Metaconta2009.

Page 125: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Introduciremos el nombre de usuario y contraseña,

le daremos acceso a Cualquier servidor (para que

se pueda acceder a MySQL desde cualquier IP,

incluidas las externas a nuestro ordenador) o a

Local (si sólo queremos que se acceda desde

nuestro ordenador donde hemos instalado MySQL)

y le daremos todos los permisos y privilegios

(marcando todas las casillas que aparecen).

Hacemos clic en Continuar.

Ver imagen página siguiente.

Page 126: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Page 127: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Page 128: Servidor Web

Creación de nuestro usuario para MySQL

06/06/[email protected]

Si has pulsado continuar, te aparecerá esta imagen

que significa que lo has hecho bien.

Page 129: Servidor Web

06/06/[email protected]

Page 130: Servidor Web

Borrado de usuarios no deseados

06/06/[email protected]

Una vez creado nuestro usuario o usuarios, vamos a

borrar aquél que se crea por defecto y que conviene

borrar para evitar brechas de seguridad, sobre todo

si vamos a usar el PC como servidor hacia Internet y

no sólo para hacer pruebas desde nuestro hogar.

Vamos a borrar el usuario root y dejaremos el que

acabamos de crear. Lo hacemos de una forma

rápida y sencilla desde el mismo link Privilegios de

antes: seleccionar los usuarios que no queramos y

presionar Continuar en el apartado que dice

Eliminar a los usuarios seleccionados.

Page 131: Servidor Web

Borrado de usuarios no deseados

06/06/[email protected]

Page 132: Servidor Web

Borrado de usuarios no deseados

06/06/[email protected]

Page 133: Servidor Web

06/06/[email protected]

Page 134: Servidor Web

Recarga de privilegios

06/06/[email protected]

Una vez creado o eliminado algún usuario, veremos

que phpMyAdmin tiene en la parte inferior de la

pantalla un aviso en un cuadro rojo, que dice que

debemos recargar los privilegios, y nos proporciona

un link donde debemos hacer clic para que los

cambios sean efectivos. Este paso es importante,

pues si no recargamos los privilegios, ningún cambio

anterior ser hará efectivo hasta entonces.

Page 135: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Una vez borrado el usuario root y recargados los

privilegios, phpMyAdmin deja de funcionar. El motivo

es bien simple: al entrar antes a phpMyAdmin,

usamos el usuario root con la contraseña 1234, y

este usuario lo acabamos de eliminar. Entonces

ahora tendremos que volver a entrar pero ya con

nuestro usuario y contraseña elegidos: Acaymo y

Metaconta2009.

Page 136: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Bien, ya casi está todo. Ahora vamos a ver las distintas formas que tenemos para entrar a phpMyAdmin. Como mencionamos hace unas líneas, una de las formas de autentificarse en esta aplicación es usando el método cookie, que lo que hace es pedirnos usuario y contraseña y guarda la sesión con una cookie. Una forma alternativa es usar http, que es muy parecida solo que el usuario y contraseña se introducen en un cuadro de diálogo, a través de HTTP y no de cookies. El último método, config, consiste en que en el propio archivo config.default.php escribimos nuestro usuario y contraseña, de tal forma que nunca hará falta introducirlos; es menos seguro, ya que cualquiera podría entrar, pero si somos el único usuario del ordenador, quizá sea interesante para evitar tener que poner los datos cada vez que vamos a acceder.

Page 137: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Para configurar este tipo de acceso, volvemos al

config.default.php del phpMyAdmin, que no

habíamos cerrado y localizamos estas variables:

$cfg['Servers'][$i]['auth_type']

$cfg['Servers'][$i]['user']

$cfg['Servers'][$i]['password']

Page 138: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Y les cambiamos su valor. En la primera podemos poner config, http o cookie, según hemos visto (si dudamos, lo mejor es usar cookie). Con el método config, y sólo en ese caso, a la segunda le damos el nombre de usuario y a la tercera la contraseña del usuario que acabamos de crear. Por ejemplo si hemos usado el método cookie, quedaría así (sin usuario ni contraseña):

$cfg['Servers'][$i]['auth_type'] = 'cookie';$cfg['Servers'][$i]['user'] = '';$cfg['Servers'][$i]['password'] = '';

Page 139: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Y si queremos usar el método config con nuestro

usuario Acaymo y contraseña Metaconta2009,

quedaría así:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['user'] = „Acaymo';

$cfg['Servers'][$i]['password'] = „Metaconta2009';

Page 140: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

NOTA: phpMyAdmin puede tener un fallo (bug

conocido) en esta zona. Al usar autentificación

HTTP, un usuario que acaba de abandonar la sesión

no puede volver a entrar con el mismo nombre. Para

solucionarlo, se deben cerrar todas las ventanas del

navegador que estén abiertas, y a continuación si

abrimos una nueva ventana y volvemos a intentar

entrar nos debería dejar sin problemas. Para

evitarlo, y que al entrar siga pidiendo usuario y

contraseña, de los dos métodos recomendamos

utilizar el cookie.

Page 141: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Si ahora desde el navegador, y con el Apache y

MySQL activos, accedemos a la dirección

http://localhost/phpmyadmin podemos empezar a

utilizar phpMyAdmin con el nuevo usuario y

contraseña. Si elegimos pedir usuario y contraseña,

cuando accedamos a phpMyAdmin tendremos que

introducirlos de nuevo: Acaymo como usuario y

Metaconta2009 como contraseña, si hemos seguido

el ejemplo. Por tanto, podemos empezar a usar

phpMyAdmin, y quizá lo primero que interese hacer

sea crear una nueva base de datos para meter ahí

lo que queramos.

Page 142: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

De la misma forma, en nuestros archivos PHP que

usen MySQL usaremos el usuario y contraseña que

nos hemos creado, de tal forma que al hacer la

conexión a MySQL quede algo como esto:

<?php

// funciones…

mysql_connect("127.0.0.1",“Acaymo",“Metaconta2009");

// sigue con más funciones…

?>

Page 143: Servidor Web

Configurar los scripts para el nuevo usuario

06/06/[email protected]

Si estamos instalando un prefabricado como PHP

Nuke, Joomla o un foro phpBB, o cualquier

aplicación en la que nos solicitan un host, usuario y

contraseña, los datos que deberemos indicar son

esos: 127.0.0.1 o localhost como servidor, Acaymo

como usuario, Metaconta2009 como contraseña, y

el nombre de la base de datos que hayamos creado

con phpMyAdmin. No obstante, se recomienda tener

unos conocimientos básicos sobre MySQL en PHP

para manejar correctamente estas funciones.

Page 144: Servidor Web

06/06/[email protected]

Page 145: Servidor Web

ArGoSoft Mail Server

Servidor SMTP

06/06/[email protected]

Page 146: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Si vamos a hacer pruebas con envío de correos o bien

vamos a usar nuestro PC como servidor de nuestra web,

es posible que nos interese instalar un pequeño servidor

de correo para poder usar la función mail() de PHP. Con

uno de estos servidores podremos enviar correos desde

PHP, pero obviamente no podremos recibir nada ya que

se tratan de servidores SMTP (enviar) y no POP/IMAP

(recibir). Lo que sí hay que tener en cuenta es que para

que estos servidores de correo funcionen, hay que tener

conexión a Internet. Vamos entonces a ello. En principio

no hay que cambiar nada en el php.ini ya que éste viene

por defecto configurado para un servidor de correo

instalado en local, que es de lo que trata este manual.

Page 147: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Pero sí podremos cambiar la variable sendmail_from, que será el remitente que le aparecerá a la persona que reciba el correo si no ponemos el campo From en las cabeceras del email mediante la función mail()

[mail function]; For Win32 only.SMTP = localhost

; For Win32 only.sendmail_from = [email protected]

Page 148: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Una opción de servidor sería el QK SMTP, pero

hemos elegido el Argosoft Mail Server por su

sencillez de uso. Este servidor tiene versión gratuita

con pequeñas limitaciones (no admite correos de

más de 5 MB, por ejemplo). Estará en la sección de

descargas de la web oficial http://www.argosoft.com,

con el nombre Mail Server .NET Freeware. En la

fecha de actualización de este manual, la última

versión disponible era la 1.0.0.2. Una vez lo

instalamos instalado, requiere una pequeña

configuración.

Page 149: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Vete a la página principal http://www.argosoft.com y

pincha en el recuadro rojo de la imagen de abajo.

Page 151: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Llegarán a un cuadro como este. No recomiendo que ingresen tu propio e-

mail porque lo que conseguirás es que te lleguen publicidad. Te lo inventas y

pulsa Ok.

Page 152: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Ejecutamos el archivo

descargado que desde

que se hizo este

manual se llamaba

MailServerFreeSetup.

msi.

Page 153: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Page 154: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Page 155: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Page 156: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Page 157: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Page 158: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Verás un acceso directo

en el escritorio.

Haz doble click en él

para ejecutarlo.

Page 159: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Ahora ya puedes ver el

programa principal.

Page 160: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Pulsa .

Page 161: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Se abre una ventana

Seleccionamos las casillas Automatically Start theServer y Allow Relay.

En DNS Server tenemos que poner la dirección IP de algún servidor DNS. Si no sabemos ninguna, nada más fácil que hacer una búsqueda en nuestro amigo Google usando términos como listado servidores DNS. Por ejemplo, vamos a usar uno de los servidores OpenDNS, 208.67.222.222ó 208.67.220.220, en concreto el primero de ellos.

Page 162: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Page 163: Servidor Web

ArGoSoft Mail Server

06/06/[email protected]

Para activar el servidor,

pulsamos el botón Start

(triángulo verde), y para

pararlo el botón Stop

(cuadrado rojo). Lo

dejamos activo

(quedará un icono al

lado del reloj) y ya

podemos usar scripts

PHP que hagan uso de

la función mail().

Page 164: Servidor Web

06/06/[email protected]

Page 165: Servidor Web

Realizar actualizaciones

Cómo realizar las actualizaciones a versiones superiores

06/06/[email protected]

Page 166: Servidor Web

Realizar actualizaciones

06/06/[email protected]

Normalmente es mejor ir a la última. Cuando

desarrolladores de programa actualizan sus

productos, es por algo. Sea por tener mejor

rendimiento, nuevas funciones, seguridad,

estabilidad, etc.

Sigue los pasos siguientes para su actualización.

Page 167: Servidor Web

Realizar actualizaciones

06/06/[email protected]

¿Cómo actualizar Apache?

Para actualizarlo, lo primero es desinstalar el programa desde el Panel de Control -> Agregar o Quitar Programas. A continuación, borraremos manualmente aquellas carpetas del Apache que el desinstalador no haya borrado, que pueden ser aquellas que contienen los logs del servidor. Y finalmente, instalaremos la nueva versión de Apache y configuraremos el httpd.conf igual que se explica en los pasos anteriores, usando las mismas carpetas que usamos en la versión anterior de Apache para que nada cambie.

Page 168: Servidor Web

Realizar actualizaciones

06/06/[email protected]

¿Cómo actualizar PHP?

Lo primero, paramos nuestro servidor Apache para evitar que los archivos de PHP estén en uso. A continuación eliminaremos la carpeta que se encuentra en C:\Servidor\PHP\ Luego instalaremos la nueva versión de PHP como se dice más arriba, configuraremos el nuevo php.ini, y en los pasos que se dice que copiemos ciertos archivos a los directorios de Windows, sobre escribiremos todos archivos existentes con los nuevos, incluido el nuevo php.ini Ya sólo queda arrancar de nuevo el Apache y ver si todo ha ido bien.

Page 169: Servidor Web

Realizar actualizaciones

06/06/[email protected]

¿Cómo actualizar MySQL?

Antes de empezar, convendría apagar el Apache para evitar que haya archivos en uso. A continuación, copiaremos el directorio data (que está dentro de la carpeta de MySQL y es el que contiene nuestras bases de datos, tablas, etc. que queremos conservar) a otro directorio cualquiera de forma temporal. Luego desinstalaremos MySQL desde el Agregraro Quitar Programas de Windows. Finalmente, instalaremos la nueva versión de la misma forma que antes, tras lo cual copiaremos el directorio data de nuevo a la carpeta de MySQL sobreescribiendo el que haya, y de esta forma no se pierden los datos de nuestras bases de datos. Y finalmente sólo queda iniciar el servicio MySQL, y comprobar si los scripts y phpMyAdmin siguen funcionando.

Page 170: Servidor Web

Realizar actualizaciones

06/06/[email protected]

Si estamos migrando de una versión MySQL 3.x ó 4.0 a una 4.1 ó superior (5.x), se origina el problema de que los usuarios de MySQL siguen usando el sistema antiguo de contraseñas no encriptadas, así que hay que migrarlas al nuevo sistema, o bien como suelen recomendar, usar el sistema viejo de uso de contraseñas. Más información en este link: http://dev.mysql.com/doc/refman/5.0/en/old-client.html

NOTA: Si usamos alguna versión antigua de MySQL(con la 5.X no sucede), cuando MySQL se instala, graba un fichero llamdo my.ini en la carpeta de Windows. Allí quedan los datos de usuario y contraseña. Si tenemos problemas al actualizar, borraremos ese fichero antes de instalar de nuevo MySQL.

Page 171: Servidor Web

Realizar actualizaciones

06/06/[email protected]

¿Cómo actualizar phpMyAdmin?

Éste es más sencillo de actualizar, pues lo único que

hay que hacer es borrar el anterior y luego instalar y

configurar el nuevo como se cita más arriba.

Además, si usamos el método config, nos

aseguramos también de cambiar el usuario y

contraseña para que luego funcione.

Page 172: Servidor Web

Realizar actualizaciones

06/06/[email protected]

¿Cómo actualizar ArGoSoft Mail Server?

Simplemente se desinstala la versión anterior y se

instala la nueva. Es posible que la configuración se

mantenga, pero conviene que la comprobemos, y si

no se mantiene entonces la volvemos a realizar.

Page 173: Servidor Web

06/06/[email protected]

Page 174: Servidor Web

VirtualHosts

Manejo de más de un sitio web

06/06/[email protected]

Page 175: Servidor Web

Manejo de más de un sitio web: VirtualHosts

06/06/[email protected]

Con esto ya hemos terminado la instalación de un

servidor básico para hacer pruebas en nuestro

ordenador sin necesidad de conectarnos a Internet. Pero

puede que seamos administradores de más de un sitio

web, y nos interese tener más de un sitio web en nuestro

servidor local. Si es así, seguimos leyendo, si no,

podemos saltar este paso. Una forma de hacerlo sería

crear distintas carpetas en nuestro DocumentRoot, y

después acceder tecleando algo como

http://localhost/sitio_web_1/carpeta/archivo.php para

entrar al sitio 1, o bien

http://localhost/sitio_web_2/otra_carpeta/otro_archivo.ph

p para entrar al sitio 2.

Page 176: Servidor Web

Manejo de más de un sitio web: VirtualHosts

06/06/[email protected]

Pero es fácil ver que eso no es una forma elegante

de hacerlo. ¿Se podría evitar el uso de este tipo de

URL? La respuesta es sí, y para eso podemos usar

los VirtualHost de Apache. Cada uno será como un

sitio web diferente, con su propio DocumentRoot.

Veremos a través de un ejemplo cómo hacer varios

VirtualHost para alojar varios sitios web en nuestro

servidor.

Page 177: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Si abrimos el archivo httpd.conf de Apache 1.3.X o

2.0.X y nos vamos al final, encontramos algo como

esto:

#

# Use name-based virtual hosting.

#

#NameVirtualHost *:80

Page 178: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

En la línea NameVirtualHost debemos quitar el # de delante para activarla. Esta línea indica que los VirtualHost que vamos a usar pueden escuchar en cualquier dirección IP por el puerto 80, así nos evitamos tener que definir una IP para los accesos locales y otra para los externos (en caso de que los hubiera, si usamos el servidor de cara a Internet). Si eres administrador de red y necesitas llevar un control más exhaustivo de los accesos que se producen a tu red (internos y externos), puede que desees cambiar esta opción, pero ello escapa de los objetivos de esta guía. Por tanto, debe quedar así:

## Use name-based virtual hosting.#NameVirtualHost *:80

Page 179: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Bien, si bajamos un poco más, encontramos un ejemplo:

# VirtualHost example:# Almost any Apache directive may go into a VirtualHostcontainer.# The first VirtualHost section is used for requests without a known# server name.##<VirtualHost *:80># ServerAdmin [email protected]# DocumentRoot /www/docs/dummy-host.example.com# ServerName dummy-host.example.com# ErrorLog logs/dummy-host.example.com-error_log# CustomLog logs/dummy-host.example.com-access_logcommon#</VirtualHost>

Page 180: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Como hemos dicho, podemos añadir todos los que queramos, para eso simplemente vamos copiando y pegando las líneas del VirtualHost, quitando los # del principio (que sirven para comentar las líneas), y configurando los datos de cada VirtualHost. Como vamos a hacer VirtualHosts cuya resolución sea por nombre y no por IP, en todos ellos colocaremos Virtualhost *:80 para indicar que pueden atender en cualquier IP por el puerto 80.

ServerAdmin: dirección email del administrador.

DocumentRoot: ruta donde se encuentran los archivos del sitio web asociado a ese VirtualHost.

ServerName: nombre del Virtualhost, que se usará para la resolución por nombre.

ErrorLog: archivo .log para almacenar los errores que se generen en el sitio web.

CustomLog: archivo .log para almacenar los accesos a este sitio web.

Page 181: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Cuando hemos dicho que vamos a hacer resolución por nombre, ¿qué quiere decir esto? Bien, tratemos de explicarlo. En principio en esta guía asumimos que el servidor que estamos instalando posee una única dirección IP, que en modo local es 127.0.0.1 y de cara a Internet es nuestra IP pública (la que nos dé nuestro proveedor de Internet). Cuando entramos a un sitio web a través de un nombre de dominio (www.dominio.com), éste redireccionará a nuestra dirección IP, y es entonces cuando el servidor debe decidir a qué VirtualHostpertenece la petición que se le está haciendo, ya que por la IP no lo puede saber (puede haber muchos VirtualHosts con una misma IP). ¿Y cómo lo decide? Pues mirando cuál es el nombre de dominio (el host) que se ha usado en la petición. Por eso en ServerNamedebemos poner el nombre del host que se va a usar.

Page 182: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Hay un parámetro que no viene incluido en el

ejemplo pero que sin embargo es interesante, y es

ServerAlias. Funciona de manera similar a

ServerName. Lo que hace es definir alias, nombres

alternativos para nuestro VirtualHost. ¿Y cuándo se

usa? Pues cuando deseemos que se pueda acceder

a un sitio web usando diferentes nombres, por

ejemplo que se pueda acceder poniendo

http://dominio.com o bien http://www.dominio.com o

bien http://cualquiercosa.dominio.com. Ahora

veremos un ejemplo.

Page 183: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Vamos a hacer un caso práctico. Por ejemplo, vamos a crear tres sitios web: dos páginas web distintas, y un tercer sitio que contenga únicamente a phpMyAdmin(para tener esta aplicación separada de los otros dos sitios web). Dentro de la carpeta C:/Servidor/Web/ nos creamos tantas subcarpetas como sitios web vayamos a añadir, y dentro de cada subcarpeta meteremos los archivos correspondientes a ese sitio. También podríamos elegir cualquier carpeta en cualquier sitio, ya que cada VirtualHost tendrá su propio DocumentRootindependiente del resto. Para nuestro ejemplo, se han creado las subcarpetas SitioA, SitioB y phpMyAdmin, por lo que añadiríamos los tres VirtualHosts al final del httpd.conf:

Page 184: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

<VirtualHost *:80>ServerAdmin [email protected] "C:/Servidor/Web/SitioA"ServerName sitioaErrorLog logs/SitioA-error_logCustomLog logs/SitioA-access_log common

</VirtualHost>

<VirtualHost *:80>ServerAdmin [email protected] "C:/Servidor/Web/SitioB"ServerName sitiobErrorLog logs/SitioB-error_logCustomLog logs/SitioB-access_log common

</VirtualHost>

Page 185: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "C:/Servidor/Web/phpMyAdmin"

ServerName phpmyadmin

ErrorLog logs/phpMyAdmin-error_log

CustomLog logs/phpMyAdmin-access_log

common

</VirtualHost>

Page 186: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Fijémonos en que cada uno tiene su propio

DocumentRoot, por eso podemos y debemos meter los

archivos de cada sitio web en carpetas diferentes, las ahí

escritas. También vemos el nombre que hemos asignado

para entrar a los VirtualHost, definido en ServerName.

Por ejemplo para el caso del sitio A deberíamos entrar

tecleando algo como http://sitioa/

Pero si tecleamos eso en el navegador, nos da error de

que no se encuentra la página o no se puede resolver el

nombre de dominio. Lógico, porque ese nombre de

dominio no existe como tal y no tiene asignada ninguna

dirección IP. Ahora vamos a ver cómo asignar una

dirección IP a ese nombre.

Page 187: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Para ello, debemos abrir el fichero de Hosts de Windows, con un editor de texto como el bloc de notas. Este archivo puede estar localizado en C:\Windows\Hosts (Windows 95/98/Me), en C:\WINNT\System32\drivers\etc (Windows NT/2000) o en C:\WINDOWS\system32\drivers\etc (Windows XP/2003). Antes de abrirlo, debemos ir a sus propiedades y deshabilitar el modo Sólo lectura en caso de que lo tenga, para que podamos modificarlo. Ahora añadimos los sitios web creados de la misma forma que podremos ver en el ejemplo que viene en el archivo. Como dirección IP, usamos la IP local 127.0.0.1, y como nombre de servidor usamos el mismo valor que usamos en el VirtualHost en ServerName. De tal forma que para nuestro ejemplo quedaría algo así (la primera línea ya viene por defecto incluida):

# Por ejemplo:

Page 188: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

# Por ejemplo:

#

# 102.54.94.97 rhino.acme.com # servidor origen

# 38.25.63.10 x.acme.com # host cliente x

127.0.0.1 localhost

127.0.0.1 sitioa

127.0.0.1 sitiob

127.0.0.1 phpmyadmin

Page 189: Servidor Web

VirtualHosts en Apache 2.0.x

06/06/[email protected]

Guardamos el archivo, y le asignamos el modo de Sólo

lectura por seguridad. Así que cuando queramos entrar

a uno de los sitios web, debemos teclear http://sitioa/ o

http://sitiob/ y cuando queramos entrar a phpmyadmin,

teclearemos http://phpmyadmin/ ¿Más sencillo de

recordar, verdad?

NOTA: si usamos VirtualHost, no debemos olvidar

reconfigurar el phpMyAdmin: hay que editar el archivo

config.default.php y cambiar el valor de la variable

$cfg['PmaAbsoluteUri'], pues ahora deberá tener

http://phpmyadmin/ En general, debemos reconfigurar

cualquier otro script que use direcciones URL absolutas

y no relativas.

Page 190: Servidor Web

06/06/[email protected]

Page 191: Servidor Web

VirtualHosts en Apache 2.2.x

06/06/[email protected]

En la serie 2.2.x de Apache cambia ligeramente la configuración de los VirtualHost. Exite un archivo en C:\Archivos de programa\Apache Group\Apache\conf\extra\httpd-vhosts.conf que es donde debemos introducir la información de los VirtualHost que acabamos de ver. Una vez hecho, dentro del httpd.conf debemos buscar esto:

# Virtual hosts#Include conf/extra/httpd-vhosts.conf

Y activamos la inclusión de ese archivo:

# Virtual hostsInclude conf/extra/httpd-vhosts.conf

Page 192: Servidor Web

06/06/[email protected]

Page 193: Servidor Web

Cara Internet

Servidor cara a Internet

06/06/[email protected]

Page 194: Servidor Web

Cara Internet

06/06/[email protected]

Bien, hasta aquí hemos hecho lo necesario para

manejar más de un sitio web en nuestro servidor

local. Hemos asignado un único ServerName a cada

sitio web ya que sólo accederemos desde nuestro

ordenador tecleando un único nombre. Si además

de acceder desde nuestro ordenador deseamos

acceder desde Internet, vamos a añadir algunos

alias y ver otros aspectos importantes a tener en

cuenta.

Page 195: Servidor Web

Cara Internet

06/06/[email protected]

Como dijimos más arriba, la resolución del

VirtualHost se hace por nombre. Esto quiere decir

que desde local podemos acceder tecleando

http://sitioa/ (como ejemplo para el primer sitio que

creamos), pero ¿cómo acceder desde Internet? Lo

lógico es acceder usando una dirección tipo

http://www.sitioa.com o http://sitioa.dnsalias.com,

etc. Para que esto funcione, es necesario añadir

alias a nuestros VirtualHosts.

Page 196: Servidor Web

Cara Internet

06/06/[email protected]

Vamos a hacer un ejemplo para el sitio A. Supongamos

que tenemos contratado el nombre de dominio

sitioa.com, en la configuración DNS de dicho dominio

debemos poner la dirección IP pública de nuestro

ordenador o router. Esta dirección IP puede ser estática

o dinámica. Lo ideal es que fuera estática, ya que el

nombre de dominio tiene que redireccionar a alguna IP y

lo lógico es que la IP sea siempre la misma. Pero si fuera

dinámica, existen servicios que dan nombres de dominio

para IP dinámica de forma gratuita, como puede ser

DynDNS.org Este servicio hace que, cuando cambie la

IP pública del servidor, la IP a la que resuelve dicho

dominio también cambie.

Page 197: Servidor Web

Cara Internet

06/06/[email protected]

En el VirtualHost de nuestro sitio A, que ya

habíamos configurado para acceder localmente,

añadiremos el ServerAlias, asignándole todos los

posibles nombres que puede tomar nuestro host.

Por ejemplo, supongamos que los usuarios pueden

teclear http://sitioa.com o http://www.sitioa.com

Entonces quedaría algo así:

Page 198: Servidor Web

Cara Internet

06/06/[email protected]

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "C:/Servidor/Web/SitioA"

ServerName sitioa

ServerAlias sitioa.com *.sitioa.com

ErrorLog logs/SitioA-error_log

CustomLog logs/SitioA-access_log common

</VirtualHost>

Page 199: Servidor Web

Cara Internet

06/06/[email protected]

De esta forma, cuando estemos en local, podemos

teclear http://sitioa/ y accederemos a nuestro sitio

web. Cuando alguien acceda desde Internet (que

puede ser cualquier usuario o incluso nosotros

desde nuestro propio ordenador), puede teclear algo

como http://www.sitioa.com o http://sitioa.com y

también accederá al sitio web, ya que el nombre de

host introducido en la petición web coincide con el

ServerName o el ServerAlias de nuestro VirtualHost.

Y esto lo haríamos con cada uno de los VirtualHost

a los que deseemos dar acceso de cara a Internet.

Page 200: Servidor Web

Cara Internet

06/06/[email protected]

Aspecto importante 1: si damos acceso a nuestro

servidor desde Internet, debemos tener en cuenta

que si usamos algún firewall, habrá que configurarlo

para permitir a Apache que funcione como servidor,

recibiendo conexiones desde Internet. Igualmente si

estamos detrás de un router, habrá que

redireccionar el puerto 80 a nuestro PC

(denominado habitualmente Port Range Forwarding

o NAT en destino).

Page 201: Servidor Web

Cara Internet

06/06/[email protected]

Aspecto importante 2: si vamos a acceder a un sitio web tanto en local como desde Internet, debemos tener en cuenta que el nombre de host cambia, esto quiere decir que debemos evitar hacer referencias absolutas a nuestros archivos, por ejemplo evitar poner las imágenes como <imgsrc="http://sitioa/imagen.gif"> ya que, en este ejemplo, sólo funcionará cuando un usuario entre localmente y no cuando entre desde Internet (para entrar desde Internet sería <imgsrc="http://sitioa.com/imagen.gif">). Existen dos posibles soluciones, una usar referencias relativas a nuestros archivos (<img src="/imagen.gif">) y otra usando variables de PHP que dan el nombre de host, como $_SERVER['SERVER_NAME'](<img src="<?php echo $_SERVER['SERVER_NAME']; ?>/imagen.gif">), pero esto es un tema de programación en sí y no se hablará más en esta guía.

Page 202: Servidor Web

06/06/[email protected]

Page 203: Servidor Web

Otros manuales

06/06/[email protected]

Page 205: Servidor Web

Enlaces de interés

Enlaces de páginas Web donde podrás encontrar más

información.

06/06/[email protected]

Page 206: Servidor Web

Enlaces de interés

06/06/[email protected]

http://www.apache.org Servidor Apache más popular, estable, seguro y usado hasta la fecha.

http://www.php.net Potente programa para hacer script Web.

http://www.mysql.com Base de datos más robusto en varios sistemas operativos. Es uno de los más estable, seguro y muy usado actualmente.

http://www.phpmyadmin.net Administrador de bases de datos por vía web más famoso bajo php.

http://www.phpbb.com Foro phpbb más popular en esta comunidad.

http://www.joomla.org Web prefabricada oficial bajo php y MySQL.

http://www.joomlaspanish.org Igual que la anterior pero con el pack ya incluido todo en español.

Page 207: Servidor Web

Enlaces de interés

06/06/[email protected]

Este manual fue desarrollado gracias a la

información desde:

http://www.maestrosdelweb.com/editorial/phpmysqla

p/

http://www.mundodivx.com/php

Page 208: Servidor Web

Versión del manual

06/06/[email protected]

Publicado por primera vez: 06/06/2009

Versión :1.00

Page 209: Servidor Web

Contacto

Cualquier comentario,

sugerencia o mejoras del

manual, me lo envían por

correo electrónico al

[email protected]

[email protected]

06/06/[email protected]

Puedes publicar este tutorial o

manual en tu Web, foros, blogs,

CD, DVD o Blu-Raypara revistas

oficiales, etc, libremente.

Page 210: Servidor Web

Autor:

Ángel Acaymo M. G.

06/06/[email protected]