servidor web

Post on 12-Dec-2014

12 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Apache, PHP, MySQL, Phpmyadmin, SMTP.

06/06/2009metaconta@gmail.com1

Servidor Web

06/06/2009metaconta@gmail.com2

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.

Índice

06/06/2009metaconta@gmail.com3

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

Presentación

06/06/2009metaconta@gmail.com4

Servidor Web

06/06/2009metaconta@gmail.com5

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.

Servidor Web

06/06/2009metaconta@gmail.com6

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.

Servidor Web

06/06/2009metaconta@gmail.com7

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.

Servidor Web

06/06/2009metaconta@gmail.com8

Se trabajará en el entorno Windows XP SP3 desde

que se creó este manual.

Servidor Web

06/06/2009metaconta@gmail.com9

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.

06/06/2009metaconta@gmail.com10

Versiones de Servidores

Apache 2.0 y Apache 2.2

06/06/2009metaconta@gmail.com11

Versiones de Servidores

06/06/2009metaconta@gmail.com12

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.

Apache 2.0

06/06/2009metaconta@gmail.com13

Apache 2.0

06/06/2009metaconta@gmail.com14

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.

Apache 2.0

06/06/2009metaconta@gmail.com15

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

Apache 2.0

06/06/2009metaconta@gmail.com16

Apache 2.0

06/06/2009metaconta@gmail.com17

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.

Apache 2.0

06/06/2009metaconta@gmail.com18

Apache 2.0

06/06/2009metaconta@gmail.com19

Apache 2.0

06/06/2009metaconta@gmail.com20

Apache 2.0

06/06/2009metaconta@gmail.com21

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.

Apache 2.0

06/06/2009metaconta@gmail.com22

Apache 2.0

06/06/2009metaconta@gmail.com23

Apache 2.0

06/06/2009metaconta@gmail.com24

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\”.

Apache 2.0

06/06/2009metaconta@gmail.com25

Apache 2.0

06/06/2009metaconta@gmail.com26

Apache 2.0

06/06/2009metaconta@gmail.com27

06/06/2009metaconta@gmail.com28

PHP 5

06/06/2009metaconta@gmail.com29

PHP

06/06/2009metaconta@gmail.com30

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.

PHP

06/06/2009metaconta@gmail.com31

Nos bajaremos la

versión zip package sin

instalador.

PHP

06/06/2009metaconta@gmail.com32

PHP

06/06/2009metaconta@gmail.com33

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

PHP

06/06/2009metaconta@gmail.com34

PHP

06/06/2009metaconta@gmail.com35

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.

PHP

06/06/2009metaconta@gmail.com36

06/06/2009metaconta@gmail.com37

Configuración del archivo INI

PHP

06/06/2009metaconta@gmail.com38

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com39

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.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com40

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.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com41

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.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com42

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.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com43

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.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com44

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.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com45

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/”.

PHP – Configuración del archivo INI.

06/06/2009metaconta@gmail.com46

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.

06/06/2009metaconta@gmail.com47

Apache 2.0.x

Configuración del archivo httpd.conf

06/06/2009metaconta@gmail.com48

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com49

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.

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com50

También puedes

acceder directamente al

directorio “C:\Archivos

de programa\Apache

Group\Apache2\conf”

como muestra la

imagen.

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com51

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com52

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.

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com53

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.

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com54

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.

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com55

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.

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com56

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

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com57

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:

Apache 2.0.x – Configuración del archivo

httpd.conf

06/06/2009metaconta@gmail.com58

Ya podemos guardar el archivo httpd.conf.

06/06/2009metaconta@gmail.com59

Probando el servidor Apache

06/06/2009metaconta@gmail.com60

Probando el servidor Apache

06/06/2009metaconta@gmail.com61

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.

Probando el servidor Apache

06/06/2009metaconta@gmail.com62

Probando el servidor Apache

06/06/2009metaconta@gmail.com63

Probando el servidor Apache

06/06/2009metaconta@gmail.com64

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.

Probando el servidor Apache

06/06/2009metaconta@gmail.com65

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

Probando el servidor Apache

06/06/2009metaconta@gmail.com66

Ahora, cogemos cualquier navegador e introducimos

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

http://localhost/info.php

Probando el servidor Apache

06/06/2009metaconta@gmail.com67

Probando el servidor Apache

06/06/2009metaconta@gmail.com68

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

anterior, revisa paso a paso otra vez lo que has

hecho hasta ahora.

Probando el servidor Apache

06/06/2009metaconta@gmail.com69

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.

06/06/2009metaconta@gmail.com70

MySQL 5.1

Instalación

06/06/2009metaconta@gmail.com71

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com72

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

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com73

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.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com74

Como no nos vamos a

registrar o introducir el

usuario registrado,

pinchamos

directamente aquí » No

thanks, just take me to

the downloads!

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com75

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com76

Pincha en HTTP o FTP, en nuestro caso pulsamos

FTP.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com77

Saldrá una ventana de descarga del archivo y

pulsamos el botón “Guardar archivo”.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com78

Ejecutamos el archivo o

MySQL descargado

mysql-5.1.34-

win32.msi.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com79

Aparecerá la ventana

de instalación.

Fíjese paso a paso las

próximas imágenes.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com80

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

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com81

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

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com82

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com83

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com84

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com85

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com86

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

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com87

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com88

Elegimos la opción detallada.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com89

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

opción si lo deseas.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com90

Elegimos que utilizamos bases de datos multifuncional. Estos nos permite

diferentes tipos de bases de datos.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com91

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com92

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com93

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

Tal como aparece en el dibujo.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com94

Lo dejamos como está.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com95

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.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com96

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.

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com97

MySQL 5.1 - Instalación

06/06/2009metaconta@gmail.com98

Ya podemos usar la base de datos MySQL.

06/06/2009metaconta@gmail.com99

phpMyAdmin

Gestor de bases de datos vía Web

06/06/2009metaconta@gmail.com100

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com101

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

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com102

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.

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com103

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.

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com104

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

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com105

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com106

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/';

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com107

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';

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com108

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';

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com109

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;

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com110

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;

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com111

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.

phpMyAdmin – instalación

06/06/2009metaconta@gmail.com112

06/06/2009metaconta@gmail.com113

Configurar usuarios de MySQL

06/06/2009metaconta@gmail.com114

Configurar usuarios de MySQL

06/06/2009metaconta@gmail.com115

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.

Configurar usuarios de MySQL

06/06/2009metaconta@gmail.com116

Configurar usuarios de MySQL

06/06/2009metaconta@gmail.com117

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.

06/06/2009metaconta@gmail.com118

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com119

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.

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com120

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.

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com121

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com122

Ahora podemos entrar

como usuario root y

contraseña 1234.

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com123

Ya podemos hacer click

en Privilegios y en la

siguiente página

pulsamos Agregar un

nuevo usuario.

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com124

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.

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com125

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.

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com126

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com127

Creación de nuestro usuario para MySQL

06/06/2009metaconta@gmail.com128

Si has pulsado continuar, te aparecerá esta imagen

que significa que lo has hecho bien.

06/06/2009metaconta@gmail.com129

Borrado de usuarios no deseados

06/06/2009metaconta@gmail.com130

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.

Borrado de usuarios no deseados

06/06/2009metaconta@gmail.com131

Borrado de usuarios no deseados

06/06/2009metaconta@gmail.com132

06/06/2009metaconta@gmail.com133

Recarga de privilegios

06/06/2009metaconta@gmail.com134

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.

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com135

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.

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com136

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.

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com137

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']

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com138

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'] = '';

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com139

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';

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com140

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.

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com141

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.

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com142

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…

?>

Configurar los scripts para el nuevo usuario

06/06/2009metaconta@gmail.com143

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.

06/06/2009metaconta@gmail.com144

ArGoSoft Mail Server

Servidor SMTP

06/06/2009metaconta@gmail.com145

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com146

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.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com147

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 = me@localhost.com

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com148

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.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com149

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

pincha en el recuadro rojo de la imagen de abajo.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com151

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.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com152

Ejecutamos el archivo

descargado que desde

que se hizo este

manual se llamaba

MailServerFreeSetup.

msi.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com153

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com154

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com155

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com156

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com157

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com158

Verás un acceso directo

en el escritorio.

Haz doble click en él

para ejecutarlo.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com159

Ahora ya puedes ver el

programa principal.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com160

Pulsa .

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com161

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.

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com162

ArGoSoft Mail Server

06/06/2009metaconta@gmail.com163

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

06/06/2009metaconta@gmail.com164

Realizar actualizaciones

Cómo realizar las actualizaciones a versiones superiores

06/06/2009metaconta@gmail.com165

Realizar actualizaciones

06/06/2009metaconta@gmail.com166

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.

Realizar actualizaciones

06/06/2009metaconta@gmail.com167

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

Realizar actualizaciones

06/06/2009metaconta@gmail.com168

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

Realizar actualizaciones

06/06/2009metaconta@gmail.com169

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

Realizar actualizaciones

06/06/2009metaconta@gmail.com170

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.

Realizar actualizaciones

06/06/2009metaconta@gmail.com171

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

Realizar actualizaciones

06/06/2009metaconta@gmail.com172

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

06/06/2009metaconta@gmail.com173

VirtualHosts

Manejo de más de un sitio web

06/06/2009metaconta@gmail.com174

Manejo de más de un sitio web: VirtualHosts

06/06/2009metaconta@gmail.com175

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.

Manejo de más de un sitio web: VirtualHosts

06/06/2009metaconta@gmail.com176

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.

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com177

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

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com178

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

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com179

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 webmaster@dummy-host.example.com# 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>

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com180

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.

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com181

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.

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com182

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.

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com183

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:

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com184

<VirtualHost *:80>ServerAdmin webmaster@sitioa.comDocumentRoot "C:/Servidor/Web/SitioA"ServerName sitioaErrorLog logs/SitioA-error_logCustomLog logs/SitioA-access_log common

</VirtualHost>

<VirtualHost *:80>ServerAdmin webmaster@sitiob.comDocumentRoot "C:/Servidor/Web/SitioB"ServerName sitiobErrorLog logs/SitioB-error_logCustomLog logs/SitioB-access_log common

</VirtualHost>

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com185

<VirtualHost *:80>

ServerAdmin webmaster@otrositio.com

DocumentRoot "C:/Servidor/Web/phpMyAdmin"

ServerName phpmyadmin

ErrorLog logs/phpMyAdmin-error_log

CustomLog logs/phpMyAdmin-access_log

common

</VirtualHost>

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com186

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.

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com187

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:

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com188

# 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

VirtualHosts en Apache 2.0.x

06/06/2009metaconta@gmail.com189

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.

06/06/2009metaconta@gmail.com190

VirtualHosts en Apache 2.2.x

06/06/2009metaconta@gmail.com191

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

06/06/2009metaconta@gmail.com192

Cara Internet

Servidor cara a Internet

06/06/2009metaconta@gmail.com193

Cara Internet

06/06/2009metaconta@gmail.com194

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.

Cara Internet

06/06/2009metaconta@gmail.com195

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.

Cara Internet

06/06/2009metaconta@gmail.com196

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.

Cara Internet

06/06/2009metaconta@gmail.com197

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í:

Cara Internet

06/06/2009metaconta@gmail.com198

<VirtualHost *:80>

ServerAdmin webmaster@sitioa.com

DocumentRoot "C:/Servidor/Web/SitioA"

ServerName sitioa

ServerAlias sitioa.com *.sitioa.com

ErrorLog logs/SitioA-error_log

CustomLog logs/SitioA-access_log common

</VirtualHost>

Cara Internet

06/06/2009metaconta@gmail.com199

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.

Cara Internet

06/06/2009metaconta@gmail.com200

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

Cara Internet

06/06/2009metaconta@gmail.com201

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.

06/06/2009metaconta@gmail.com202

Otros manuales

06/06/2009metaconta@gmail.com203

Otros manuales

DESCARGAS DE MANUALES

06/06/2009metaconta@gmail.com204

Puedes descargar otros

manuales.

Manuales

Manuales

Manuales

Enlaces de interés

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

información.

06/06/2009metaconta@gmail.com205

Enlaces de interés

06/06/2009metaconta@gmail.com206

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.

Enlaces de interés

06/06/2009metaconta@gmail.com207

Este manual fue desarrollado gracias a la

información desde:

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

p/

http://www.mundodivx.com/php

Versión del manual

06/06/2009metaconta@gmail.com208

Publicado por primera vez: 06/06/2009

Versión :1.00

Contacto

Cualquier comentario,

sugerencia o mejoras del

manual, me lo envían por

correo electrónico al

metaconta@gmail.com

metaconta@gmail.com

06/06/2009metaconta@gmail.com209

Puedes publicar este tutorial o

manual en tu Web, foros, blogs,

CD, DVD o Blu-Raypara revistas

oficiales, etc, libremente.

Autor:

Ángel Acaymo M. G.

06/06/2009metaconta@gmail.com210

top related