Diferencia entre revisiones de «Apache2»

De CURE - Informática
Saltar a: navegación, buscar
(Instalación: ssl-cert)
m
 
(No se muestran 13 ediciones intermedias de 3 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 12: Línea 82:
  
 
Primer prueba: desde un navegador visitar la página: <nowiki>http://servidor.apache/</nowiki>
 
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: <nowiki>http://localhost/</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 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 72: Línea 142:
 
     php-mysql
 
     php-mysql
  
===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|DNS]])
 
  
===Software===
 
  
* apache2
 
  
 
==Procedimiento==
 
==Procedimiento==
  
===Redirigir por default a la página principal de mediawiki con el módulo "rewrite" de apache ===
+
===Crear "vhosts" para la web de presentación y la tikiwiki===
 
 
Para lograr esto, editamos el archivo /etc/apache2/sites-enabled/000-default y agregar el siguiente módulo:
 
 
 
        <IfModule mod_rewrite.c>
 
            RewriteEngine on
 
            RewriteRule ^/$ /mediawiki [R]
 
        </IfModule>
 
 
 
===Crear "vhosts" para la base de datos, mediawiki y 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 / <nowiki>https://base-de-datos.taller.curerocha.edu.uy/</nowiki>
 
  
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:
 
  
# 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
+
* vhost para tikiwiki
  
 
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
 
 
 
 
* vhost para mediawiki
 
 
 
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
 
 
 
ServerName wiki.taller.curerocha.edu.uy
 
ServerAlias wiki.taller.csic.edu.uy mediawiki.taller.curerocha.edu.uy mediawiki.taller.csic.edu.uy
 
 
DocumentRoot /var/www/
 
 
RewriteEngine on
 
RewriteCond %{HTTP_HOST}  !^wiki\.taller\.curerocha\.edu\.uy [NC]
 
RewriteCond %{HTTP_HOST}  !^$
 
RewriteRule ^/(.*)        <nowiki>http://wiki.taller.curerocha.edu.uy/$1</nowiki> [R]
 
RewriteRule ^/$ /mediawiki [R]
 
 
 
  
 
==Verificación==
 
==Verificación==
Línea 146: Línea 167:
 
* 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.
 
* 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>
 
<pre>
http://taller.curerocha.edu.uy
 
http://mediawiki.taller.curerocha.edu.uy
 
http://wiki.taller.curerocha.edu.uy
 
http://taller.csic.edu.uy
 
http://mediawiki.taller.csic.edu.uy
 
http://wiki.taller.csic.edu.uy
 
http://164.73.234.104
 
</pre>
 
  
* La otra verificación pertinente a este tema es comprobar que al acceder a phpmyadmin, redirige a una página en https. En un navegador probaremos las siguientes direcciones:
+
http://wiki.dompolonio.taller.curerocha.edu.uy
<pre>
+
http://www.dompolonio.taller.curerocha.edu.uy
http://base-de-datos.taller.curerocha.edu.uy
+
http://164.73.234.111
http://bdd.taller.curerocha.edu.uy
 
http://base-de-datos.taller.csic.edu.uy
 
http://bdd.taller.csic.edu.uy
 
 
</pre>
 
</pre>
  
* Ahora corroboremos que a las siguientes direcciones sólo se puede acceder por https. Pongamos lo siguiente en nuestro navegador
+
* La otra verificación pertinente a este tema es comprobar el acceso a phpmyadmin.  
 
<pre>
 
<pre>
http://taller.csic.edu.uy/base-de-datos
+
http://www.dompolonio.taller.curerocha.edu.uy/phpmyadmin
http://taller.csic.edu.uy/base-de-datos
 
http://164.73.234.104/base-de-datos
 
</pre>
 
 
 
y deberá aparecer el siguiente mensaje (o similar):
 
<pre>
 
Not Found
 
 
 
The requested URL /base-de-datos/ was not found on this server.
 
Apache/2.2.14 (Ubuntu) Server at taller.curerocha.edu.uy Port 80
 
</pre>
 
 
 
* Luego comprobemos que si le ponemos https efectivamente va a la página de phpmyadmin
 
<pre>
 
http://taller.csic.edu.uy/base-de-datos
 
http://taller.csic.edu.uy/base-de-datos
 
http://164.73.234.104/base-de-datos
 
</pre>
 
 
 
* Verificar que con el Alias /phpmyadmin no se puede ingresar y debe aparecer el siguiente mensaje:
 
<pre>
 
Not Found
 
 
 
The requested URL /phpmyadmin was not found on this server.
 
Apache/2.2.14 (Ubuntu) Server at taller.csic.edu.uy Port 80
 
</pre>
 
 
 
con las siguientes direcciones:
 
<pre>
 
http://taller.csic.edu.uy/phpmyadmin
 
http://taller.csic.edu.uy/phpmyadmin
 
http://164.73.234.104/phpmyadmin
 
 
</pre>
 
</pre>
  
 
==Notas adicionales==
 
==Notas adicionales==
  
 +
[[Autentificación, Autorización y Control de Acceso con Apache2]]<br>
 
[[DNS-apache]]
 
[[DNS-apache]]
  
Línea 214: Línea 193:
 
:El manejo de hospedajes virtuales: http://httpd.apache.org/docs/2.2/vhosts/
 
: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 del 13: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/