Diferencia entre revisiones de «Apache2»

De CURE - Informática
Ir a la navegación Ir a la búsqueda
m
 
(No se muestran 24 ediciones intermedias de 5 usuarios)
Línea 1: Línea 1:
===Borrador===
+
====Instalación====
 +
Paquetes: apache2. En tasksel, la tarea lamp-server incluye paquetes de Apache, junto con otros.
 +
"LAMP is an acronym for a solution stack of free, open source software, originally coined from the first letters of Linux (operating system), Apache HTTP Server, MySQL (database software) and Perl/PHP/Python" (Wikipedia).
 +
 
 +
Arrancar y detener apache:
 +
  /etc/init.d/apache2 stop
 +
  /etc/init.d/apache2 start
 +
 
 +
Probamos instalación con página por defecto de apache:
 +
  navegador hacia http://localhost o http://127.0.0.1
 +
 
 +
Página por defecto.
 +
No es necesario si se van a usar dominios virtuales.
 +
 
 +
Cambio en /etc/apache2/sites-available/default:
 +
Comentar la línea
 +
  #RedirectMatch ^/$ /index.html
 +
porque viene con otra página por defecto.
 +
El cambio lleva a /var/www/index.html; raíz es /var/www.
 +
Crear una página /var/www/index.html para el sitio o para prueba.
 +
 
 +
====Configuración====
 +
 
 +
Dominios virtuales: crea dominios virtuales que se navegan con su propio URL pero están en esta misma máquina.
 +
Ejemplo:
 +
*  Dominios: wiki.dompolonio.taller.curerocha.edu.uy, www.dompolonio.taller.curerocha.edu.uy.
 +
*  Servidor: dompolonio.
 +
*  DNS accesible para poder resolver los nombres de los dominios virtuales como alias de esta máquina, donde están soportados esos dominios.
 +
 
 +
Los nombres wiki.dompolonio.taller.curerocha.edu.uy, www.dompolonio.taller.curerocha.edu.uy, deben resolverse vía DNS; estos comandos deben contestar los IP o nombre de máquina correctos:
 +
  host wiki.dompolonio.taller.curerocha.edu.uy
 +
  host www.dompolonio.taller.curerocha.edu.uy
 +
 
 +
El DNS debe soportar las zonas auda.org.uy y nsk.com.uy. Requiere en los archivos de  zona del DNS las líneas
 +
  ; en la zona nsk.com.uy
 +
  www IN CNAME nautilus
 +
 
 +
  ; en la zona auda.org.uy
 +
  auda IN CNAME nautilus
 +
 
 +
Directorio de páginas de los dominios virtuales. Crear en /var/www un subdirectorio para cada dominio virtual:
 +
  mkdir /var/www/nsk /var/www/auda
 +
Crear páginas de prueba HTML para cada dominio virtual:
 +
*  /var/www/nsk/index.html
 +
*  /var/www/auda/index.html
 +
 
 +
Los sitios disponibles están en /etc/apache2/sites-available.
 +
Los sitios habilitados son enlaces simbólicos en /etc/apache2/sites-enabled.
 +
 
 +
Crear el archivo /etc/apache2/sites-available/website.
 +
El número IP es el de la máquina donde está el Apache.
 +
 +
user@polonio:~$ cat /etc/apache2/sites-available/website
 +
#/etc/apache2/sites-available/website
 +
...
 +
<VirtualHost *:80>
 +
 
 +
  NameVirtualHost 164.73.234.111
 +
  ServerAdmin polonio@polonio.dompolonio.taller.curerocha.edu.uy
 +
  DocumentRoot /var/www/dompolonio/
 +
  ServerName www.dompolonio.taller.curerocha.edu.uy
 +
</VirtualHost>
 +
 +
 
 +
  ...
 +
 
 +
Deshabilitar el sitio por defecto 'default', Habilitar los nuevos sitios 'website', recargar Apache:
 +
  a2dissite default
 +
  a2ensite website
 +
  /etc/init.d/apache2 restart
 +
 
 +
 
 +
 
 +
'''Notas:'''
 +
* archivo de configuración individual para cada host virtual: es posible (y quizás preferible) para cada sitio virtual copiar, en el directorio /etc/apache2/sites-available, el archivo 'default' hacia otro con el nombre del nuevo sitio, y modificar lo necesario. Se tiene así tener un archivo de configuración por cada sitio.
  
Servidores web en GNU/linux:
 
el principal y más conocido: apache
 
pero también: lighthttpd, cherokee, ...
 
  
Utilizaremos apache2 (denominado así en debian/ubuntu porque cohabita(ro)n las versiones 1.3.x (apache) y 2.x (apache2)
 
  
 
===Instalación===
 
===Instalación===
Línea 11: Línea 81:
 
aptitude install apache2
 
aptitude install apache2
  
Primer prueba: desde un navegador visitar la página: http://servidor.apache/
+
Primer prueba: desde un navegador visitar la página: <nowiki>http://servidor.apache/</nowiki>
donde "servidor.apache" es la IP del servidor, o un nombre de domínio que resuelve a ésta. (si el servidor tiene un navegador, puede sar: http://localhost/)
+
donde "servidor.apache" es la IP del servidor, o un nombre de domínio que resuelve a ésta. (si el servidor tiene un navegador, puede ser: <nowiki>http://localhost/</nowiki>)
  
 
Debemos entonces ver aparecer una página de prueba: "It works!"
 
Debemos entonces ver aparecer una página de prueba: "It works!"
Línea 51: Línea 121:
 
Esto requerirá, además, un certificado válido y la configuración de un sitio en https. Un certificado autofirmado se puede obtener instalando ssl-cert, y un sitio activando:
 
Esto requerirá, además, un certificado válido y la configuración de un sitio en https. Un certificado autofirmado se puede obtener instalando ssl-cert, y un sitio activando:
 
a2ensite default-ssl
 
a2ensite default-ssl
 +
 +
* Instalación de openssl y ssl-cert
 +
 +
$ apt-get install openssl ssl-cert
 +
 +
* Crear los certificados:
 +
 +
$ a2enmod ssl
 +
$ mkdir /etc/apache2/ssl
 +
$ /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
  
 
as2enmod, sin parámetro, muestra la lista de módulos disponibles.
 
as2enmod, sin parámetro, muestra la lista de módulos disponibles.
Línea 64: Línea 144:
  
  
===Objetivos===
 
 
# Redirigir por default a la página principal de mediawiki con el módulo "rewrite" de apache
 
# Crear "vhosts" para la base de datos, mediawiki y tikiwiki (modificando previamente el [[DNS-apache]])
 
 
===Software===
 
 
* apache2
 
 
===Procedimiento===
 
 
==Redirigir por default a la página principal de mediawiki con el módulo "rewrite" de apache ==
 
  
Para lograr esto, editamos el archivo /etc/apache2/sites-enabled/000-default y agregar el siguiente módulo:
 
  
        <IfModule mod_rewrite.c>
+
==Procedimiento==
            RewriteEngine on
 
            RewriteRule ^/$ /mediawiki [R]
 
        </IfModule>
 
  
==Crear "vhosts" para la base de datos, mediawiki y tikiwiki==
+
===Crear "vhosts" para la web de presentación y la tikiwiki===
  
  
* vhost para la base de datos y redirección por default a mediawiki:
 
  
Primero queremos que a la base de datos ingresemos sólo por https y si los usuarios entran por http se rediriga a https. Para esto crearemos dos sitios, uno base-de-datos (vhost en el puerto 80) y otro base-de-datos-ssl (vhost por default en el puerto 443), en el primero unicamente redirigiremos a https y en el último haremos la redirección a mediawiki.
 
Editemos /etc/apache2/sites-enabled/base-de-datos y agrequemos la siguiente linea para redirigir en forma permanente a https:
 
  
Redirect permanent / https://base-de-datos.taller.curerocha.edu.uy/
 
  
Y agregamos un NameServer y algunos ServerAlias
 
  
ServerName base-de-datos.taller.curerocha.edu.uy
 
ServerAlias base-de-datos.taller.csic.edu.uy bdd.taller.curerocha.edu.uy
 
  
Con esto iremos directamente a base-de-datos-ssl (vhost en el puerto 443), ahora configuremos este sitio editando /etc/apache2/sites-enabled/base-de-datos-ssl y agregando lo siguiente:
+
* vhost para tikiwiki
 
 
# Ponemos el alias en https solamente
 
Alias /base-de-datos /usr/share/phpmyadmin
 
 
<IfModule mod_rewrite.c>
 
      RewriteEngine On
 
      RewriteRule ^/$ /base-de-datos/ [R]
 
</IfModule>
 
 
 
 
 
* vhost para tikiawiki
 
  
 
En el vhost (y en el DNS) definimos ServerName y ServerAlias
 
En el vhost (y en el DNS) definimos ServerName y ServerAlias
  
 
  ServerName tikiwiki.taller.curerocha.edu.uy
 
  ServerName tikiwiki.taller.curerocha.edu.uy
  ServerAlias tikiwiki.taller.csic.edu.uy
+
  ServerAlias wiki.dompolonio.taller.curerocha.edu.uy
  
 +
==Verificación==
  
* vhost para mediawiki
+
* Para verificar que por default rediriga a la wiki del CURE, haremos lo siguiente. En un navegador probaremos las siguiente direcciones y debe redirigir a la wiki.
 +
<pre>
  
Procedemos de la misma manera que con tikiwiki respecto a los ServerName y los ServerAlias. Además hagamos alguna redirección poniendo lo siguiente en el archivo /etc/apache2/sites-enable/mediawiki
+
http://wiki.dompolonio.taller.curerocha.edu.uy
 
+
http://www.dompolonio.taller.curerocha.edu.uy
ServerName wiki.taller.curerocha.edu.uy
+
http://164.73.234.111
ServerAlias wiki.taller.csic.edu.uy mediawiki.taller.curerocha.edu.uy mediawiki.taller.csic.edu.uy
+
</pre>
 
DocumentRoot /var/www/
 
 
RewriteEngine on
 
RewriteCond %{HTTP_HOST}  !^wiki\.taller\.curerocha\.edu\.uy [NC]
 
RewriteCond %{HTTP_HOST}  !^$
 
RewriteRule ^/(.*)        http://wiki.taller.curerocha.edu.uy/$1 [R]
 
RewriteRule ^/$ /mediawiki [R]
 
  
 +
* La otra verificación pertinente a este tema es comprobar el acceso a phpmyadmin.
 +
<pre>
 +
http://www.dompolonio.taller.curerocha.edu.uy/phpmyadmin
 +
</pre>
  
 
==Notas adicionales==
 
==Notas adicionales==
  
 +
[[Autentificación, Autorización y Control de Acceso con Apache2]]<br>
 
[[DNS-apache]]
 
[[DNS-apache]]
  
===Referencias===
+
==Referencias==
  
 
Servidor web apache http://httpd.apache.org/
 
Servidor web apache http://httpd.apache.org/
 
(www.apache.org es el de la fundación, que también tiene otros proyectos, como Tomcat, por ejemplo)
 
(www.apache.org es el de la fundación, que también tiene otros proyectos, como Tomcat, por ejemplo)
 
Ver en particular:
 
Ver en particular:
    La documentación: http://httpd.apache.org/docs/2.2/
 
  
    El manejo de hospedajes virtuales: http://httpd.apache.org/docs/2.2/vhosts/
+
:La documentación: http://httpd.apache.org/docs/2.2/
 +
 
 +
:El manejo de hospedajes virtuales: http://httpd.apache.org/docs/2.2/vhosts/
 +
:Las reglas de re-escritura de URLS: http://httpd.apache.org/docs/2.2/rewrite/
  
    Las reglas de re-escritura de URLS: http://httpd.apache.org/docs/2.2/rewrite/
+
[[Category:Descontinuadas]]

Revisión actual - 16:36 14 ene 2022

Instalación

Paquetes: apache2. En tasksel, la tarea lamp-server incluye paquetes de Apache, junto con otros. "LAMP is an acronym for a solution stack of free, open source software, originally coined from the first letters of Linux (operating system), Apache HTTP Server, MySQL (database software) and Perl/PHP/Python" (Wikipedia).

Arrancar y detener apache:

 /etc/init.d/apache2 stop
 /etc/init.d/apache2 start

Probamos instalación con página por defecto de apache:

 navegador hacia http://localhost o http://127.0.0.1

Página por defecto. No es necesario si se van a usar dominios virtuales.

Cambio en /etc/apache2/sites-available/default: Comentar la línea

 #RedirectMatch ^/$ /index.html

porque viene con otra página por defecto. El cambio lleva a /var/www/index.html; raíz es /var/www. Crear una página /var/www/index.html para el sitio o para prueba.

Configuración

Dominios virtuales: crea dominios virtuales que se navegan con su propio URL pero están en esta misma máquina. Ejemplo:

  • Dominios: wiki.dompolonio.taller.curerocha.edu.uy, www.dompolonio.taller.curerocha.edu.uy.
  • Servidor: dompolonio.
  • DNS accesible para poder resolver los nombres de los dominios virtuales como alias de esta máquina, donde están soportados esos dominios.

Los nombres wiki.dompolonio.taller.curerocha.edu.uy, www.dompolonio.taller.curerocha.edu.uy, deben resolverse vía DNS; estos comandos deben contestar los IP o nombre de máquina correctos:

 host wiki.dompolonio.taller.curerocha.edu.uy
 host www.dompolonio.taller.curerocha.edu.uy

El DNS debe soportar las zonas auda.org.uy y nsk.com.uy. Requiere en los archivos de zona del DNS las líneas

 ; en la zona nsk.com.uy
 www IN CNAME nautilus
 ; en la zona auda.org.uy
 auda IN CNAME nautilus

Directorio de páginas de los dominios virtuales. Crear en /var/www un subdirectorio para cada dominio virtual:

 mkdir /var/www/nsk /var/www/auda

Crear páginas de prueba HTML para cada dominio virtual:

  • /var/www/nsk/index.html
  • /var/www/auda/index.html

Los sitios disponibles están en /etc/apache2/sites-available. Los sitios habilitados son enlaces simbólicos en /etc/apache2/sites-enabled.

Crear el archivo /etc/apache2/sites-available/website. El número IP es el de la máquina donde está el Apache.

user@polonio:~$ cat /etc/apache2/sites-available/website

#/etc/apache2/sites-available/website

...

<VirtualHost *:80>
  NameVirtualHost 164.73.234.111
  ServerAdmin polonio@polonio.dompolonio.taller.curerocha.edu.uy
  DocumentRoot /var/www/dompolonio/
  ServerName www.dompolonio.taller.curerocha.edu.uy
</VirtualHost>

 ...

Deshabilitar el sitio por defecto 'default', Habilitar los nuevos sitios 'website', recargar Apache:

 a2dissite default
 a2ensite website
 /etc/init.d/apache2 restart


Notas:

  • archivo de configuración individual para cada host virtual: es posible (y quizás preferible) para cada sitio virtual copiar, en el directorio /etc/apache2/sites-available, el archivo 'default' hacia otro con el nombre del nuevo sitio, y modificar lo necesario. Se tiene así tener un archivo de configuración por cada sitio.


Instalación

aptitude install apache2

Primer prueba: desde un navegador visitar la página: http://servidor.apache/ donde "servidor.apache" es la IP del servidor, o un nombre de domínio que resuelve a ésta. (si el servidor tiene un navegador, puede ser: http://localhost/)

Debemos entonces ver aparecer una página de prueba: "It works!"

Organización de /etc/apache2 :

   /etc/apache2/apache2.conf: archivo principal de configuración,
   /etc/apache2/ports.conf: declaración de uso de VirtualHosts y puertos de escucha
   /etc/apache2/conf.d/ carpeta de configuraciones específicas a módulos u otros paquetes que utilizan apache
   /etc/apache2/sites-available : definición de "sitios" VirtualHosts. aquí, inicialmente hay un sitio llamado "default", que responderá a cualquier solicitud.
   /etc/apache2/sites-enabled : "sitios" activados (enlaces simbólicos a la precedente carpeta)

Utilitarios de administración de sitios:

   a2ensite (por "apache2 enable site"): activación de los sitios disponibles,
   a2dissite: desactivación de los sitios.

Podemos, por ejemplo, crear un nuevo sitio creando un archivo /etc/apache2/sites-available/mi_sitio, a partir del archivo /etc/apache2/sites-available/default

Si queremos que este sitio sólo responda a cierto dominio que resuelve en ese servidor (y no a la IP o a otro dominio), agregamos en la sección <VirtualServer *:80> una directiva: ServerName www.mi_servidor.org

Se pueden personalizar las directivas existentes y/o agregar muchas otras. Debemos finalmente activar el sitio: a2ensite mi_sitio Y re-cargar la configuración: /etc/init.d/apache2 reload

Otros utilitarios similares existen para los módulos.

   a2enmod: habilitación de un módulo apache,
   a2dismod: deshabilitación de un módulo apache,

Apache ya viene compilado con diferentes módulos. Por ejemplo, para habilitar apache en https: a2enmod ssl

Esto requerirá, además, un certificado válido y la configuración de un sitio en https. Un certificado autofirmado se puede obtener instalando ssl-cert, y un sitio activando: a2ensite default-ssl

  • Instalación de openssl y ssl-cert
$ apt-get install openssl ssl-cert
  • Crear los certificados:
$ a2enmod ssl
$ mkdir /etc/apache2/ssl
$ /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

as2enmod, sin parámetro, muestra la lista de módulos disponibles.

Además de las dependencias, existen varios paquetes adicionales ligados a apache, a menudo a través de módulos: libapache2-mod-XXX, por ejemplo PHP: libapache2-mod-php5

Apache se utiliza a menudo en una configuración "LAMP": Linux Apache MySQL PHP. Es necesario instalar además:

   libapache2-mod-php5 (que incluye php5 en dependencia)
   mysql-server
   php-mysql



Procedimiento

Crear "vhosts" para la web de presentación y la tikiwiki

  • vhost para tikiwiki

En el vhost (y en el DNS) definimos ServerName y ServerAlias

ServerName tikiwiki.taller.curerocha.edu.uy
ServerAlias wiki.dompolonio.taller.curerocha.edu.uy

Verificación

  • Para verificar que por default rediriga a la wiki del CURE, haremos lo siguiente. En un navegador probaremos las siguiente direcciones y debe redirigir a la wiki.

http://wiki.dompolonio.taller.curerocha.edu.uy
http://www.dompolonio.taller.curerocha.edu.uy
http://164.73.234.111
  • La otra verificación pertinente a este tema es comprobar el acceso a phpmyadmin.
http://www.dompolonio.taller.curerocha.edu.uy/phpmyadmin

Notas adicionales

Autentificación, Autorización y Control de Acceso con Apache2
DNS-apache

Referencias

Servidor web apache http://httpd.apache.org/ (www.apache.org es el de la fundación, que también tiene otros proyectos, como Tomcat, por ejemplo) Ver en particular:

La documentación: http://httpd.apache.org/docs/2.2/
El manejo de hospedajes virtuales: http://httpd.apache.org/docs/2.2/vhosts/
Las reglas de re-escritura de URLS: http://httpd.apache.org/docs/2.2/rewrite/