Creació i configuració dels VirtualHosts en Apache 2.2 i 2.4
Apache HTTP Server
El terme VirtualHost es refereix a la pràctica de córrer més d'un lloc web (com poden ser: inforoigpv.sytes.net, roig.sytes.net, materra.sytes.net, servidorsroig.sytes.net, exemple.com, companyia.exemple.com, exemple.org, etc.) en una sola màquina. Les màquines virtuals poden ser " basades en IP ", el que significa que vosté té una adreça IP diferent per a cada lloc web, o" Mòdul Rewrite (mod_rewrite) ", el que significa que té diversos noms que s'executen en cada adreça IP, o sot a la mateixa IP publica.
El fet que s'estan executant en el mateix servidor físic, no és evident per a l'usuari final.
Si tenim la intenció de muntar un multi domini, els VirtualHosts d'Apache és la solució.
Creació i configuració, basada en el Nom
Per crear els VirtualHost d'Apache, hi ha un directori anomenat sites-available, i allí és on crearem els VirtualHost. Accedim al directori ...
~# cd /etc/apache2/sites-available/
Per crear el VirtualHost, copiarem l'arxiu per defecte 'default' per la versió 2.2 d'Apache, o '00-default.conf' si esteu fent ús de la versió 2.4 d'Apache, i com a nom posaré l'adreça del domini:
~# cp default nom_del _domini o ~# cp 00-default.conf nom_del _domini.
Nota ... A la versió 2.4 d'Apache, és necessari que aquests fitxers acaben amb l'extensió '.conf' (cp default servidorsroig.sytes.net.conf, o bé editar l'arxiu /etc/apache2/apache2.conf i canviar:
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
per
# Include the virtual host configurations:
IncludeOptional sites-enabled/
Al meu cas:
A l'Apache 2.2 | A l'Apache 2.4 | |
~# cp default servidorsroig.sytes.net |
~# cp default servidorsroig.sytes.net.conf |
A continuació editarem l'arxiu creat amb Vi, Vim, Nano, Gedit ..., o via FTTP.
A l'Apache 2.2 - Original |
A l'Apache 2.4 - Original |
|
~# nano servidorsroig.sytes.net<VirtualHost *:80> |
~# nano servidorsroig.sytes.net.conf<VirtualHost *:80> |
Seguint l'anterior exemple i atenent a les meues necessitats deixaré així, poden informar-se de les directives modificades una mica més avall.
A l'Apache 2.2 - Modificat |
A l'Apache 2.4 - Modificat |
|
~# nano servidorsroig.sytes.net<VirtualHost *:8080> |
~# nano servidorsroig.sytes.net.conf<VirtualHost *:8080>
|
El següent comandament, creara i activarà un enllaç en sites-enabled al lloc que li hem indicat, és a dir que activa el VirtualHost que acabem de crear, es tracta de l'ordre a2ensite (a2ensite el_virtualhost_creat):
A l'Apache 2.2 | A l'Apache 2.4 | |
~# a2ensite servidorsroig.sytes.net |
~# a2ensite servidorsroig.sytes.net.conf |
Reiniciem el servidor Apache, o el fem rellegir la nova configuració amb alguna de les ordres següents:
~# /etc/init.d/apache2 restart
o bé
~# /etc/init.d/apache2 reload
També podem utilitzar la següent seqüència, per si l'Apache es queda una mica sort:
~# /etc/init.d/apache2 reload
~# /etc/init.d/apache2 stop
~# /etc/init.d/apache2 start
Comprovació de les sintaxis, per comprovar els errors en la sintaxi dels fitxers de configuració podem executar:
# Fedora, RHEL, CentOS, OSX
httpd -S
# Debian, Ubuntu
apache2ctl -S
# MacOS
apachectl -S
Directives modificades als VirtualHosts
<VirtualHost *:80> per <VirtualHost *:8080>
Amb aquesta instrucció, li estem dient que aquest lloc web dirigit per aquest virtualhosts, només escoltarà les peticions que entren pel port 8080 del nostre router.
AllowOverride None per AllowOverride All
Per això s'usa el mod_rewrite que és un mòdul d'Apache que permet modificar el que apareix a la barra de direcció (es necessita tindre activat aquest mòdul per poder utilitzar diverses aplicacions com WordPress, Joomla, Drupal ...), si és que volem tindre aquestes boniques URL. Mòdul Rewrite (mod_rewrite) URL amigables.
ServerAdmin webmaster@localhost per ServerAdmin webmaster@servidorsroig.sytes.net
El ServerAdmin estableix la direcció de contacte que el servidor inclou en els missatges d'error que retorna al client.
Afegim ServerName servidorsroig.sytes.net
Nom d'amfitrió i número de port que el servidor utilitza per identificar-se. La directiva ServerName especifica el nom d'amfitrió i el port que utilitza el servidor per identificar-se.
Afegim ServerAlias servidorsroig.sytes.net
La directiva ServerAlias estableix els noms alternatius per a un host, per al seu ús amb els hosts virtuals basats en noms.
DocumentRoot /var/www per DocumentRoot /var/www/servidorsroig.sytes.net
Directori que forma l'arbre principal, document visible des de la web.
Directory /var/www/ per Directory /var/www/servidorsroig.sytes.net/
Per què les directives queden declarades al directori del nostre lloc.
Require all granted
En Apache 2.2. el control d'accés es realitza mitjançant les directives Order, Allow, Deny, and Satisfy.
En Apache 2.4, el control d'accés es realitza mitjançant el mòdul mod_authz_host, que utilitza altres directives, tot i que el mòdul mod_access_compat permet utilitzar les directives antigues.
Per això en apache 2.2, per exemple quan l'usuari vol permetre l'accés a un directori s'han d'utilitzar les directives: Order allow, deny i Allow from all. El fitxer apache2.conf contindrà unes directives generals que restringia l'accés general als directoris utilitzant les directives Order i Deny.
No obstant això, la versió 2.4 d'Apache, utilitza la directiva 'Require'. El fitxer apache2.conf conté unes directives generals que restringeixen l'accés general als directoris utilitzant la directiva 'Require' (Require all denied). Per això, quan l'usuari vol permetre l'accés a un directori, s'ha d'utilitzar la directiva 'Require all granted'.
Font: http://www.apache.org/
Salutacions
SALUT I LLIBERTAT