apache.d4 admin web

50
ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE Dictado por: Ing. Carlos Alcalá Helguero Consultas: [email protected] SERVIDOR WEB APACHE

Upload: gh02

Post on 12-Jun-2015

4.933 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

ADMINISTRACION DE SERVIDORES LINUX

ENTERPRISE

Dictado por: Ing. Carlos Alcalá HelgueroConsultas: [email protected]

SERVIDOR WEB APACHE

Page 2: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE TOPICOS CLASE 4: TOPICOS CLASE 4: SERVIDOR DE RESOLUCION DE NOMBRES DNSSERVIDOR DE RESOLUCION DE NOMBRES DNS

Introducción a Servidor WebIntroducción a Servidor Web Instalación de Apache Web Server.Instalación de Apache Web Server. Creación del Certificado seguro SSL.Creación del Certificado seguro SSL. Configuración de directivas de ejecución: Configuración de directivas de ejecución:

httpd.confhttpd.conf Sitios Virtuales.Sitios Virtuales. Introducción a PHP.Introducción a PHP. Instalación del modulo PHP5.Instalación del modulo PHP5. Configuración Post-instalaciónConfiguración Post-instalación Comprobación del servicio Web + SSL + PHP + Comprobación del servicio Web + SSL + PHP +

VirtualhostVirtualhost Solución de problemas frecuentes.Solución de problemas frecuentes.

Page 3: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCIONINTRODUCCION Conceptos básicos del servidor webConceptos básicos del servidor web Un servidor Web es un programa que sirve para atender y responder a Un servidor Web es un programa que sirve para atender y responder a

las diferentes peticiones de los navegadores, proporcionando los recursos las diferentes peticiones de los navegadores, proporcionando los recursos que soliciten usando el protocolo HTTP o el protocolo HTTPS (la versión que soliciten usando el protocolo HTTP o el protocolo HTTPS (la versión cifrada y autenticada). Un servidor Web básico cuenta con un esquema cifrada y autenticada). Un servidor Web básico cuenta con un esquema de funcionamiento muy simple, basado en ejecutar infinitamente el de funcionamiento muy simple, basado en ejecutar infinitamente el siguiente bucle:siguiente bucle:

1.1. Espera peticiones en el puerto TCP indicado (el estándar por defecto Espera peticiones en el puerto TCP indicado (el estándar por defecto para HTTP es el 80). para HTTP es el 80).

2.2. Recibe una petición. Recibe una petición.

3.3. Busca el recurso. Busca el recurso.

4.4. Envía el recurso utilizando la misma conexión por la que recibió Envía el recurso utilizando la misma conexión por la que recibió petición. petición.

5.5. Vuelve al segundo punto. Vuelve al segundo punto. A partir del anterior esquema se han diseñado y desarrollado todos los A partir del anterior esquema se han diseñado y desarrollado todos los

servidores de HTTP que existen, variando sólo el tipo de peticiones servidores de HTTP que existen, variando sólo el tipo de peticiones (páginas estáticas, CGIs, Servlets, etc.) que pueden atender, en función (páginas estáticas, CGIs, Servlets, etc.) que pueden atender, en función de que sean o no sean multi-proceso o multi-hilados, etc. A continuación de que sean o no sean multi-proceso o multi-hilados, etc. A continuación se detallan algunas de las características básicas de los servidores web, se detallan algunas de las características básicas de los servidores web, que amplían, obviamente el esquema anterior.que amplían, obviamente el esquema anterior.

Page 4: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION INTRODUCCION Servicio de ficheros estáticosServicio de ficheros estáticos Todos los servidores web deben incluir, al menos, la capacidad Todos los servidores web deben incluir, al menos, la capacidad

para servir los ficheros estáticos que se hallen en alguna parte para servir los ficheros estáticos que se hallen en alguna parte del disco. Un requisito básico es la capacidad de especificar qué del disco. Un requisito básico es la capacidad de especificar qué parte del disco se servirá. No resulta recomendable que el parte del disco se servirá. No resulta recomendable que el programa servidor obligue a usar un directorio concreto, aunque programa servidor obligue a usar un directorio concreto, aunque sí puede tener uno por defecto.sí puede tener uno por defecto.

La mayoría de servidores web permiten añadir otros directorios o La mayoría de servidores web permiten añadir otros directorios o subdirectorios para servir, especificando en qué punto del subdirectorios para servir, especificando en qué punto del "sistema de ficheros" virtual del servidor se localizarán los "sistema de ficheros" virtual del servidor se localizarán los recursos.recursos.

Algunos servidores web permiten también especificar directivas Algunos servidores web permiten también especificar directivas de seguridad (quién puede acceder a los recursos), mientras que de seguridad (quién puede acceder a los recursos), mientras que otros hacen posible la especificación de los ficheros que se deben otros hacen posible la especificación de los ficheros que se deben considerar como índice del directorio.considerar como índice del directorio.

Page 5: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION INTRODUCCION Seguridad y autenticaciónSeguridad y autenticación La mayoría de los servidores web actuales permiten La mayoría de los servidores web actuales permiten

controlar desde el programa servidor los aspectos controlar desde el programa servidor los aspectos relacionados con la seguridad y la autenticación de los relacionados con la seguridad y la autenticación de los usuarios.usuarios.

Podemos, por ejemplo, tener la siguiente situación:Podemos, por ejemplo, tener la siguiente situación:

/informe-2006/home/estudiante/informe

/docs/home/empresa/docs

//usr/local/apache/html

Directorio webDirectorio del disco

Page 6: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION INTRODUCCION Seguridad y autenticaciónSeguridad y autenticación En este caso, el servidor debería traducir las direcciones web de esta En este caso, el servidor debería traducir las direcciones web de esta

manera: manera:

El modo más sencillo de control es el facilitado por el uso de El modo más sencillo de control es el facilitado por el uso de ficheros ficheros .htaccess.htaccess. Se trata de un sistema de seguridad que deriva de . Se trata de un sistema de seguridad que deriva de uno de los primeros servidores web ("NCSA httpd"), que consiste en uno de los primeros servidores web ("NCSA httpd"), que consiste en incluir un fichero de nombre .htaccess en cualquier directorio del incluir un fichero de nombre .htaccess en cualquier directorio del contenido web que se deba a servir, indicando en este fichero qué contenido web que se deba a servir, indicando en este fichero qué usuarios o máquinas, etc. tienen acceso a los ficheros y a los diferentes usuarios o máquinas, etc. tienen acceso a los ficheros y a los diferentes subdirectorios del directorio donde está instalado el .htaccess. Como el subdirectorios del directorio donde está instalado el .htaccess. Como el "NCSA httpd" fue el servidor más utilizado durante mucho tiempo, la "NCSA httpd" fue el servidor más utilizado durante mucho tiempo, la mayoría de servidores actuales permiten utilizar un fichero .htaccess mayoría de servidores actuales permiten utilizar un fichero .htaccess respetando la sintaxis original del servidor de NCSA.respetando la sintaxis original del servidor de NCSA.

/home/estudiante/informe/index.html/informe-2006/index.html

/usr/local/apache/html/empresa/quienes.html/empresa/quienes.html

/home/empresa/docs/manuales/producto.pdf/docs/manuales/producto.pdf

/usr/local/apache/html/index.html/index.html

Fichero de discoURL

Page 7: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION INTRODUCCION Contenido dinámicoContenido dinámico Uno de los aspectos fundamentales del servidor web elegido es el nivel de Uno de los aspectos fundamentales del servidor web elegido es el nivel de

soporte que ofrece para servir contenido dinámico. Puesto que la mayor soporte que ofrece para servir contenido dinámico. Puesto que la mayor parte del contenido web que se sirve no viene de páginas estáticas, sino parte del contenido web que se sirve no viene de páginas estáticas, sino que se genera de forma dinámica, y esta tendencia se mueve claramente al que se genera de forma dinámica, y esta tendencia se mueve claramente al alza, el soporte para contenido de tipo dinámico que ofrece un servidor web alza, el soporte para contenido de tipo dinámico que ofrece un servidor web es uno de los puntos críticos en la elección.es uno de los puntos críticos en la elección.

La mayor parte de los servidores web ofrecen soporte para CGI (se debe La mayor parte de los servidores web ofrecen soporte para CGI (se debe recordar que los CGI son el método más antiguo y sencillo para generar recordar que los CGI son el método más antiguo y sencillo para generar contenido dinámico). Otros muchos ofrecen soporte para algunos lenguajes contenido dinámico). Otros muchos ofrecen soporte para algunos lenguajes de programación (normalmente lenguajes interpretados) como PHP, JSP, de programación (normalmente lenguajes interpretados) como PHP, JSP, ASP, etc. ASP, etc.

Es muy recomendable que el servidor web que vayamos a utilizar Es muy recomendable que el servidor web que vayamos a utilizar proporcione soporte para algunos de estos lenguajes, especialmente PHP, proporcione soporte para algunos de estos lenguajes, especialmente PHP, sin tener en cuenta JSP, que normalmente requerirá un software externo sin tener en cuenta JSP, que normalmente requerirá un software externo para funcionar (como un contenedor de Servlets). para funcionar (como un contenedor de Servlets).

La oferta es muy amplia, pero antes de elegir un lenguaje de programación La oferta es muy amplia, pero antes de elegir un lenguaje de programación de servidor se debe plantear si se desea un lenguaje muy estándar para de servidor se debe plantear si se desea un lenguaje muy estándar para que la aplicación no dependa de un servidor web o una arquitectura que la aplicación no dependa de un servidor web o una arquitectura concreta o si, al contrario, la portabilidad no es prioritaria y sí lo es alguna concreta o si, al contrario, la portabilidad no es prioritaria y sí lo es alguna otra prestación concreta que pueda ofrecer algún lenguaje de otra prestación concreta que pueda ofrecer algún lenguaje de programación concreto.programación concreto.

Page 8: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION INTRODUCCION Servidores virtualesServidores virtuales Una prestación que gana aceptación y usuarios rápidamente, Una prestación que gana aceptación y usuarios rápidamente,

muy especialmente entre los proveedores de servicios de muy especialmente entre los proveedores de servicios de Internet y las empresas de alojamiento de dominios, es la Internet y las empresas de alojamiento de dominios, es la capacidad de algunos servidores Web de facilitar múltiples capacidad de algunos servidores Web de facilitar múltiples dominios con una única dirección IP, discriminando entre los dominios con una única dirección IP, discriminando entre los diferentes dominios alojados en función del nombre de diferentes dominios alojados en función del nombre de dominio enviado en la cabecera HTTP. Esta prestación dominio enviado en la cabecera HTTP. Esta prestación permite la administración racional y ahorradora de un bien permite la administración racional y ahorradora de un bien escaso, las direcciones IP. escaso, las direcciones IP.

Si se necesitan muchos nombres de servidor (porque Si se necesitan muchos nombres de servidor (porque proporcionamos alojamiento o por cualquier otro motivo) proporcionamos alojamiento o por cualquier otro motivo) debemos asegurarnos de que el servidor web elegido ofrezca debemos asegurarnos de que el servidor web elegido ofrezca esta facilidad y que el soporte que ofrece para servidores esta facilidad y que el soporte que ofrece para servidores virtuales permita una configuración distinta para cada virtuales permita una configuración distinta para cada servidor. Sería perfecto que cada servidor se comportara servidor. Sería perfecto que cada servidor se comportara como si fuese un ordenador diferente.como si fuese un ordenador diferente.

Page 9: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION INTRODUCCION Protocolos adicionalesProtocolos adicionales Algunos servidores, no sólo atienden y sirven peticiones Algunos servidores, no sólo atienden y sirven peticiones

HTTP (y HTTPS), sino que pueden servir también peticiones HTTP (y HTTPS), sino que pueden servir también peticiones basadas en otros protocolos o en protocolos implementados basadas en otros protocolos o en protocolos implementados sobre HTTP. Algunos de estos protocolos pueden ser sobre HTTP. Algunos de estos protocolos pueden ser requisitos fundamentales de nuestro sistema (en función de requisitos fundamentales de nuestro sistema (en función de nuestras necesidades) y decantar nuestra elección de un nuestras necesidades) y decantar nuestra elección de un programa servidor.programa servidor.

Page 10: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION APACHE WEB SERVERINTRODUCCION APACHE WEB SERVER Servidor ApacheServidor Apache El servidor HTTP Apache es un servidor HTTP de código El servidor HTTP Apache es un servidor HTTP de código

abierto para plataformas Unix (BSD, GNU/Linux, etcétera), abierto para plataformas Unix (BSD, GNU/Linux, etcétera), Windows y otras, que implementa el protocolo HTTP/1.1 Windows y otras, que implementa el protocolo HTTP/1.1 (RFC 2616) y la noción de sitio virtual. Cuando comenzó su (RFC 2616) y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache completo. Su nombre se debe a que originalmente Apache consistía solamente en un conjunto de parches a aplicar al consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en inglés, servidor de NCSA. Era, en inglés, a patchy servera patchy server (un (un servidor servidor parcheadoparcheado).).

El servidor Apache se desarrolla dentro del proyecto HTTP El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.Server (httpd) de la Apache Software Foundation.

Apache presenta entre otras características mensajes de Apache presenta entre otras características mensajes de error altamente configurables, bases de datos de error altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su por la falta de una interfaz gráfica que ayude en su configuración.configuración.

En la actualidad (2006), Apache es el servidor HTTP más En la actualidad (2006), Apache es el servidor HTTP más usado, siendo el servidor HTTP del 70% de los sitios web en usado, siendo el servidor HTTP del 70% de los sitios web en el mundo y creciendo aún su cuota de mercado (estadísticas el mundo y creciendo aún su cuota de mercado (estadísticas históricas y de uso diario proporcionadas por Netcraft).históricas y de uso diario proporcionadas por Netcraft).

Page 11: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION APACHE WEB SERVERINTRODUCCION APACHE WEB SERVER Estadística 2006Estadística 2006

Page 12: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION APACHE WEB SERVERINTRODUCCION APACHE WEB SERVER Historia de ApacheHistoria de Apache En febrero del año 1995, el servidor web más popular era un En febrero del año 1995, el servidor web más popular era un

servidor desarrollado por el NCSA (National Center for servidor desarrollado por el NCSA (National Center for Supercomputing Applications de la Universidad de Illinois). Supercomputing Applications de la Universidad de Illinois).

Sin embargo, al dejar el principal desarrollador del servidor, Rob Sin embargo, al dejar el principal desarrollador del servidor, Rob McCool, la NCSA en el año 1994, la evolución del programa había McCool, la NCSA en el año 1994, la evolución del programa había quedado seriamente comprometida. La responsabilidad del quedado seriamente comprometida. La responsabilidad del desarrollo recayó en los responsables de sitios web, que desarrollo recayó en los responsables de sitios web, que introdujeron mejoras progresivas en sus servidores. Un grupo de introdujeron mejoras progresivas en sus servidores. Un grupo de ellos, utilizando el correo electrónico como herramienta principal de ellos, utilizando el correo electrónico como herramienta principal de coordinación, se pusieron de acuerdo para poner en común estas coordinación, se pusieron de acuerdo para poner en común estas mejoras en forma de "patches" o parches. 2 de ellos, Cliff Skolnick y mejoras en forma de "patches" o parches. 2 de ellos, Cliff Skolnick y Brian Behlendorf, iniciaron una lista de correo, un espacio para Brian Behlendorf, iniciaron una lista de correo, un espacio para compartir información y un servidor en California donde los compartir información y un servidor en California donde los desarrolladores más importantes pudiesen trabajar. A principios del desarrolladores más importantes pudiesen trabajar. A principios del año siguiente, 8 programadores fundaron lo que había de ser el año siguiente, 8 programadores fundaron lo que había de ser el Grupo Apache.Grupo Apache.

Éstos, utilizando como base de trabajo el servidor NCSA 1.3, Éstos, utilizando como base de trabajo el servidor NCSA 1.3, incorporaron las correcciones de errores publicadas y las mejoras incorporaron las correcciones de errores publicadas y las mejoras más importantes que encontraron y probaron el resultado final en más importantes que encontraron y probaron el resultado final en sus servidores. Después publicaron lo que había de ser la 1a versión sus servidores. Después publicaron lo que había de ser la 1a versión oficial del servidor Apache (la 0.6.2, en abril del año 1995). oficial del servidor Apache (la 0.6.2, en abril del año 1995). Casualmente, por esas fechas, la NCSA reemprendió el desarrollo de Casualmente, por esas fechas, la NCSA reemprendió el desarrollo de su servidor NCSA.su servidor NCSA.

Page 13: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION APACHE WEB SERVERINTRODUCCION APACHE WEB SERVER Historia de ApacheHistoria de Apache En aquel momento el desarrollo de Apache continuó por 2 En aquel momento el desarrollo de Apache continuó por 2

líneas paralelas. Por un lado, algunos desarrolladores líneas paralelas. Por un lado, algunos desarrolladores siguieron trabajando en el Apache 0.6.2 para llegar a la serie siguieron trabajando en el Apache 0.6.2 para llegar a la serie 0.7, incorporando diversas mejoras. Otro grupo reescribió 0.7, incorporando diversas mejoras. Otro grupo reescribió por completo el código de la primera versión, creando una por completo el código de la primera versión, creando una nueva arquitectura de tipo modular. En julio del año 1995 nueva arquitectura de tipo modular. En julio del año 1995 migraron a esta nueva arquitectura las mejoras migraron a esta nueva arquitectura las mejoras desarrolladas para Apache 0.7, haciéndose público como desarrolladas para Apache 0.7, haciéndose público como Apache 0.8.Apache 0.8.

El día 1 de diciembre del año 1995, apareció Apache 1.0, que El día 1 de diciembre del año 1995, apareció Apache 1.0, que incluía abundante documentación y muchas mejoras en incluía abundante documentación y muchas mejoras en forma de módulos que se podían incrustar. Después, Apache forma de módulos que se podían incrustar. Después, Apache sobrepasó al servidor NCSA como el más popular en sobrepasó al servidor NCSA como el más popular en Internet, posición que ha mantenido hasta hoy. En el año Internet, posición que ha mantenido hasta hoy. En el año 1999 los miembros del Grupo Apache fundaron la Apache 1999 los miembros del Grupo Apache fundaron la Apache Software Foundation, que da soporte de tipo legal y Software Foundation, que da soporte de tipo legal y financiero al desarrollo del servidor Apache y los proyectos financiero al desarrollo del servidor Apache y los proyectos relacionados que ha ido surgiendo.relacionados que ha ido surgiendo.

Page 14: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Existen 2 opciones principales para instalar Apache: compilar el Existen 2 opciones principales para instalar Apache: compilar el

código fuente o instalarlo a partir de un paquete binario código fuente o instalarlo a partir de un paquete binario apropiado para cada sistema operativo.apropiado para cada sistema operativo.

Descargar los fuentesDescargar los fuentes Para compilar Apache a partir de su código fuente, se debe Para compilar Apache a partir de su código fuente, se debe

obtener previamente de la web de Apache la versión más obtener previamente de la web de Apache la versión más reciente (reciente (http://httpd.apache.orghttp://httpd.apache.org).).

shell> wget http://mirrors.combose.com/apache/httpd/httpd-2.2.0.tar.gz shell> wget http://mirrors.combose.com/apache/httpd/httpd-2.2.0.tar.gz

Descomprimimos el paquete obtenido previamente e ingresamos Descomprimimos el paquete obtenido previamente e ingresamos al directorio:al directorio:

shell> cd /tmpshell> cd /tmp

shell> tar xvfz httpd-2.2.0.tar.gzshell> tar xvfz httpd-2.2.0.tar.gz

shell> cd httpd-2.2.0/shell> cd httpd-2.2.0/

Page 15: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Configuración de FuentesConfiguración de Fuentes Configurar el código para su compilación. Para ello ejecutaremos:Configurar el código para su compilación. Para ello ejecutaremos: $ ./configure$ ./configure Existen algunos parámetros que permiten ajustar la compilación de Existen algunos parámetros que permiten ajustar la compilación de

Apache. Los más importantes son:Apache. Los más importantes son: --prefix Directorio donde instalar Apache --prefix Directorio donde instalar Apache --enable-modules=LISTA-MODULOS Módulos que se desean activar --enable-modules=LISTA-MODULOS Módulos que se desean activar --enable-mods-shared=LISTA-MODULOS Módulos shared que se --enable-mods-shared=LISTA-MODULOS Módulos shared que se

desean que activar desean que activar --enable-cache Caché dinámica --enable-cache Caché dinámica --enable-disk-cache Caché dinámica en el disco --enable-disk-cache Caché dinámica en el disco --enable-mem-cache Módulo de caché de la memoria --enable-mem-cache Módulo de caché de la memoria --enable-mime-magic Determinación del tipo MIME automática --enable-mime-magic Determinación del tipo MIME automática --enable-usertrack Seguimiento de la sesión de usuario --enable-usertrack Seguimiento de la sesión de usuario --enable-proxy Módulo Apache-proxy --enable-proxy Módulo Apache-proxy --enable-proxy-connect Módulo Apache-proxy para CONNECT --enable-proxy-connect Módulo Apache-proxy para CONNECT --enable-proxy-ftp Módulo Apache-proxy para FTP --enable-proxy-ftp Módulo Apache-proxy para FTP

Page 16: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Configuración de FuentesConfiguración de Fuentes

--enable-proxy-http Módulo Apache-proxy HTTP --enable-proxy-http Módulo Apache-proxy HTTP --enable-ssl Soporte de SSL/TLS (mod ssl) --enable-ssl Soporte de SSL/TLS (mod ssl) --enable-http Manejo del protocolo HTTP --enable-http Manejo del protocolo HTTP --enable-dav Manejo del protocolo WebDAV --enable-dav Manejo del protocolo WebDAV --disable-cgid Soporte para CGI optimizado --disable-cgid Soporte para CGI optimizado --enable-cgi Soporte para CGI --enable-cgi Soporte para CGI --disable-cgi Soporte para CGI --disable-cgi Soporte para CGI --enable-cgid Soporte para CGI optimizado --enable-cgid Soporte para CGI optimizado --enable-vhost-alias Soporte de hosts virtuales --enable-vhost-alias Soporte de hosts virtuales

Page 17: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Configuración de FuentesConfiguración de Fuentes A continuación ejecutamos configure con algunas opciones A continuación ejecutamos configure con algunas opciones

especiales.especiales.

shell> shell> ./configure --enable-ssl --with-ssl=/usr --enable-suexec ./configure --enable-ssl --with-ssl=/usr --enable-suexec

--with-suexec-docroot=/usr/local --enable-cgi --enable-rewrite --with-suexec-docroot=/usr/local --enable-cgi --enable-rewrite

--enable-so --enable-logio --prefix=/usr/local/apache2 --enable-so --enable-logio --prefix=/usr/local/apache2

--enable-module=most --enable-shared=max --bindir=/usr/bin --enable-module=most --enable-shared=max --bindir=/usr/bin

--sbindir=/usr/sbin --sysconfdir=/etc/httpd --sbindir=/usr/sbin --sysconfdir=/etc/httpd

(TODO UNA SOLA LINEA)(TODO UNA SOLA LINEA)

Page 18: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Compilación de Fuentes e Instalación de BinariosCompilación de Fuentes e Instalación de Binarios NotaNota: Se puede cambiar el comando configure para satisfacer : Se puede cambiar el comando configure para satisfacer

sus necesidades. Escribir sus necesidades. Escribir ./configure –help ./configure –help para obtener una lista para obtener una lista de todas las opciones disponibles)de todas las opciones disponibles)

Luego se prosigue con la compilación de los fuentes:Luego se prosigue con la compilación de los fuentes:shell> makeshell> make

Se debe recordar que para compilar Apache se requiere, como Se debe recordar que para compilar Apache se requiere, como mínimo, GNU Make y GNU CC. mínimo, GNU Make y GNU CC.

A continuación si no se ha encontrado ninguna falla de A continuación si no se ha encontrado ninguna falla de compilación se procede a instalar los binarios resultantes del compilación se procede a instalar los binarios resultantes del proceso de compilación:proceso de compilación:

shell> make installshell> make install

Esto instalara Apache2 en el directorio Esto instalara Apache2 en el directorio /usr/local/apache2/usr/local/apache2. El . El directorio web principal es directorio web principal es /usr/local/apache2/htdocs/usr/local/apache2/htdocs, el , el directorio de logs es directorio de logs es /usr/local/apache2/logs, /usr/local/apache2/logs, , el directorio de , el directorio de configuración es configuración es /etc/httpd/etc/httpd..

Page 19: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Comprobación inicial del ServicioComprobación inicial del Servicio Una vez instalado, disponemos, dentro del subdirectorio "bin" Una vez instalado, disponemos, dentro del subdirectorio "bin"

dentro del directorio de instalación, el que hemos especificado dentro del directorio de instalación, el que hemos especificado con PREFIX (/usr/local/apache2), un script denominado con PREFIX (/usr/local/apache2), un script denominado "apachectl" que permite controlar el servidor. "apachectl" que permite controlar el servidor.

Para iniciarlo: Para iniciarlo: shell> cd <PREFIX>/binshell> cd <PREFIX>/bin

shell> ./apachectl start shell> ./apachectl start Luego accedemos a un navegador (Firefox en Linux) y Luego accedemos a un navegador (Firefox en Linux) y

accedemos a la dirección del servidor web local: accedemos a la dirección del servidor web local: http://localhosthttp://localhost o o http://127.0.0.1http://127.0.0.1 , ambas que hacen referencia a la dirección de , ambas que hacen referencia a la dirección de loopback (red virtual) de la maquinaloopback (red virtual) de la maquina

Para detenerlo:Para detenerlo:shell> cd <PREFIX>/binshell> cd <PREFIX>/bin

shell> ./apachectl stopshell> ./apachectl stop

Page 20: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Soporte de encriptación SSLSoporte de encriptación SSL Si se desea levantar apache con soporte SSL es necesario generar el Si se desea levantar apache con soporte SSL es necesario generar el

archivo archivo /etc/httpd/ssl.crt/server.crt/etc/httpd/ssl.crt/server.crt mediante el siguiente procedimiento: mediante el siguiente procedimiento:

Creamos el directorio temporal para los certificados y llaves:Creamos el directorio temporal para los certificados y llaves:shell> mkdir /etc/httpd/ssl.crtshell> mkdir /etc/httpd/ssl.crt Se genera la llave con encriptacion DES de 1024 bits:Se genera la llave con encriptacion DES de 1024 bits:shell> openssl genrsa -des3 -passout pass:asecretpassword –out shell> openssl genrsa -des3 -passout pass:asecretpassword –out /etc/httpd/ssl.crt/server.key.org 1024 /etc/httpd/ssl.crt/server.key.org 1024

Se genera la duración del certificado a 3650 días(10 años):Se genera la duración del certificado a 3650 días(10 años):shell> openssl req -new -passin pass:asecretpassword -passout shell> openssl req -new -passin pass:asecretpassword -passout pass:asecretpassword -key /etc/httpd/ssl.crt/server.key.org -out pass:asecretpassword -key /etc/httpd/ssl.crt/server.key.org -out /etc/httpd/ssl.crt/server.csr -days 3650/etc/httpd/ssl.crt/server.csr -days 3650

Se genera el certificado:Se genera el certificado:shell> openssl req -x509 -passin pass:asecretpassword -passout shell> openssl req -x509 -passin pass:asecretpassword -passout pass:asecretpassword -key /etc/httpd/ssl.crt/server.key.org -in pass:asecretpassword -key /etc/httpd/ssl.crt/server.key.org -in /etc/httpd/ssl.crt/server.csr -out /etc/httpd/ssl.crt/server.crt /etc/httpd/ssl.crt/server.csr -out /etc/httpd/ssl.crt/server.crt -days 3650-days 3650

Page 21: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Soporte de encriptación SSLSoporte de encriptación SSL Generamos la llave del certificado del servidor:Generamos la llave del certificado del servidor:shell> openssl rsa -passin pass:asecretpassword -in shell> openssl rsa -passin pass:asecretpassword -in

/etc/httpd/ssl.crt/server.key.org -out /etc/httpd/ssl.crt/server.key.org -out

/etc/httpd/ssl.crt/server.key/etc/httpd/ssl.crt/server.key

Creamos un directorio para colocar las llaves del servidor:Creamos un directorio para colocar las llaves del servidor:shell> mkdir /etc/httpd/ssl.keyshell> mkdir /etc/httpd/ssl.key

Movemos la llave creada al nuevo directorio y le damos permisos Movemos la llave creada al nuevo directorio y le damos permisos de solo lectura:de solo lectura:

shell> mv /etc/httpd/ssl.crt/server.key /etc/httpd/ssl.key/server.keyshell> mv /etc/httpd/ssl.crt/server.key /etc/httpd/ssl.key/server.key

shell> chmod 400 /etc/httpd/ssl.key/server.keyshell> chmod 400 /etc/httpd/ssl.key/server.key

Page 22: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE APACHE WEB SERVERINSTALACION DE APACHE WEB SERVER Soporte de encriptación SSLSoporte de encriptación SSL ((NOTA:NOTA: Es seguro aceptar los valores por defecto en todas las Es seguro aceptar los valores por defecto en todas las

preguntas que se vean cuando se crea preguntas que se vean cuando se crea /etc/httpd/ssl.crt/server.crt,/etc/httpd/ssl.crt/server.crt, dado que se mostrara una dado que se mostrara una advertencia al momento de levantar el sitio Web, debido a que se advertencia al momento de levantar el sitio Web, debido a que se esta usando un certificado autogenerado y que entornos de esta usando un certificado autogenerado y que entornos de producción no tiene validez.producción no tiene validez.

Si no se desea que se muestre una advertencia, es necesario Si no se desea que se muestre una advertencia, es necesario comprar un certificado SSL "real" (que no es gratis). Se puede comprar un certificado SSL "real" (que no es gratis). Se puede visitar uno de los siguientes sitios:visitar uno de los siguientes sitios:

http://http://www.instantssl.comwww.instantssl.com// httphttp://://www.verisign.comwww.verisign.com// httphttp://://www.thawte.comwww.thawte.com// httphttp://://www.baltimore.comwww.baltimore.com// httphttp://://www.ipsca.comwww.ipsca.com// httphttp://://www.entrust.comwww.entrust.com// httphttp://://www.geotrust.comwww.geotrust.com//

Page 23: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP PHP es una tecnología del lado del servidor, que funciona embebida (es PHP es una tecnología del lado del servidor, que funciona embebida (es

decir, incrustada) dentro del código HTML de una pagina, dándole mayor decir, incrustada) dentro del código HTML de una pagina, dándole mayor dinamismo a la misma, con acceso a bases de datos, creación de foros, dinamismo a la misma, con acceso a bases de datos, creación de foros, libros de visita, rotación de banners, etc.libros de visita, rotación de banners, etc.Su sintaxis es heredada de C/Java y posee gran cantidad de funciones que Su sintaxis es heredada de C/Java y posee gran cantidad de funciones que permiten realizar todas las acciones que soporta el PHP.permiten realizar todas las acciones que soporta el PHP.

Esta tecnología inició como un pasatiempo de Rasmus Lerdorf pero hoy Esta tecnología inició como un pasatiempo de Rasmus Lerdorf pero hoy en día, gracias a ser gratis, cuenta con miles de adeptos y actualizaciones en día, gracias a ser gratis, cuenta con miles de adeptos y actualizaciones muy constantes. Muchas empresas se han fijado en el potencial de PHP, y muy constantes. Muchas empresas se han fijado en el potencial de PHP, y han dado su apoyo a esta, como es el caso de Zend, uno de los principales han dado su apoyo a esta, como es el caso de Zend, uno de los principales contribuyentes para el lanzamiento de la version 4 de este lenguaje.contribuyentes para el lanzamiento de la version 4 de este lenguaje.

La forma mas fácil de averiguar cuando una pagina es o no PHP, es La forma mas fácil de averiguar cuando una pagina es o no PHP, es verificando su extensión, que puede ser verificando su extensión, que puede ser generalmente .php, .phtml, .php3, .php4generalmente .php, .phtml, .php3, .php4

PHP está siendo explotado con gran provecho alrededor de toda la red... PHP está siendo explotado con gran provecho alrededor de toda la red...

Page 24: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP PHPPHP es un lenguaje de programación usado generalmente para es un lenguaje de programación usado generalmente para

la creación de contenido para sitios web. PHP es el (acrónimo la creación de contenido para sitios web. PHP es el (acrónimo recursivo de "recursivo de "PPHP: HP: HHypertext ypertext PPreprocessor", inicialmente PHP reprocessor", inicialmente PHP Tools, o, Tools, o, PPersonal ersonal HHome ome PPage Tools) es un lenguaje interpretado age Tools) es un lenguaje interpretado usado para la creación de aplicaciones para servidores, o usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web, y últimamente creación de contenido dinámico para sitios web, y últimamente también para la creación de otro tipo de programas incluyendo también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando la librería GTK+. aplicaciones con interfaz gráfica usando la librería GTK+.

Visión generalVisión general El fácil uso y la similaridad con los lenguajes más comunes de El fácil uso y la similaridad con los lenguajes más comunes de

programación estructurada, como C y Perl, permiten a la programación estructurada, como C y Perl, permiten a la mayoría de los programadores experimentados crear mayoría de los programadores experimentados crear aplicaciones complejas con una curva de aprendizaje muy suave. aplicaciones complejas con una curva de aprendizaje muy suave. También les permite involucrarse con aplicaciones de contenido También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de dinámico sin tener que aprender todo un nuevo grupo de funciones y prácticas.funciones y prácticas.

Debido al diseño de PHP, también es posible crear aplicaciones Debido al diseño de PHP, también es posible crear aplicaciones con una interfaz gráfica para el usuario (también llamada GUI), con una interfaz gráfica para el usuario (también llamada GUI), utilizando la extensión PHP-GTK. También puede ser usado utilizando la extensión PHP-GTK. También puede ser usado desde la Línea de comandos, de la misma manera como Perl o desde la Línea de comandos, de la misma manera como Perl o Python puden hacerlo, esta versión de PHP se llama PHP CLI Python puden hacerlo, esta versión de PHP se llama PHP CLI ((Command Line InterfaceCommand Line Interface).).

Page 25: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Su interpretación y ejecución se da en el servidor, en el cual se Su interpretación y ejecución se da en el servidor, en el cual se

encuentra almacenado el script, y el cliente sólo recibe el resultado encuentra almacenado el script, y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página web, generada por un script PHP, el que le envíe una página web, generada por un script PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el contenido de manera dinámica, pudiendo solicitado que generará el contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresárselo al cliente. Además es posible utilizar cual se encarga de regresárselo al cliente. Además es posible utilizar PHP para generar archivos PDF, Flash, así como imágenes en PHP para generar archivos PDF, Flash, así como imágenes en diferentes formatos, entre otras cosas.diferentes formatos, entre otras cosas.

Permite la conexión a diferentes tipos de servidores de bases de Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, IBM DB2, datos tales como MySQL, Postgres, Oracle, ODBC, IBM DB2, Microsoft SQL Server y SQLite; lo cual permite la creación de Microsoft SQL Server y SQLite; lo cual permite la creación de Aplicaciones web muy robustas.Aplicaciones web muy robustas.

PHP también tiene la capacidad de ser ejecutado en la mayoría de PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos tales como UNIX (y de ese tipo, como Linux), los sistemas operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y puede interactuar con los servidores de web Windows y Mac OS X, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.ISAPI.

El modelo PHP puede ser visto como una alternativa al sistema de El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que utiliza ASP.NET/C#/VB.NET, a ColdFusion de la Microsoft que utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a JSP/Java de Sun Microsystems, y al famoso compañía Macromedia, a JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un compilador sistemas libres, bajo la licencia GNU, existe además un compilador comercial llamado Zend Optimizer.comercial llamado Zend Optimizer.

Page 26: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Historia de PHPHistoria de PHP PHP fue originalmente diseñado en Perl, seguidos por la escritura de PHP fue originalmente diseñado en Perl, seguidos por la escritura de

un grupo de CGI binarios escritos en el lenguaje C por el un grupo de CGI binarios escritos en el lenguaje C por el programador Danés-Canadiense Rasmus Lerdorf en el año 1994 para programador Danés-Canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículum vitae y guardar ciertos datos, como la mostrar su currículum vitae y guardar ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de junio del 1995 cantidad de tráfico que su página web recibía. El 8 de junio del 1995 fue publicado "fue publicado "PPersonal ersonal HHome ome PPage Tools" luego de que Lerdorf lo age Tools" luego de que Lerdorf lo combinara con su propio combinara con su propio Form InterpreterForm Interpreter para crear PHP/FI. para crear PHP/FI.

Dos programadores israelíes de Technion, Zeev Suraski y Andi Dos programadores israelíes de Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador gramatical (Gutmans, reescribieron el analizador gramatical (parserparser en inglés) en inglés) en el año 1997 y crearon la base del PHP 3, cambiando el nombre en el año 1997 y crearon la base del PHP 3, cambiando el nombre del lenguaje a la forma actual. Experimentaciones públicas de PHP 3 del lenguaje a la forma actual. Experimentaciones públicas de PHP 3 comenzaron inmediatamente y fue lanzado oficialmente en junio del comenzaron inmediatamente y fue lanzado oficialmente en junio del 1998.1998.

Para 1999, Suraski y Gutmans reescribieron el código de PHP, Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo que hoy se conoce como Zend Engine o motor Zend. produciendo lo que hoy se conoce como Zend Engine o motor Zend. También conformaron a Zend Technologies en Ratmat Gan, Israel. También conformaron a Zend Technologies en Ratmat Gan, Israel. En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. El 13 de julio de 2004, PHP 5 fue lanzado, utilizando el Engine 1.0. El 13 de julio de 2004, PHP 5 fue lanzado, utilizando el motor Zend Engine II (o Zend Engine 2). motor Zend Engine II (o Zend Engine 2).

La versión más reciente de PHP es la 5.1, que incluye el novedoso La versión más reciente de PHP es la 5.1, que incluye el novedoso PDO (Objetos de Información de PHP o PHP Data Objects) y mejoras PDO (Objetos de Información de PHP o PHP Data Objects) y mejoras utilizando las ventajas que provee el nuevo Zend Engine 2.utilizando las ventajas que provee el nuevo Zend Engine 2.

Page 27: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Usos de PHPUsos de PHP Los principales usos del PHP son los siguientes:Los principales usos del PHP son los siguientes:

Programación de páginas web dinámicas, habitualmente en Programación de páginas web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión. que amplía en gran medida sus posibilidades de conexión.

Programación en consola, al estilo de Perl, en Linux, Windows y Programación en consola, al estilo de Perl, en Linux, Windows y Macintosh. Macintosh.

Creación de aplicaciones gráficas independientes del navegador, por Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK (GIMP Tool Kit), que permite medio de la combinación de PHP y GTK (GIMP Tool Kit), que permite desarrollar aplicaciones de escritorio tanto para los sistemas desarrollar aplicaciones de escritorio tanto para los sistemas operativos basados en Unix, como para Windows y Mac OS X. operativos basados en Unix, como para Windows y Mac OS X.

Ventajas de PHPVentajas de PHP La principal ventaja se basa en ser un lenguaje multiplataforma. La principal ventaja se basa en ser un lenguaje multiplataforma. Capacidad de conexión con la mayoría de los manejadores de base de Capacidad de conexión con la mayoría de los manejadores de base de

datos que se utilizan en la actualidad. datos que se utilizan en la actualidad. Leer y manipular datos desde diversas fuentes, incluyendo datos que Leer y manipular datos desde diversas fuentes, incluyendo datos que

pueden ingresar los usuarios desde formularios HTML pueden ingresar los usuarios desde formularios HTML Capacidad de expandir su potencial utilizando la enorme cantidad de Capacidad de expandir su potencial utilizando la enorme cantidad de

módulos (llamados ext's o extensiones). módulos (llamados ext's o extensiones). Posee una muy buena documentación en su página oficial.Posee una muy buena documentación en su página oficial. Es Libre, por lo que se presenta como una alternativa de fácil acceso para Es Libre, por lo que se presenta como una alternativa de fácil acceso para

todos. todos. Permite las técnicas de Programación Orientada a Objetos. Permite las técnicas de Programación Orientada a Objetos.

Page 28: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Estadística de PHPEstadística de PHP En el último año, el número de servidores que utilizan PHP se ha En el último año, el número de servidores que utilizan PHP se ha

disparado, logrando situarse cerca de los 25 millones de sitios y disparado, logrando situarse cerca de los 25 millones de sitios y 800.000 direcciones IP, lo que le ha convertido a PHP en una 800.000 direcciones IP, lo que le ha convertido a PHP en una tecnología popular. Esto es debido, entre otras razones, a que tecnología popular. Esto es debido, entre otras razones, a que PHP es el complemento ideal para que el tándem Linux-Apache PHP es el complemento ideal para que el tándem Linux-Apache sea compatible con la programación del lado del servidor de sea compatible con la programación del lado del servidor de sitios web. Gracias a la aceptación que ha logrado, y los grandes sitios web. Gracias a la aceptación que ha logrado, y los grandes esfuerzos realizados por una creciente comunidad de esfuerzos realizados por una creciente comunidad de colaboradores para implementarlo de la manera más óptima, colaboradores para implementarlo de la manera más óptima, podemos asegurar que el lenguaje se convertirá en un estándar podemos asegurar que el lenguaje se convertirá en un estándar que compartirá los éxitos augurados al conjunto de sistemas que compartirá los éxitos augurados al conjunto de sistemas desarrollados en código abierto. desarrollados en código abierto.

Page 29: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Gráfica del número de dominios y direcciones IP que utilizan PHP.Gráfica del número de dominios y direcciones IP que utilizan PHP. Fuente: de Netcraft.Fuente: de Netcraft.

Page 30: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Poco a poco el PHP se va convirtiendo en un lenguaje que nos permite Poco a poco el PHP se va convirtiendo en un lenguaje que nos permite

hacer de todo. En un principio diseñado para realizar poco más que un hacer de todo. En un principio diseñado para realizar poco más que un contador y un libro de visitas, PHP ha experimentado en poco tiempo una contador y un libro de visitas, PHP ha experimentado en poco tiempo una verdadera revolución y, a partir de sus funciones, en estos momentos se verdadera revolución y, a partir de sus funciones, en estos momentos se pueden realizar una multitud de tareas útiles para el desarrollo del web: pueden realizar una multitud de tareas útiles para el desarrollo del web:

Funciones de correo electrónicoFunciones de correo electrónico Podemos con una facilidad asombrosa enviar un e-mail a una persona o lista Podemos con una facilidad asombrosa enviar un e-mail a una persona o lista parametrizando toda una serie de aspectos tales como el e-mail de parametrizando toda una serie de aspectos tales como el e-mail de procedencia, asunto, persona a responder...procedencia, asunto, persona a responder...

Otras funciones menos frecuentes pero de indudable utilidad para gestionar Otras funciones menos frecuentes pero de indudable utilidad para gestionar correos electrónicos son incluidas en su librería. correos electrónicos son incluidas en su librería.

Gestión de bases de datosGestión de bases de datos Resulta difícil concebir un sitio actual, potente y rico en contenido que no es Resulta difícil concebir un sitio actual, potente y rico en contenido que no es gestionado por una base de datos. El lenguaje PHP ofrece interfaces para el gestionado por una base de datos. El lenguaje PHP ofrece interfaces para el acceso a la mayoría de las bases de datos comerciales y por ODBC a todas las acceso a la mayoría de las bases de datos comerciales y por ODBC a todas las bases de datos posibles en sistemas Microsoft, a partir de las cuales podremos bases de datos posibles en sistemas Microsoft, a partir de las cuales podremos editar el contenido de nuestro sitio con absoluta sencillez. editar el contenido de nuestro sitio con absoluta sencillez.

Gestión de archivosGestión de archivos Crear, borrar, mover, modificar...cualquier tipo de operación más o menos Crear, borrar, mover, modificar...cualquier tipo de operación más o menos razonable que se nos pueda ocurrir puede ser realizada a partir de una amplia razonable que se nos pueda ocurrir puede ser realizada a partir de una amplia librería de funciones para la gestión de archivos por PHP. También podemos librería de funciones para la gestión de archivos por PHP. También podemos transferir archivos por FTP a partir de sentencias en nuestro código, transferir archivos por FTP a partir de sentencias en nuestro código, protocolo para el cual PHP ha previsto también gran cantidad de funciones. protocolo para el cual PHP ha previsto también gran cantidad de funciones.

Page 31: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INTRODUCCION A PHPINTRODUCCION A PHP Tratamiento de imágenesTratamiento de imágenes

Evidentemente resulta mucho más sencillo utilizar Photoshop Evidentemente resulta mucho más sencillo utilizar Photoshop para el tratamiento de imágenes pero...¿Y si tenemos que tratar para el tratamiento de imágenes pero...¿Y si tenemos que tratar miles de imágenes enviadas por nuestros internautas? miles de imágenes enviadas por nuestros internautas?

La verdad es que puede resultar muy tedioso uniformar en La verdad es que puede resultar muy tedioso uniformar en tamaño y formato miles de imágenes recibidas día tras día. Todo tamaño y formato miles de imágenes recibidas día tras día. Todo esto puede ser también automatizado eficazmente mediante esto puede ser también automatizado eficazmente mediante PHP. PHP.

También puede parecer útil el crear botones dinámicos, es decir, También puede parecer útil el crear botones dinámicos, es decir, botones en los que utilizamos el mismo diseño y solo cambiamos botones en los que utilizamos el mismo diseño y solo cambiamos el texto. Podremos por ejemplo crear un botón haciendo una el texto. Podremos por ejemplo crear un botón haciendo una única llamada a una función en la que introducimos el estilo del única llamada a una función en la que introducimos el estilo del botón y el texto a introducir obteniendo automáticamente el botón y el texto a introducir obteniendo automáticamente el botón deseado. botón deseado.

A partir de la librería de funciones graficas podemos hacer esto y A partir de la librería de funciones graficas podemos hacer esto y mucho más. mucho más.

Page 32: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE PHPINSTALACION DE PHP Descargar los FuentesDescargar los Fuentes Para compilar PHP como modulo de Apache a partir de su código fuente, Para compilar PHP como modulo de Apache a partir de su código fuente,

se debe obtener previamente de la Web de PHP la versión más reciente (se debe obtener previamente de la Web de PHP la versión más reciente (http://http://www.php.netwww.php.net//downloads.phpdownloads.php ).).

shell> wget http://bo.php.net/distributions/php-5.1.2.tar.gz shell> wget http://bo.php.net/distributions/php-5.1.2.tar.gz

Descomprimimos el paquete obtenido previamente e ingresamos al Descomprimimos el paquete obtenido previamente e ingresamos al directorio:directorio:

shell> cd /tmpshell> cd /tmpshell> tar xvfz php-5.1.2.tar.gzshell> tar xvfz php-5.1.2.tar.gzshell> cd php-5.1.2/shell> cd php-5.1.2/

Page 33: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE PHPINSTALACION DE PHP Configuración de los Fuentes PHPConfiguración de los Fuentes PHP Ahora configura tu PHP. Aquí es donde personalizas tu PHP con Ahora configura tu PHP. Aquí es donde personalizas tu PHP con

varias opciones, por ejemplo que extensiones serán habilitadas. varias opciones, por ejemplo que extensiones serán habilitadas. Ejecuta Ejecuta ./configure --help./configure --help para desplegar una lista de las para desplegar una lista de las

opciones disponibles. En nuestro ejemplo haremos una opciones disponibles. En nuestro ejemplo haremos una configuración básica con soporte para Apache 2, MySQL y configuración básica con soporte para Apache 2, MySQL y PostgreSQL. PostgreSQL.

La ruta de apxs pueden ser diferente, de hecho, el binario puede La ruta de apxs pueden ser diferente, de hecho, el binario puede ser nombrado apxs2 en tu sistema. Por ejemplo:ser nombrado apxs2 en tu sistema. Por ejemplo:

./configure --with-apxs2=./configure --with-apxs2=/usr/sbin/apxs /usr/sbin/apxs

--with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql

Los binarios de PHP se pueden reconstruir cada vez que se Los binarios de PHP se pueden reconstruir cada vez que se necesite una nueva extensión del lenguaje y luego solo hay que necesite una nueva extensión del lenguaje y luego solo hay que reinstalar, esto mientras el servidor Apache esta parado, por reinstalar, esto mientras el servidor Apache esta parado, por ejemplo a continuación si quisiéramos aumentar opciones como ejemplo a continuación si quisiéramos aumentar opciones como XML, IMAP, KERBEROS, SYBASE, etc.XML, IMAP, KERBEROS, SYBASE, etc.

Page 34: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE PHPINSTALACION DE PHP Ejemplo:Ejemplo: En un servidor especial se puede utilizar la siguiente En un servidor especial se puede utilizar la siguiente

configuración de opciones especiales que están habilitadas, para configuración de opciones especiales que están habilitadas, para varios opciones diferentes. varios opciones diferentes.

./configure --with-apxs2=/usr/sbin/apxs ./configure --with-apxs2=/usr/sbin/apxs --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql --enable-track-vars --enable-sockets --with-config-file-path=/etc --enable-track-vars --enable-sockets --with-config-file-path=/etc --enable-ftp --with-zlib --with-openssl=/usr --enable-ftp --with-zlib --with-openssl=/usr --enable-force-cgi-redirect --enable-exif --with-gd --enable-force-cgi-redirect --enable-exif --with-gd --disable-debug --disable-rpath --disable-static --with-pic --disable-debug --disable-rpath --disable-static --with-pic --with-layout=GNU --enable-calendar --enable-sysvsem --with-layout=GNU --enable-calendar --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-trans-sid --enable-sysvshm --enable-sysvmsg --enable-trans-sid --enable-bcmath --with-bz2 --enable-ctype --with-db4 --with-iconv --enable-bcmath --with-bz2 --enable-ctype --with-db4 --with-iconv --enable-filepro --with-gettext --enable-mbstring --enable-shmop --enable-filepro --with-gettext --enable-mbstring --enable-shmop --enable-wddx --with-xmlrpc --enable-yp --with-zlib --enable-dbx --enable-wddx --with-xmlrpc --enable-yp --with-zlib --enable-dbx --enable-experimental-zts --without-mm --enable-gd-native-ttf --enable-experimental-zts --without-mm --enable-gd-native-ttf --enable-soap --enable-dbase --with-xml --enable-soap --enable-dbase --with-xml --with-sybase=/usr/local/freetds --with-dom --with-mcrypt --with-sybase=/usr/local/freetds --with-dom --with-mcrypt --enable-mbregex --with-mime-magic --with-imap --with-kerberos --enable-mbregex --with-mime-magic --with-imap --with-kerberos --with-imap-ssl (UNA LINEA)--with-imap-ssl (UNA LINEA)

Page 35: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE INSTALACION DE PHPINSTALACION DE PHP Compilación e Instalación:Compilación e Instalación: En PHP, se debe especificar la opción En PHP, se debe especificar la opción

--with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql, de --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql, de otra forma PHP no tendrá soporte para MySQL o PostgreSQL, y otra forma PHP no tendrá soporte para MySQL o PostgreSQL, y si, MySQL y PostgreSQL deben estar instalados previamente si, MySQL y PostgreSQL deben estar instalados previamente antes de ejecutar la sentencia ./configure. (se recomienda antes de ejecutar la sentencia ./configure. (se recomienda instalar los mismos desde fuentes) instalar los mismos desde fuentes)

Luego se prosigue con la compilación de los fuentes:Luego se prosigue con la compilación de los fuentes:shell> makeshell> make

Se debe recordar que para compilar se requiere, como mínimo, Se debe recordar que para compilar se requiere, como mínimo, GNU Make y GNU CC. GNU Make y GNU CC.

A continuación si no se ha encontrado ninguna falla de A continuación si no se ha encontrado ninguna falla de compilación se procede a instalar los binarios resultantes del compilación se procede a instalar los binarios resultantes del proceso de compilación:proceso de compilación:

shell> make installshell> make install Esto instalara el binario PHP (normalmente en Esto instalara el binario PHP (normalmente en /usr/local/bin/php/usr/local/bin/php) )

que podrá ejecutarse desde línea de comandos así como un que podrá ejecutarse desde línea de comandos así como un modulo de Apache2.modulo de Apache2.

Page 36: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION POSTINSTALACIONCONFIGURACION POSTINSTALACION Configurar PHPConfigurar PHP Luego se debe crear el archivo de configuración /etc/php.ini. Lo Luego se debe crear el archivo de configuración /etc/php.ini. Lo

mejor es tomar los archivos de ejemplo que vienen con los mejor es tomar los archivos de ejemplo que vienen con los Fuentes de PHP:Fuentes de PHP:

cp /tmp/php-5.1.2/php.ini-dist /etc/php.inicp /tmp/php-5.1.2/php.ini-dist /etc/php.ini Luego si se desea se puede modificar Luego si se desea se puede modificar /etc/php.ini/etc/php.ini. para satisfacer . para satisfacer

las necesidades  las necesidades  

Configurar Apache2Configurar Apache2 Ahora es necesario adicionar las siguientes entradas en el Ahora es necesario adicionar las siguientes entradas en el

archivo de configuración de Apache2 archivo de configuración de Apache2 //etc/httpd/httpd.confetc/httpd/httpd.conf : :

AddHandler cgi-script .cgiAddHandler cgi-script .cgiAddHandler cgi-script .plAddHandler cgi-script .plAddType text/html .shtmlAddType text/html .shtmlAddOutputFilter INCLUDES .shtmlAddOutputFilter INCLUDES .shtmlAddType application/x-httpd-php .php .php4 .php3AddType application/x-httpd-php .php .php4 .php3

Page 37: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION POSTINSTALACIONCONFIGURACION POSTINSTALACION Script de InicioScript de Inicio Crear un script de arranque de sistema Crear un script de arranque de sistema /etc/init.d/httpd#!/bin/sh case "$1" instart) /usr/sbin/apachectl startssl;;stop) /usr/sbin/apachectl stop;;restart) $0 stop && sleep 3 $0 start;;reload) $0 stop $0 start;;

Page 38: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION POSTINSTALACIONCONFIGURACION POSTINSTALACION*)echo “Forma de Uso: $0 {start|stop|restart|reload}"exit 1esac Darle permisos de lectura y ejecución: chmod 755 /etc/init.d/httpd En orden de iniciar el servicio de Apache al iniciar el servidor

Linux en tiempo de booteo crear los links necesarios:shell> ln -s /etc/init.d/httpd /etc/rc2.d/S20httpdshell> ln -s /etc/init.d/httpd /etc/rc3.d/S20httpdshell> ln -s /etc/init.d/httpd /etc/rc4.d/S20httpdshell> ln -s /etc/init.d/httpd /etc/rc5.d/S20httpdshell> ln -s /etc/init.d/httpd /etc/rc0.d/K20httpdshell> ln -s /etc/init.d/httpd /etc/rc1.d/K20httpdshell> ln -s /etc/init.d/httpd /etc/rc6.d/K20httpd Luego iniciar Apache2: shell> service httpd start

Page 39: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION SERVICIOCONFIGURACION SERVICIO Probar Configuracion Servidor webnetstat -tap

Muestra que Apache2 usa el puerto 80 (http) y 443 (https). Ahora ir al directorio /usr/local/apache2/htdocs y crear el archivo

llamado info.php con el siguiente contenido:

shell> cd /usr/local/apache2/htdocsshell> echo “<?php phpinfo();php?>” > info.phpchmod 755 info.php   Tratar de acceder con el navegador Web (Ej. Usando el nombre

del servidor o numero IP) via http (http://192.168.3.136/info.php) y https (https://192.168.1.100/info.php).

Page 40: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION SERVICIOCONFIGURACION SERVICIO La salida debe ser algo parecido a la siguiente captura de

pantalla:

Page 41: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER /etc/httpd/httpd.conf/etc/httpd/httpd.conf Cuando se ha instalado el servidor, hay que configurarlo. Apache incluye Cuando se ha instalado el servidor, hay que configurarlo. Apache incluye

por defecto una configuración que arranca el servidor en el puerto TCP por defecto una configuración que arranca el servidor en el puerto TCP por defecto, que es el puerto 80, y sirve los ficheros del directorio que se por defecto, que es el puerto 80, y sirve los ficheros del directorio que se ha especificado mediante la directiva de configuración denominada ha especificado mediante la directiva de configuración denominada DocumentRoot. DocumentRoot.

Este fichero de configuración de Apache es el httpd.conf, localizado en el Este fichero de configuración de Apache es el httpd.conf, localizado en el directorio /etc/httpd. httpd.conf es un fichero de tipo ASCII que contiene directorio /etc/httpd. httpd.conf es un fichero de tipo ASCII que contiene las directivas de configuración.las directivas de configuración.

Estructura del fichero de configuración httpd.confEstructura del fichero de configuración httpd.conf httpd.conf está compuesto por tres bloques fundamentales, aunque las httpd.conf está compuesto por tres bloques fundamentales, aunque las

directivas de cada uno de los bloque pueden aparecer desordenadas o directivas de cada uno de los bloque pueden aparecer desordenadas o mezcladas.mezcladas.

Estos bloques son:Estos bloques son: Parámetros globales Parámetros globales Directivas de funcionamiento Directivas de funcionamiento Hosts virtuales Hosts virtuales

Page 42: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Parámetros de ConfiguraciónParámetros de Configuración Algunos parámetros son propósito general, y otros son Algunos parámetros son propósito general, y otros son

configurables de forma independiente para cada conjunto de configurables de forma independiente para cada conjunto de directorios o de ficheros o incluso para un servidor virtual directorios o de ficheros o incluso para un servidor virtual específico. En tales casos, estos parámetros se encuentran específico. En tales casos, estos parámetros se encuentran dentro de secciones en las que se indica el contexto de dentro de secciones en las que se indica el contexto de aplicación de dicho parámetro. Las secciones fundamentales son:aplicación de dicho parámetro. Las secciones fundamentales son:

<Directory>: los parámetros que se encuentran dentro de la <Directory>: los parámetros que se encuentran dentro de la sección Directory sólo se aplican al directorio indicado y sus sección Directory sólo se aplican al directorio indicado y sus subdirectorios.subdirectorios.

<DirectoryMatch>: igual que Directory, aunque acepta <DirectoryMatch>: igual que Directory, aunque acepta expresiones regulares en el nombre del directorio.expresiones regulares en el nombre del directorio.

<Files>: los parámetros de configuración facilitan control de <Files>: los parámetros de configuración facilitan control de acceso a los ficheros mediante su nombre.acceso a los ficheros mediante su nombre.

<FilesMatch>: igual que Files, pero acepta en el nombre del <FilesMatch>: igual que Files, pero acepta en el nombre del fichero expresiones regulares.fichero expresiones regulares.

<Location>: proporciona control de acceso a los ficheros <Location>: proporciona control de acceso a los ficheros mediante la URL.mediante la URL.

<LocationMatch>: igual que Location, pero acepta en el nombre <LocationMatch>: igual que Location, pero acepta en el nombre del fichero el uso de expresiones regulares.del fichero el uso de expresiones regulares.

<VirtualHost>: los parámetros sólo se aplican a aquellas <VirtualHost>: los parámetros sólo se aplican a aquellas peticiones dirigidas a este host (nombre de servidor, dirección IP peticiones dirigidas a este host (nombre de servidor, dirección IP o puerto TCP).o puerto TCP).

Page 43: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Parámetros de ConfiguraciónParámetros de Configuración <Proxy>: sólo se aplican estos parámetros a aquellas peticiones <Proxy>: sólo se aplican estos parámetros a aquellas peticiones

de proxy (requiere que esté instalado "mod proxy") coincidentes de proxy (requiere que esté instalado "mod proxy") coincidentes con la especificación de URL.con la especificación de URL.

<ProxyMatch>: igual que proxy, pero acepta en la URL indicada <ProxyMatch>: igual que proxy, pero acepta en la URL indicada el uso de expresiones regulares.el uso de expresiones regulares.

<IfDefine>: sólo se aplica si al arrancar el servidor existe un <IfDefine>: sólo se aplica si al arrancar el servidor existe un parámetro concreto definido en la línea de comandos, mediante parámetro concreto definido en la línea de comandos, mediante la opción -D.la opción -D.

<IfModule>: se aplican los parámetros si el módulo especificado <IfModule>: se aplican los parámetros si el módulo especificado se encuentra cargado (mediante LoadModule) en el momento de se encuentra cargado (mediante LoadModule) en el momento de arrancar el servidor .arrancar el servidor .

En caso de que exista conflicto entre diferentes especificaciones En caso de que exista conflicto entre diferentes especificaciones de parámetros, el orden de precedencia es:de parámetros, el orden de precedencia es:

<Directory> y .htaccess <Directory> y .htaccess <DirectoryMatch> y <Directory> <DirectoryMatch> y <Directory> <Files> y <FilesMatch> <Files> y <FilesMatch> <Location> y <LocationMatch> <Location> y <LocationMatch> En cuanto a <VirtualHost>, estas directivas siempre se aplican En cuanto a <VirtualHost>, estas directivas siempre se aplican

siempre después de las directivas generales. De este modo, un siempre después de las directivas generales. De este modo, un VirtualHost puede modificar la configuración por defecto.VirtualHost puede modificar la configuración por defecto.

Page 44: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Directivas principalesDirectivas principales Hay algunas directivas que, generalmente, no suelen aparecer Hay algunas directivas que, generalmente, no suelen aparecer

en las secciones anteriormente mencionadas (algunas de ellas no en las secciones anteriormente mencionadas (algunas de ellas no deben estar en ninguna sección, y es obligatorio que aparezcan deben estar en ninguna sección, y es obligatorio que aparezcan en la sección principal), sino que se encuentran en la sección en la sección principal), sino que se encuentran en la sección principal. Estas directivas son:principal. Estas directivas son:

ServerAdminServerAdmin: especifica la dirección de correo electrónico del : especifica la dirección de correo electrónico del administrador. Esta dirección puede mostrarse en los mensajes administrador. Esta dirección puede mostrarse en los mensajes de error a modo de dirección de contacto para que los usuarios de error a modo de dirección de contacto para que los usuarios notifiquen el error al administrador. No debe estar dentro de notifiquen el error al administrador. No debe estar dentro de ninguna sección.ninguna sección.

ServerNameServerName: sirve para especificar el nombre y el puerto TCP : sirve para especificar el nombre y el puerto TCP que el Apache utiliza para identificarse. Se puede determinar de que el Apache utiliza para identificarse. Se puede determinar de forma automática, pero se recomienda especificarlo. Si el forma automática, pero se recomienda especificarlo. Si el servidor no tuviera un nombre DNS, es recomendable incluir su servidor no tuviera un nombre DNS, es recomendable incluir su dirección IP. No debe incluirse dentro de ninguna sección. Su dirección IP. No debe incluirse dentro de ninguna sección. Su sintaxis es: ServerName nombredireccion:puerto. Ejemplo: sintaxis es: ServerName nombredireccion:puerto. Ejemplo:

ServerName www.uoc.edu:80ServerName www.uoc.edu:80ServerName 192.168.1.1:80 ServerName 192.168.1.1:80

Page 45: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Directivas de secciónDirectivas de sección Casi todas las secciones de localización (Directory, Location, Casi todas las secciones de localización (Directory, Location,

etc.) incluyen una serie de directivas en su configuración que etc.) incluyen una serie de directivas en su configuración que permiten controlar el acceso al contenido. El módulo mod_access permiten controlar el acceso al contenido. El módulo mod_access facilita estas directivas.facilita estas directivas.

Allow: permite especificar quién tiene autorización para acceder Allow: permite especificar quién tiene autorización para acceder a un recurso. Se pueden especificar direcciones IP, nombres de a un recurso. Se pueden especificar direcciones IP, nombres de máquina, fragmentos del nombre o de la dirección o variables de máquina, fragmentos del nombre o de la dirección o variables de la petición. Existe la palabra clave "all" que indica "todos los la petición. Existe la palabra clave "all" que indica "todos los clientes".clientes".

Deny: permite especificar a quién no permitimos el acceso a un Deny: permite especificar a quién no permitimos el acceso a un recurso. Cuenta con las mismas opciones que Allow.recurso. Cuenta con las mismas opciones que Allow.

Order: permite afinar el funcionamiento de las anteriores Order: permite afinar el funcionamiento de las anteriores directivas: Allow y Deny. Existen 2 opciones:directivas: Allow y Deny. Existen 2 opciones:

Allow,Deny. Por defecto se deniega el acceso y sólo podrán Allow,Deny. Por defecto se deniega el acceso y sólo podrán acceder quellos clientes que cumplan las especificaciones de acceder quellos clientes que cumplan las especificaciones de Allow y en cambio no cumplan las especificaciones de Deny. Allow y en cambio no cumplan las especificaciones de Deny.

Deny,Allow. Por defecto se permite el acceso y sólo podrán Deny,Allow. Por defecto se permite el acceso y sólo podrán entrar los clientes que no cumplan las especificaciones de entrar los clientes que no cumplan las especificaciones de Deny o sí cumplan las especificaciones de Allow. Deny o sí cumplan las especificaciones de Allow.

Page 46: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Servidores virtualesServidores virtuales Apache permite servir varios sitios web con un único Apache permite servir varios sitios web con un único

servidor. Para ello permite la creación de dominios servidor. Para ello permite la creación de dominios virtuales en función de diferentes direcciones IP o virtuales en función de diferentes direcciones IP o diferentes nombres por IP. Apache fue de los primeros diferentes nombres por IP. Apache fue de los primeros servidores que soportó servidores virtuales sin necesidad servidores que soportó servidores virtuales sin necesidad de distinguir por IP, sino en función de nombre. Esta de distinguir por IP, sino en función de nombre. Esta capacidad simplifica enormemente la administración de capacidad simplifica enormemente la administración de los servidores, y supone un ahorro de direcciones IP, que los servidores, y supone un ahorro de direcciones IP, que normalmente son escasas. Los servidores virtuales que normalmente son escasas. Los servidores virtuales que distinguen en función del nombre son perfectamente distinguen en función del nombre son perfectamente transparentes para el cliente, con la posible excepción de transparentes para el cliente, con la posible excepción de aquellos navegadores muy antiguos que no envíen la aquellos navegadores muy antiguos que no envíen la cabecera "Host:" con cada petición.cabecera "Host:" con cada petición.

Servidores virtuales por dirección IPServidores virtuales por dirección IP Para atender a varios servidores virtuales, cada uno de Para atender a varios servidores virtuales, cada uno de

ellos con una dirección IP diferente, se utiliza la sección ellos con una dirección IP diferente, se utiliza la sección de configuración VirtualHost. Con esta sección se define de configuración VirtualHost. Con esta sección se define una configuración y dirección IP para cada uno de los una configuración y dirección IP para cada uno de los servidores.servidores.

Page 47: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Servidores virtualesServidores virtuales Un ejemplo sería el siguiente.Un ejemplo sería el siguiente.

<VirtualHost 192.168.1.1>   ServerAdmin [email protected]<VirtualHost 192.168.1.1>   ServerAdmin [email protected]  DocumentRoot /web/uoc  DocumentRoot /web/uoc  ServerName www.uoc.edu  ServerName www.uoc.edu  ErrorLog /web/logs/uoc_error_log  ErrorLog /web/logs/uoc_error_log  TransferLog /web/logs/uoc_access_log  TransferLog /web/logs/uoc_access_log</VirtualHost></VirtualHost><VirtualHost 192.168.254.254><VirtualHost 192.168.254.254>  ServerAdmin [email protected]  ServerAdmin [email protected]  DocumentRoot /web/asociados  DocumentRoot /web/asociados  ServerName asociados.uoc.edu  ServerName asociados.uoc.edu  ErrorLog /web/logs/asociados_error_log  ErrorLog /web/logs/asociados_error_log  TransferLog /web/logs/asociados_access_log  TransferLog /web/logs/asociados_access_log</VirtualHost> </VirtualHost>

Este ejemplo define 2 servidores web, cada uno de ellos con una Este ejemplo define 2 servidores web, cada uno de ellos con una IP y un nombre diferentes. Ambos tienen su propio IP y un nombre diferentes. Ambos tienen su propio DocumentRoot, etc.DocumentRoot, etc.

Para hacer uso de servidores virtuales por IP, se necesita que el Para hacer uso de servidores virtuales por IP, se necesita que el sistema servidor tenga configuradas en su sistema operativo las sistema servidor tenga configuradas en su sistema operativo las diferentes direcciones IP que debe servir.diferentes direcciones IP que debe servir.

Page 48: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Servidores virtuales por nombreServidores virtuales por nombre Para atender a varios servidores, utilizando una misma dirección IP para Para atender a varios servidores, utilizando una misma dirección IP para

todos ellos, se utiliza la sección VirtualHost, que permite definir los todos ellos, se utiliza la sección VirtualHost, que permite definir los parámetros de cada uno de los servidores. Sirva como ejemplo la parámetros de cada uno de los servidores. Sirva como ejemplo la siguiente configuración:siguiente configuración:

NameVirtualHost *:80NameVirtualHost *:80  <VirtualHost *:80>  <VirtualHost *:80>    ServerAdmin [email protected]    ServerAdmin [email protected]    ServerName www.uoc.edu    ServerName www.uoc.edu    DocumentRoot /web/uoc    DocumentRoot /web/uoc    ErrorLog /web/logs/uoc_error_log    ErrorLog /web/logs/uoc_error_log    TransferLog /web/logs/uoc_access_log    TransferLog /web/logs/uoc_access_log  </VirtualHost>  </VirtualHost>  <VirtualHost *:80>  <VirtualHost *:80>    ServerAdmin [email protected]    ServerAdmin [email protected]    ServerName asociados.uoc.edu    ServerName asociados.uoc.edu    DocumentRoot /web/asociados    DocumentRoot /web/asociados    ErrorLog /web/logs/asociados_error_log    ErrorLog /web/logs/asociados_error_log    TransferLog /web/logs/asociados_access_log    TransferLog /web/logs/asociados_access_log  </VirtualHost>.   </VirtualHost>.

Se puede utilizar una dirección IP concreta en lugar de *, lo cual permite Se puede utilizar una dirección IP concreta en lugar de *, lo cual permite asignar, por ejemplo, un grupo de servidores virtuales por nombre a esta asignar, por ejemplo, un grupo de servidores virtuales por nombre a esta IP y otro grupo a otra IP.IP y otro grupo a otra IP.

Page 49: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER Cuando nuestro servidor tiene 2 direcciones IP, pero hemos Cuando nuestro servidor tiene 2 direcciones IP, pero hemos

asignado a las 2 el mismo nombre, se necesita un uso especial de asignado a las 2 el mismo nombre, se necesita un uso especial de las directivas de servidores por nombre. Por ejemplo, cuando se las directivas de servidores por nombre. Por ejemplo, cuando se dispone una conexión de red en la intranet y otra conexión dispone una conexión de red en la intranet y otra conexión diferente en Internet con el mismo nombre, caso en el cual diferente en Internet con el mismo nombre, caso en el cual podemos servir el mismo contenido de la esta forma:podemos servir el mismo contenido de la esta forma:    NameVirtualHost 192.168.1.1NameVirtualHost 192.168.1.1  NameVirtualHost 172.40.30.40  NameVirtualHost 172.40.30.40  <VirtualHost 192.168.1.1 172.40.30.40>  <VirtualHost 192.168.1.1 172.40.30.40>    DocumentRoot /www/servidor1    DocumentRoot /www/servidor1    ServerName servidor.uoc.edu    ServerName servidor.uoc.edu    ServerAlias servidor    ServerAlias servidor</VirtualHost> </VirtualHost>

Con esta configuración se puede servir la misma web hacia la Con esta configuración se puede servir la misma web hacia la intranet y hacia la Internet. Es conveniente señalar el uso de un intranet y hacia la Internet. Es conveniente señalar el uso de un alias para el servidor, lo cual permite no tener que usar dominios alias para el servidor, lo cual permite no tener que usar dominios en la intranet. Disponemos de una especificación de servidor en la intranet. Disponemos de una especificación de servidor virtual por defecto "_default_" que permite atender las peticiones virtual por defecto "_default_" que permite atender las peticiones que no sirve ningún otro servidor virtual.que no sirve ningún otro servidor virtual.

Page 50: Apache.d4 admin web

ADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEBADMINISTRACION DE SERVIDORES LINUX ENTERPRISE – APACHE WEB

SERVIDOR WEB APACHE CONFIGURACION DE APACHE WEB SERVERCONFIGURACION DE APACHE WEB SERVER

<VirtualHost _default_><VirtualHost _default_>    DocumentRoot /www/defecto    DocumentRoot /www/defecto</VirtualHost> </VirtualHost>

Podemos usar la etiqueta "_default_" indicando un número de puerto para Podemos usar la etiqueta "_default_" indicando un número de puerto para especificar servidores por defecto que sean diferentes para cada puerto. especificar servidores por defecto que sean diferentes para cada puerto. Apache permite también configuraciones más complejas de servidores Apache permite también configuraciones más complejas de servidores virtuales, muy útiles en casos de, por ejemplo, servidores masivos. virtuales, muy útiles en casos de, por ejemplo, servidores masivos.

Una excelente guía de referencia se encuentra en la web del proyecto Una excelente guía de referencia se encuentra en la web del proyecto Apache, con consejos útiles para configurar el servidor. Existen muchos Apache, con consejos útiles para configurar el servidor. Existen muchos servidores HTTP de código libre, pero la mayoría de ellos han quedado servidores HTTP de código libre, pero la mayoría de ellos han quedado eclipsados por Apache. eclipsados por Apache.