opensuse
[Arriba] [Todas las Listas]

Re: [opensuse] (Extraño) Apache Comportamiento Anfitrión Virtual

To: opensuse@xxxxxxxxxxxx
Subject: Re: [opensuse] (Extraño) Apache Comportamiento Anfitrión Virtual
From: "Brian K. White" <brian@xxxxxxxxx>
Date: Tue, 11 Oct 2011 11:41:43 -0400
Delivered-to: opensuse@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 11 Oct 2011 11:42:44 -0400
Envelope-to: traductor@xxxxxxxxxxx
In-reply-to: <4E945694.9070400@weberhofer.at>
List-archive: <http://lists.opensuse.org/opensuse/>
List-help: <mailto:opensuse+help@opensuse.org>
List-owner: <mailto:opensuse+owner@opensuse.org>
List-post: <mailto:opensuse@opensuse.org>
List-subscribe: <mailto:opensuse+subscribe@opensuse.org>
List-unsubscribe: <mailto:opensuse+unsubscribe@opensuse.org>
Mailing-list: contact opensuse+help@xxxxxxxxxxxx; run by mlmmj
Organization: Aljex Software Inc.
References: <879604916.368.1318339336620.JavaMail.root@heloise> <4E945694.9070400@weberhofer.at>
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
Bien, realmente el técnicamente manera más correcta parece para ser:

*httpd.*conf Cargas /*etc/*apache2/*sysconfig.*d/Incluye.*conf Justo antes del *vhosts.*d/*.*conf

Así que tan el comentario en /*etc/*sysconfig/*apache2 *sates:

# Aquí puedes nombrar archivos, separado por espacios, que tendrían que ser Incluir'*d de.
# *httpd.*conf..
#
# Esto te deja para añadir *e.*g. *VirtualHost Declaraciones sin tocar.
# /*etc/*apache2/*httpd.*conf él, El cual hace *upgrading más fácil..
#
*APACHE_*CONF_INCLUYE_ARCHIVA=""

El bueno:
* no editando archivos de stock = *portable al menos entre *suse anfitriones y *upgrade-costumbre
segura *config en archivo separado = *portable y *upgrade-seguro

El mal:
* *suse-específico *sysconfig es un *suse *customization de *apache, no una parte normal de *apache te puede esperar encontrar en cualquier *apache anfitrión = no *portable * te tiene que especificar un archivo que es esencialmente un *vhost.*d/*.*conf Archivo, pero tendría que vivir *anywhere pero en *vhosts.*d O si dentro allí tendría que ser nombrado cualquier cosa pero *.*conf, para mantenerlo de conseguir leído dos veces, o justo dejarlo consigue leído dos veces.
* Está haciendo 2 o más cosas para salvar de teniendo que hacer 1 cosa = mala *math

En una caja nueva dada, tendrías que a mano editar /*etc/*sysconfig/*apache2 cuál es no más o menos trabajo que editando *httpd.*conf O algunos otro archivo.

El la justificación depende encima si de hecho utilizas la característica proporcionada *smartly. SI utilizas el *sysconfig archivo, y SI utilizas que característica para especificar todos los archivos que viven en algún sitio separado que es *brainless para ti para respaldar arriba, que es valioso. Podrías incluir archivos que aquello no sólo especifica el *default *vhost *config primero, pero podrías incluir "incluir" *directives que incluye *vhost *.*conf Archivos de algún directorio de vuestro propio y no tener ninguno en /*etc/*apache2/*vhosts.*d/. Entonces vuestro entero *setup sería *brainless a *backup y/o copia a otro anfitrión justo por *grabbing /*etc/*sysconfig/*apache2 y el árbol de directorio solo donde tienes todo vuestro *.*conf Archivos y *htdocs y *cgi-cubo *etc. Ninguna posibilidad de perder algo, ninguna posibilidad de inserción incompatible a anfitrión nuevo.

--
*bkw

En 10/11/2011 10:45 AM, *Johannes *Weberhofer escribió:
también podrías configurar /*etc/*apache2/*default-*server.*conf, El cual es
siempre cargado primero ;-)

*Johannes

Soy 11.10.11 15:22, *schrieb *CHONG *Yu *Meng:
*Thanks Brian!

Conseguía la cosa entera ordenada fuera de por poner todo el Virtual Anfitrión
*declarations dentro de un archivo en vez de partirles a archivos
separados. De este modo, siempre sé cuál es el "primer" o *default "" Anfitrión
Virtual. No una solución elegante, pero trabaja.

Después de que algunos más *Googling, realicé que *OpenSUSE *Apache de hecho
miradas en el *filename y lo ordena *alphabetically, así que vuestra práctica
sugerida de nombrar el primer Anfitrión Virtual como "_*default.*conf" Trabajaría.

hay todavía unos cuantos extraño *quirks en *OpenSUSE *Apache, pero pienso que tengo un mango en este ahora.

*Thanks Y Consideraciones Mejores,
*pascal *chong


----- Mensaje Original -----
De: "Brian *K. Blanco"<brian@xxxxxxxxx>
A: opensuse@xxxxxxxxxxxx
Envió: lunes, octubre 10, 2011 11:25:24 Tema
de PM: *Re: [*opensuse] (Extraño) *Apache Comportamiento Anfitrión Virtual

En 10/10/2011 10:23 AM, *CHONG *Yu *Meng escribió:
*Hi todo,

Así que, yo *setup *Apache en mi *OpenSUSE 11.4 *server en casa, queriendo
experimento con varios *php y *perl *apps (*hence el Virtual *Hosting
*config), cuándo encontré algún comportamiento extraño con Virtual *Hosting.

Tengo un *default configuración en *Apache que puedo acceder utilizar
*hostorig.Ámbito.*tld (No el nombre real naturalmente). Creo un Anfitrión
Virtual, anfitrión1.Ámbito.*tld Y poner un índice.*html Interior. Trabaja, tan lejos tan
bien.

*Ok, ahora, añado otro Anfitrión Virtual, anfitrión2.Ámbito.*tld, e inicio de cosas
para conseguir extraño. Cuándo abro un navegador e ir a *http://*hostorig&*quot ";, consigo
"*http://anfitrión1&*quot; en cambio. "*http://Anfitrión1&*quot; puntos quietos a la derecha sitio,
y *http://anfitrión2&*quot "; el punto a la derecha coloca demasiado.

Un poco de *Googling alrededor me dirige a un sitio que dice que el orden del
<*VirtualHost> *stanzas es significativo. Si *Apache no entiende
qué Anfitrión Virtual el usuario está pidiendo, él  *default al primer
<*VirtualHost> *declaration.

Ahora, en *OpenSUSE, el orden de los Anfitriones Virtuales no es tan claros porque
son todo contenido en separado .*conf Archivos dentro de /*etc/*apache2/*vhost.*d.
Si quise uno de los Anfitriones Virtuales aquí para
ser el "primer" Anfitrión Virtual declarado, qué  hago?

Desde esto es una casa *setup, no es realmente que importante, pero está
molestándome gusta loco. Si cualquiera aquí me puede dar cualquier información en
por qué todo esto está pasando y cómo puedo *setup un Anfitrión Virtual que *Apache
 "*default" a cuándo no entiende el destino (o justo
*setup los Anfitriones Virtuales mejores), complacer ayuda!

*Thanks Anticipadamente,
*pascal *chong


tengo esto en /*etc/*apache2/*httpd.*conf :

[...]
# Define un *default -nada "*vhost" antes de incluir cualquier posible
*config archivos
# de modo que *defaults acabará arriba de venir del principal *config archivos en cambio
# de requerir un *vhost.*conf Con un especial *filename que conseguirá leído
# antes de otros
<*VirtualHost *:80>
</*VirtualHost>


Incluye /*etc/*apache2/*vhosts.*d/*.*conf
[...]


La última línea era ya allí e inserté los comentarios y *virtualhost
encima.

Pienso si pusiste las mismas dos líneas a un archivo nombrado como
/*etc/*apache2/*vhosts.*d/_*default.*conf O 0_*default.*conf *etc Él 
probablemente siempre ser leído primer pero no quise confiar en aquello o hacer
el necesario probando o código-mirando para hacer seguro porque era mucho
más fácil y absolutamente seguro de hacer esto.

Es ligeramente mal para #prpers para editar *httpd.*conf Directamente/a mano, pero es
incluso peor para *apache o *suse para fallar para definir el *behavior de Incluir "
/*etc/*apache2/*vhosts.*d/*.*conf" Cuándo el orden importa.

Generalmente, en cualquier *app, a no ser que explícitamente documentado, no puedes contar
en *filesystem *globbing patrones como aquello para producir resultados en cualquier
orden particular. No *alphanumeric, no crear o modificar tiempo, no *inode
número *etc... Algunos programas hacen algunos interno ordenando. Por ejemplo "*ls"
naturalmente tiene varios diferente ordenando opciones. Pero "*ls" está haciendo que
él, el *filesystem y *kernel tiene no orden particular, al menos no
que un humano nunca encuentra útil. Tan, corto de documentación explícita, o probando,
o mirando en el código, la manera segura única para conseguir un orden
particular es para listarlo en *httpd.*conf Explícitamente en el orden necesitas.

También de este modo no me tengo que preocupar lo que cualquier *vhosts *.*conf Los Archivos son
nombrados. Uno podría venir a lo largo de más tarde nombrado ____.*conf Y no romperá
esto.

Quizás hay una manera definida real, gusta quizás a un nombre especial le gusta
".*conf" Es *guaranteed a siempre ser primer ningún asunto qué. No sé.
Pero si *somewhere aquello es documentado, que sería la manera mejor de ir
en vez de editar *httpd.*conf.



--
A *unsubscribe, *e-correo: *opensuse+unsubscribe@xxxxxxxxxxxx
para contactar el dueño, *e-correo: *opensuse+owner@xxxxxxxxxxxx


Well, really the technically most correct way seems to be:

httpd.conf loads /etc/apache2/sysconfig.d/include.conf just before the vhosts.d/*.conf

So just as the comment in /etc/sysconfig/apache2 sates:

# Here you can name files, separated by spaces, that should be Include'd from.
# httpd.conf..
#
# This allows you to add e.g. VirtualHost statements without touching.
# /etc/apache2/httpd.conf itself, which makes upgrading easier..
#
APACHE_CONF_INCLUDE_FILES=""

The good:
* not editing stock files = portable at least among suse hosts and upgrade-safe
* custom config in separate file = portable and upgrade-safe

The bad:
* suse-specific sysconfig is a suse customization of apache, not a normal part of apache you can expect to find on any apache host = not portable * you must specify a file that is essentially a vhost.d/*.conf file, but it should live anywhere but in vhosts.d or if in there it should be named anything but *.conf, in order to keep it from getting read twice, or just let it get read twice.
* It's doing 2 or more things to save from having to do 1 thing = bad math

On a given new box, you'd have to manually edit /etc/sysconfig/apache2 which is no more or less work than editing httpd.conf or some other file.

The one justification depends on if you actually use the provided feature smartly. IF you use the sysconfig file, and IF you use that feature to specify all files that live in some separate place that is brainless for you to back up, that is valuable. You could include files that that not only specify the default vhost config first, but you could include "include" directives that include vhost *.conf files from some directory of your own and not have any in /etc/apache2/vhosts.d/. Then your entire setup would be brainless to backup and/or copy to another host just by grabbing /etc/sysconfig/apache2 and the single directory tree where you have all your *.conf files and htdocs and cgi-bin etc. No chance of missing something, no chance of incompatible insertion into new host.

--
bkw

On 10/11/2011 10:45 AM, Johannes Weberhofer wrote:
You could also configure /etc/apache2/default-server.conf, which is
always loaded first ;-)

Johannes

Am 11.10.11 15:22, schrieb CHONG Yu Meng:
Thanks Brian!

I got the whole thing sorted out by putting all the Virtual Host
declarations inside one file instead of splitting them into separate
files. This way, I always know which is the "first" or "default" Virtual
Host. Not an elegant solution, but it works.

After some more Googling, I realized that OpenSUSE's Apache actually
looks at the filename and sorts it alphabetically, so your suggested
practice of naming the first Virtual Host as "_default.conf" would work.

There are still a few odd quirks in OpenSUSE's Apache, but I think I
have a handle on this now.

Thanks and Best Regards,
pascal chong


----- Original Message -----
From: "Brian K. White"<brian@xxxxxxxxx>
To: opensuse@xxxxxxxxxxxx
Sent: Monday, October 10, 2011 11:25:24 PM
Subject: Re: [opensuse] (Strange) Apache Virtual Host Behaviour

On 10/10/2011 10:23 AM, CHONG Yu Meng wrote:
Hi all,

So, I setup Apache on my OpenSUSE 11.4 server at home, wanting to
experiment with several php and perl apps (hence the Virtual Hosting
config), when I found some strange behaviour with Virtual Hosting.

I have a default configuration in Apache which I can access using
hostorig.domain.tld (not the real name of course). I create a Virtual
Host, host1.domain.tld and put an index.html inside. It works, so far so
good.

Ok, now, I add another Virtual Host, host2.domain.tld, and things start
to get strange. When I open a browser and go to "http://hostorig";, I get
"http://host1"; instead. "http://host1"; still points to the right place,
and "http://host2"; point to the right place too.

A bit of Googling around leads me to a site that says that the order of
the<VirtualHost> stanzas is significant. If Apache does not understand
which Virtual Host the user is requesting, it will default to the first
<VirtualHost> declaration.

Now, in OpenSUSE, the order of the Virtual Hosts is not so clear because
they are all contained in separate .conf files inside
/etc/apache2/vhost.d. If I wanted one of the Virtual Hosts here to be
the "first" Virtual Host declared, what do I do?

Since this is a home setup, it's not really that important, but it is
annoying me like crazy. If anyone here can give me any information on
why all this is happening and how I can setup a Virtual Host that Apache
will "default" to when it doesn't understand the destination (or just
setup Virtual Hosts better), please help!

Thanks in Advance,
pascal chong


I have this in /etc/apache2/httpd.conf :

[...]
# define a default do-nothing "vhost" before including any possible
config files
# so that defaults will end up coming from the main config files instead
# of requiring a vhost.conf with a special filename that will get read
# before others
<VirtualHost *:80>
</VirtualHost>


Include /etc/apache2/vhosts.d/*.conf
[...]


The last line was already there and I inserted the comments and
virtualhost above.

I think if you put the same two lines into a file named like
/etc/apache2/vhosts.d/_default.conf or 0_default.conf etc it will
probably always be read first but I didn't want to rely on that or do
the necessary testing or code-looking to make sure because it was much
easier and utterly certain to do this.

It's slightly bad for us to edit httpd.conf directly/manually, but it's
even worse for apache or suse to fail to define the behavior of "Include
/etc/apache2/vhosts.d/*.conf" when the order does matter.

Generally, in any app, unless explicitly documented, you can not count
on filesystem globbing patterns like that to produce results in any
particular order. Not alphanumeric, not create or modify time, not inode
number etc... Some programs do some internal sorting. For example "ls"
of course has several different sorting options. But "ls" is doing that
itself, the filesystem and kernel has no particular order, at least not
that a human ever finds useful. So, short of explicit documentation, or
testing, or looking at the code, the only sure way to get a particular
order is to list it in httpd.conf explicitly in the order you need.

Also this way I don't have to care what any vhosts *.conf files are
named. One could come along later named ____.conf and it won't break
this.

Maybe there is a real defined way, like maybe a special name like
".conf" is guaranteed to always be first no matter what. I don't know.
But if somewhere that's documented, that would be the better way to go
instead of editing httpd.conf.



--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx


<Anterior por Tema] Tema Actual [Siguiente por Tema>