Titorial do Servidor Apache

Feito o :9 Maio 2010

– Algunhas cuestións previas.
– Que é o Apache.
– Requerimentos.
– Instalación do Apache.
– Configuración do Apache.
– Módulos.

Algunhas cuestións previas.- Esta é unha guía básica de instalación e configuración dun Servidor Apache. As probas fixéronse con Debian e Ubuntu, aínda que a maioría do aquí exposto vale para calquera sistema Linux. Imos con algunhas definicións.
WWW.- World Wide Web, protocolo de intercambio de páxinas web, sistema de documentos de hipertexto e/ou hipermedios enlazados e accesibles a través de Internet.
Cun navegador web, un usuario visualiza sitios web compostos de páxinas web que poden conter texto, imaxes, vídeos ou outros contidos multimedia. A visualización dunha páxina web da World Wide Web faise normalmente a través da URL.
A Web foi creada ao redor de 1989 polo inglés Tim Berners-Lee e o belga Robert Cailliau mentres traballaban no CERN en Suíza. Dende entón, Berners-Lee xogou un papel activo guiando o desenvolvemento dos estándares da Web.
HTTP.-HyperText Transfer Protocol. Usado en cada transacción da Web (WWW), segue o esquema petición-resposta entre un cliente e un servidor. Á información transmitida identifícaselle mediante a URL. HTTP foi desenvolvido polo consorcio W3C e a IETF. HTTP define a sintaxe e a semántica que utilizan os elementos da arquitectura Web (clientes, servidores, proxies) para comunicarse.

Esquema Cliente-Servidor

URL.-Uniform Address Locator (localizador de dirección uniforme). Dirección dunha páxina web. Móstrase na barra de dirección do navegador. Existe unha soa URL para cada páxina da World Wide Web.


HTML.-Hyper Text Markup Language ( linguaxe de marcado do hipertexto). É o protocolo máis usado para o manexo de páxinas web, permite que os navegadores poidan lelas.

Que é o Apache.- O servidor Apache é un servidor web HTTP de código aberto para plataformas Unix (BSD, GNU/Linux, etc.), Windows, Macintosh e outras, que implementan o protocolo HTTP. Ten desempeñado un papel moi importante no crecemento da rede mundial, e é o servidor HTTP máis utilizado. Apache é desenvolvido e mantido por unha comunidade de desenvolvedores auspiciada por Apache Software Foundation.
Apache é usado principalmente para enviar páxinas web na World Wide Web. Moitas aplicacións web están deseñadas asumindo como ambiente de implantación a Apache, ou utilizarán características propias deste servidor web.
Apache é o compoñente de servidor web nas plataformas de aplicacións LAMP e XAMPP, xunto a MySQL e as linguaxes de programación PHP/Perl/Python/Ruby. É redistribuído como parte de varios paquetes propietarios de software, incluíndo a base de datos Oracle e o IBM WebSphere Application Server. Mac OS X integra apache como parte do seu propio servidor web e como soporte do seu servidor de aplicacións WebObjects. É soportado dalgún xeito por Lazarus, Kylix e Delphi. Apache é incluído con Novell NetWare 6.5, onde é o servidor web por defecto, e en moitas distribucións Linux. Os programadores de aplicacións web moitas veces utilizan unha versión local do Apache en orde de previsualizar e probar código mentres este é desenvolvido.

Requerimentos.-Os requirimentos mínimos para usar Apache son:
En canto á Ram, en calquera sistema operativo con ámbito gráfico irá ben, e como estamos a falar de Linux moito mellor, aínda que teño lido que cunha memoria de 32 Mb, funciona…?.
Para o disco duro fan falla polo menos 50 MB de espazo libre. Despois da instalación, Apache ocupa aproximadamente 10 Mb, non obstante, a necesidade real de espazo en disco varía considerablemente en función das opcións de configuración que elixamos e dos módulos externos que usemos.

Instalación do Apache.- Para facer funcionar o servidor imos instalar o paquete apache2, algunhas distribucións permiten facelo durante a instalación do propio sistema, se o queremos instalar dende os fontes temos que descargalo dende httpd.apache.org/download.cgi, baixa nun arquivo semellante a httpd-2_x_x.tar.gz, e completar os seguintes pasos sen erros:
Cambiámonos ao cartafol onde o gardamos. Por exemplo $HOME.
      $ cd /home/cartafol
Descomprimímolo.
      $ gzip -d httpd-2_x_xx.tar.gz
Extraemos os arquivos.
      $ tar xvf httpd-2_x_x.tar
Configurámolo.
      $ . /configure –prefix=PREFIX*
Compilámolo.
      $ make
Instalámolo.
      $ make install
*Fai referencia o cartafol onde se instalará o Apache. Por exemplo /usr/local/apache2
É necesario ter instalado o compilador de C. Se non o temos, identificámonos como root e:
      # aptitude install build-essential
Se vos parece moi complicado, témolo máis doado. Podemos baixar dende os repositorios Debian os paquetes correspondentes e como root dende o cartafol en que os descargásemos:
       #dpkg -i *.deb
Isto instalará todos os arquivos con extensión .deb do cartafol.
Tamén os podemos instalar directamente dende os repositorios como root:
Primeiro actualizámolos.
      #aptitude update
Despois instalámolos.
      #aptitude install apache2
E se non vos gusta nada do dito aínda quedan os xestores de paquetes Synaptic e Kpackage, segundo o ámbito gráfico, que permiten seleccionar un por un os paquetes.

Configuración do Apache.-Apache configúrase, en arquivos de texto, mediante directivas . O servidor le un arquivo que contén os tipos mime dos documentos; o nome dese ficheiro establéceo a directiva TypesConfig, e é mime.types por omisión.
MIME Type é unha forma de describir o formato dun ficheiro, consistente nun tipo de formato principal e outro secundario, separados por unha barra, por exemplo text/html.
O arquivo de configuración predeterminado de Apache 2 é apache2.conf e acostuma a atoparse en: /etc/apache2/. Pódese editar para configurar o número de porto, os módulos, os arquivos de rexistros, os hosts virtuais, etc. O usuario e o grupo no Apache veñen indicados polas seguintes directivas:
  User ${APACHE_RUN_USER}
  Group ${APACHE_RUN_GROUP}
Están definidas en /etc/apache2/envvars como:
  User www-data
  Group www-data
Aínda que Apache non adoita a dar problemas cos usuarios, se desexamos trocar de sito o cartafol das páxinas web, hai un comportamento diferente entre Debian e Ubuntu, mentras que no primeiro non fai falla trocar nada, en Ubuntu, hai que trocalo usuario e máis o grupo polo usuario propietario do cartafol, comentando as seguintes liñas:
  #User ${APACHE_RUN_USER}
  #Group ${APACHE_RUN_GROUP}
E Trocándoas por:
  User dono
  Group dono
Non se debe por na directiva User root. Usar root como usuario pode crear grandes buratos de seguridade no servidor.
O paso seguinte é dicirlle ao Apache onde vai estar o cartafol que contén as páxinas web, por defecto adoita ser /var/www, no noso sistema Debian, e tamén, en Ubuntu, é o arquivo default situado en /etc/apache2/sites-available/, buscamos as liñas que conteñen /var/www e trocámolas polo noso path de xeito semellante a:
  DocumentRoot /var/www
e
  <Directory /media/disk/www>
e trocámolas por:
  DocumentRoot /media/disk/www
e
  <Directory /media/disk/www>
Supoñendo que temos unha memoria usb co cartafol www.
Na maioría dos casos abonda . Calquera cambio nestes arquivos require reiniciar o servidor, ou forzar a lectura dos arquivos de configuración novamente. Para iso temos:
      # /etc/init.d/apache2 restart
      # /etc/init.d/apache2 stop
      # /etc/init.d/apache2 start
Unha vez rematado para comprobar que Apache funciona ben:
  http://localhost ou http://127.0.0.1
Se estás noutra máquina:
  http://ip_da_maquina_do_apache ou http://nome_da_maquina
En calquera dos casos o resultado debería ser algo asi:


que é o contido do meu cartafol www. Se o fixeramos sen mudalo cartafol www o resultado seria: It works!.

Módulos.-Como xa se dixo antes, os módulos son unha das características principais do Apache, e unha das razóns de empregalos, é que os requirimentos son en función do uso, probablemente un usuario de PHP non necesite Tomcat. Se se incluísen todas as posibilidades nunha mesma instalación as necesidades de Ram e espazo en Disco medrarían unha barbaridade.
A arquitectura do servidor Apache é moi modular, consta dunha sección core e diversos módulos que achegan moita da funcionalidade que podería considerarse básica para un servidor web. Algúns destes módulos son:

  • mod_ssl – Comunicacións seguras vía TLS.
  • mod_rewrite – Reescritura de direccións. Xeralmente utilizado para transformar páxinas dinámicas como php en páxinas estáticas html.
  • mod_dav – Soporte do protocolo WebDAV (RFC 2518).
  • mod_deflate – Compresión transparente co algoritmo deflate do contido enviado ao cliente./li>
  • mod_auth_ldap – Permite autenticar usuarios contra un servidor LDAP.
  • mod_proxy_ajp – Conector para enlazar co servidor Jakarta Tomcat de páxinas dinámicas en Java (servlets e JSP).

O servidor de base pode ser estendido coa inclusión de módulos externos entre os cales se encontran:

  • mod_perl – Páxinas dinámicas en Perl.
  • mod_php – Páxinas dinámicas en PHP.
  • mod_python – Páxinas dinámicas en Python.
  • mod_rexx – Páxinas dinámicas en REXX e Object REXX.
  • mod_ruby – Páxinas dinámicas en Ruby.
  • mod_security – Filtrado a nivel de aplicación, para seguridade.
  • mod_mono – Páxinas dinámicas en Mono.

Se cadra, un dos módulos máis importantes que non se instalan por defecto e o mod_ssl, usado para a configuración HTTPS. Iste módulo engade unha importante característica ao servidor Apache2, a posibilidade de encriptar as comunicacións. Desta maneira, cando o teu navegador se esta comunicando usando a encriptación SSL, utilizarase o prefixo https:// ao principio da URL na barra de direccións do navegador.
O módulo mod_ssl esta dispoñible no paquete apache2-common. Se tes instalado este paquete, poderás executar como root o seguinte comando nun terminal para activalo:
      # a2enmod ssl
Obteremos por resposta algo como:
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.
  Aquí tes todo o que poidas desexar sobre os módulos
Para aqueles que chegaron ata aquí, teño que decirlles que hai unha aplicación chamada XAMPP, que instala de xeito moi doado Apache, Php e MySQL.

Referencias:
  Documentación do Servidor HTTP Apache 2.0.
  Servidor HTTP Apache.

Licenza Creative Commons©

Tema Panorama porThemocracy