servidor http apache

Upload: gloria-morales

Post on 06-Jul-2015

73 views

Category:

Documents


0 download

TRANSCRIPT

Servidor HTTP ApacheApache

Desarrollador Apache Software Foundation http://httpd.apache.org Informacin general Diseador ltima versin estable Gnero Programado en Sistema operativo Licencia En espaol Robert McCool1 2.2.19 (info)22 de mayo de 2011; hace 46 das

Servidor web C Multiplataforma Licencia Apache ?

El servidor HTTP Apache es un servidor web HTTP de cdigo abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la nocin de sitio virtual. Cuando comenz su desarrollo en 1995 se bas inicialmente en cdigo del popular NCSA HTTPd 1.3, pero ms tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quera que tuviese la connotacin de algo que es firme y enrgico pero no agresivo, y la tribu Apache fue la ltima en rendirse al que pronto se convertira en gobierno de EEUU, y en esos momentos la preocupacin de su grupo era que llegasen las empresas y "civilizasen" el paisaje que haban creado los primeros ingenieros de internet. Adems Apache consista solamente en un conjunto de parches a aplicar al servidor de NCSA. Era, en ingls, a patchy server (un servidor "parcheado"). El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras caractersticas altamente configurables, bases de datos de autenticacin y negociado de contenido, pero fue criticado por la falta de una interfaz grfica que ayude en su configuracin. Apache tiene amplia aceptacin en la red: desde 1996, Apache, es el servidor HTTP ms usado. Alcanz su mxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su

cuota de mercado en los ltimos aos. (Estadsticas histricas y de uso diario proporcionadas por Netcraft3 ). La mayora de las vulnerabilidades de la seguridad descubiertas y resueltas tan slo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malvolos en las disposiciones de recibimiento compartidas que utilizan PHP como mdulo de Apache.

Contenido[ocultar]y y y y y y y y

1 Ventajas 2 Mdulos 3 Uso 4 Configuracin 5 Licencia 6 Vase tambin o 6.1 Otros proyectos de la Apache Software Foundation 7 Referencias 8 Enlaces externos

[editar] Ventajasy y y y y

Modular Cdigo abierto Multi-plataforma Extensible Popular (fcil conseguir ayuda/soporte)

[editar] MdulosLa arquitectura del servidor Apache es muy modular. El servidor consta de una seccin core y diversos mdulos que aportan mucha de la funcionalidad que podra considerarse bsica para un servidor web. Algunos de estos mdulos son:y y

y y y

mod_ssl - Comunicaciones Seguras va TLS. mod_rewrite - reescritura de direcciones (generalmente utilizado para transformar pginas dinmicas como php en pginas estticas html para as engaar a los navegantes o a los motores de bsqueda en cuanto a cmo fueron desarrolladas estas pginas). mod_dav - Soporte del protocolo WebDAV (RFC 2518). mod_deflate - Compresin transparente con el algoritmo deflate del contenido enviado al cliente. mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP.

y

mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de pginas dinmicas en Java (servlets y JSP).

El servidor de base puede ser extendido con la inclusin de mdulos externos entre los cuales se encuentran:y y y y y y y y y

mod_cband - Control de trfico y limitador de ancho de banda. mod_perl - Pginas dinmicas en Perl. mod_php - Pginas dinmicas en PHP. mod_python - Pginas dinmicas en Python. mod_rexx - Pginas dinmicas en REXX y Object REXX. mod_ruby - Pginas dinmicas en Ruby. mod_aspdotnet - Pginas dinmicas en .NET de Microsoft (Mdulo retirado). mod_mono - Pginas dinmicas en Mono mod_security - Filtrado a nivel de aplicacin, para seguridad.

[editar] UsoApache es usado principalmente para enviar pginas web estticas y dinmicas en la World Wide Web. Muchas aplicaciones web estn diseadas asumiendo como ambiente de implantacin a Apache, o que utilizarn caractersticas propias de este servidor web. Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programacin PHP/Perl/Python (y ahora tambin Ruby). Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux. Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposicin en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raz de documentos de Apache, desde donde pueden ser compartidos. Los programadores de aplicaciones web a veces utilizan una versin local de Apache con el fin de previsualizar y probar cdigo mientras ste es desarrollado. Microsoft Internet Information Services (IIS) es el principal competidor de Apache, as como Sun Java System Web Server de Sun Microsystems y un anfitrin de otras aplicaciones como Zeus Web Server. Algunos de los ms grandes sitios web del mundo estn ejecutndose sobre Apache. La capa frontal (front end) del motor de bsqueda Google est basado en una versin modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia tambin se ejecutan sobre servidores web Apache.

[edi

C

i

i

La mayor part de la confi raci n se reali a en el fichero apache2.conf o httpd.conf, segn el sistema donde est corriendo. C al ier cambio en este archi o requiere reiniciar el servidor, o forzar la lectura de los archivos de configuraci n nuevamente.

[ediArt ul

Li encirincipal Apache License

La licencia de soft are bajo la cual el soft are de la fundaci n Apache es distribuido es una parte distintiva de la historia de Apache HTTP Server y de la comunidad de cdigo abierto. La Licencia Apache permite la distribucin de derivados de cdigo abierto y cerrado a partir de su cdigo fuente original. La Free Soft are Foundation no considera a la Licencia Apache como compatible con la versin 2 de la GNU General Public License (GPL), en la cual el soft are licenciado bajo la Apache License no puede ser integrado con soft are distribuido bajo la GPL: Este es soft are libre pero es incompatible con la GPL. La Apache Soft are License es incompatible con la GPL porque tiene un requerimiento especfico que no es incluido t en la GPL: tiene ciertos casos de terminacin de patentes que la GPL no requiere. No consideramos que dichos casos de terminacin de patentes son inherentemente una mala idea, pero a pesar de ello son incompatibles con la GNU GPL.4 Sin embargo, la versin 3 de la GPL incluye una provisin (Seccin 7e) que le permite ser compatible con licencias que tienen cl usulas de represalia de patentes, incluyendo a la Licencia Apache. El nombre Apache es una marca registrada y puede ser slo utilizada con el permiso expreso del dueo de la marca.5

PHPPHP

Paradigma: Apareci en: Diseado por: ltima versin estable: Tipo de dato: Influido por: Sistema operativo: Licencia de software: Web:

multiparadigma 1995 PHP Group 5.3.6 (17 de marzo de 2011) dinmico C, C++, Perl, Java, Python Multiplataforma PHP License 3.01 http://www.php.net

PHP es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Es usado principalmente para la interpretacin del lado del servidor (server-side scripti g) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+.

Contenido[ocultar]y y

y

y y y y

1 Visin general 2 Historia o 2.1 PHP 3 o 2.2 PHP 4 o 2.3 PHP 5 o 2.4 PHP 6 o 2.5 Versiones 3 Caractersticas de PHP o 3.1 Ventajas o 3.2 Inconvenientes 4 Ejemplo de cdigo PHP 5 Programacin orientada a objetos en PHP 6 Referencias 7 Enlaces externos

Visin general

PHP es un acrnimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementacin principal de PHP es producida ahora por The PHP Group y sirve como el estndar de facto para PHP al no haber una especificacin formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. Puede ser desplegado en la mayora de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en ms de 20 millones de sitios web y en un milln de servidores, el nmero de sitios en PHP ha compartido algo de su preponderante sitio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. Este mismo sitio web de Wikipedia est desarrollado en PHP. Es tambin el mdulo Apache ms popular entre las computadoras que utilizan Apache como servidor web. El gran parecido que posee PHP con los lenguajes ms comunes de programacin estructurada, como C y Perl, permiten a la mayora de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. Tambin les permite involucrarse con aplicaciones de contenido dinmico sin tener que aprender todo un nuevo grupo de funciones. Aunque todo en su diseo est orientado a facilitar la creacin de sitios webs, es posible crear aplicaciones con una interfaz grfica para el usuario, utilizando la extensin PHPQt o PHP-GTK. Tambin puede ser usado desde la lnea de rdenes, de la misma manera como Perl o Python pueden hacerlo; a esta versin de PHP se la llama PHP-CLI (Command Line Interface). Cuando el cliente hace una peticin al servidor para que le enve una pgina web, el servidor ejecuta el intrprete de PHP. ste procesa el script solicitado que generar el contenido de manera dinmica (por ejemplo obteniendo informacin de una base de datos). El resultado es enviado por el intrprete al servidor, quien a su vez se lo enva al cliente. Mediante extensiones es tambin posible la generacin de archivos PDF, Flash, as como imgenes en diferentes formatos. Permite la conexin a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite. XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor Web Apache y los intrpretes para lenguajes de script: PHP y Perl. El nombre proviene del acrnimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. El programa est liberado bajo la licencia GNU y acta como un servidor Web libre, fcil de usar y capaz de interpretar pginas dinmicas. Actualmente XAMPP esta disponible para Microsoft Windows, GNU/Linux, Solaris, y MacOS X. PHP tambin tiene la capacidad de ser ejecutado en la mayora de los sistemas operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede interactuar con los servidores de web ms populares ya que existe en versin CGI, mdulo para Apache, e ISAPI.

PHP es una alternativa a las tecnologas de Microsoft ASP y ASP.NET (que utiliza C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java y a CGI/Perl. Aunque su creacin y desarrollo se da en el mbito de los sistemas libres, bajo la licencia GNU, existe adems un entorno de desarrollo integrado comercial llamado Zend Studio. Recientemente, CodeGear (la divisin de lenguajes de programacin de Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado 'Delphi for PHP. Tambin existen al menos un par de mdulos para Eclipse, uno de los entornos ms populares.1

HistoriaFue originalmente diseado en Perl, con base en la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador dans-canadiense Rasmus Lerdorf en el ao 1994 para mostrar su currculum vtae y guardar ciertos datos, como la cantidad de trfico que su pgina web reciba. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" despus de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.PHP 3

Dos programadores israeles del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintctico (parser en ingls) en el ao 1997 y crearon la base del PHP3, cambiando el nombre del lenguaje a la forma actual. Inmediatamente comenzaron experimentaciones pblicas de PHP3 y fue publicado oficialmente en junio de 1998. Para 1999, Suraski y Gutmans reescribieron el cdigo de PHP, produciendo lo que hoy se conoce como motor Zend. Tambin fundaron Zend Technologies en Ramat Gan, Israel.PHP 4

En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. El da 13 de julio de 2007 se anunci la suspensin del soporte y desarrollo de la versin 4 de PHP,2 a pesar de lo anunciado se ha liberado una nueva versin con mejoras de seguridad, la 4.4.8 publicada el 13 de enero del 2008 y posteriormente la versin 4.4.9 publicada el 7 de agosto de 2008. 3 Segn esta noticia [1] se dar soporte a fallos crticos hasta el 9 de agosto de 2008.PHP 5

El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). La versin ms reciente de PHP es la 5.3.6 (17 de marzo de 2011), que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:y y y y y

Mejor soporte para la programacin orientada a objetos, que en versiones anteriores era extremadamente rudimentario. Mejoras de rendimiento. Mejor soporte para MySQL con extensin completamente reescrita. Mejor soporte a XML (XPath, DOM, etc.). Soporte nativo para SQLite.

y y y y

Soporte integrado para SOAP. Iteradores de datos. Manejo de excepciones. Mejoras con la implementacin con Oracle.

An se siguen publicando versiones de la rama 5.2.X, siendo publicada la versin 5.2.14 el 22 de julio de 2010, aunque la mayora son actualizaciones de seguridadPHP 6

Est previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance esta nueva versin quedarn solo dos ramas activas en desarrollo (PHP 5 y 6), pues se abandon el desarrollo y soporte de PHP 4 el 13 de julio de 2007.4 Las diferencias en comparacin con PHP 5 son:y y y y y y y

Compatible con Unicode; Limpieza de funcionalidades obsoletas como register_globals, safe_mode, etc; PECL y eliminacin de soporte ereg; Mejoras en orientacin a objetos; Inclusin en el ncleo de xmlReader y xmlWriter as como Fileinfo; return por referencia devuelve un error; Se retir el soporte de las bibliotecas FreeType1 y GD1;

VersionesVersin Fecha Cambios ms importantes Oficialmente llamado "Herramientas personales de trabajo (PHP Tools)". Es el primer uso del nombre "PHP". Considerado por el creador como la "ms rpida y simple herramienta" para la creacin de pginas webs dinmicas . Desarrollo movido de una persona a muchos desarrolladores. Zeev Suraski y Andi Gutmans reescriben la base para esta versin. Se aade un sistema ms avanzado de anlisis de etiquetas en dos fases anlisis/ejecucin llamado el motor Zend. Introducidas las variables superglobals ($_GET, $_SESSION, etc.). Se deshabilitan register_globals por defecto.

PHP 1.0 8 de junio de 1995 PHP Version 16 de abril de 1996 2 (PHP/FI)

PHP 3.0 6 de junio de 1998

PHP 4.0 22 de mayo de 2000

PHP 4.1 10 de diciembre de 2001 PHP 4.2 22 de abril de 2002

PHP 4.3 27 de diciembre de 2002 Introducido la CLI, en adicin a la CGI. PHP 4.4 11 de julio de 2005 PHP 5.0 13 de julio de 2004 PHP 5.1 25 de noviembre de 2005 PHP 5.2 2 de noviembre de 2006 PHP 5.2.4 PHP 5.2.5 PHP 5.2.8 PHP 5.2.9 PHP 5.2.12 30 de agosto de 2007 Versin centrada en mejorar la estabilidad (+60 errores solucionados). Habilitado el filtro de extensiones por defecto. Motor Zend II con un nuevo modelo de objetos.

8 de noviembre de 2007

8 de diciembre de 2008 Diversas mejoras en el mbito de la seguridad (+50 errores solucionados). Diversas mejoras en el mbito de la seguridad (+50 errores solucionados). namespaces, late static binding, closures, optional garbage collection for cyclic references, nuevas extensiones (+140 errores solucionados). Diversas mejoras en el mbito de la seguridad (36 errores solucionados). Diversas mejoras en el mbito de la seguridad (99 errores solucionados). Diversas mejoras en el mbito de la seguridad y estabilidad. (ms de 100 errores solucionados). Diversas mejoras en el mbito de la seguridad y estabilidad. (105 errores solucionados). Esta versin soluciona un problema crtico, reportado como bug # 53632 PHP y CVE-2010-4645, relacionado con las conversiones de cadena a double. Esta versin soluciona un problema crtico:#54193,#54055,#54002,#53885,#54247,Mejora la

26 de febrero de 2009

17 de diciembre de 2009

PHP 5.3 30 de junio de 2009

PHP 5.3.1 PHP 5.3.2 PHP 5.3.3 PHP 5.3.4 PHP 5.3.5 PHP 5.3.6

19 de noviembre de 2009

4 de marzo de 2010

22 de julio de 2010

10 de diciembre de 2010

6 de enero de 2011

7 de marzo de 2011

seguridad con el anlisis del protocolo fastcgi con fpm SAPI. PHP 6 S/D

Caractersticas de PHPVentajasy y y

y y y

y y y y y y

Es un lenguaje multiplataforma. Orientado al desarrollo de aplicaciones web dinmicas con acceso a informacin almacenada en una base de datos. El cdigo fuente escrito en PHP es invisible al navegador web y al cliente ya que es el servidor el que se encarga de ejecutar el cdigo y enviar su resultado HTML al navegador. Esto hace que la programacin en PHP sea segura y confiable. Capacidad de conexin con la mayora de los motores de base de datos que se utlizan i en la actualidad, destaca su conectividad con MySQL y PostgreSQL. Capacidad de expandir su potencial utilizando mdulos (llamados ext's o extensiones). Posee una amplia documentacin en su sitio web oficial, entre la cual se destaca que todas las funciones del sistema estn explicadas y ejemplificadas en un nico archivo de ayuda. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Permite aplicar tcnicas de programacin orientada a objetos. Biblioteca nativa de funciones sumamente amplia e incluida. No requiere definicin de tipos de variables aunque sus variables se pueden evaluar tambin por el tipo que estn manejando en tiempo de ejecucin. Tiene manejo de excepciones (desde PHP5). Si bien PHP no obliga a quien lo usa a seguir una determinada metodologa a la hora de programar (muchos otros lenguajes tampoco lo hacen), aun hacindolo, el programador puede aplicar en su trabajo cualquier tcnica de programacin o de desarrollo que le permita escribir cdigo ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrn de diseo Modelo Vista Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lgica de control y la interfaz de usuario en tres componentes independientes.

Inconvenientesy

Como es un lenguaje que se interpreta en ejecucin, para ciertos usos puede resultar un inconveniente que el cdigo fuente no pueda ser ocultado. La ofuscacin es una tcnica que puede dificultar la lectura del cdigo pero no la impide y, en ciertos casos, representa un costo en tiempos de ejecucin.

Ejemplo de cdigo PHPEn el siguiente ejemplo se muestra el tpico programa Hola mundo, que es una simple impresin por pantalla de ese mensaje:

El ejemplo anterior escribira simplemente "Hola Mundo" (sin comillas) en la pgina web. Es importante recordar que todo bloque de cdigo PHP debe estar dentro de , que son las etiquetas de apertura y cierre, respectivamente; o simplemente de una forma ms corta (siempre que la directiva short_open_tag est activada),5 muy parecido a las etiquetas en ASP . Existen algunas excepciones por las cuales tanto la etiqueta de cierre como el punto y coma es opcional, como podemos ver en php.net: