Heavymind
Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza.

29/08/2007

Koszmar powrócił pod nową postacią: svn:ignore

Opublikowane jako: Subversion — Tags: , — Kubek Bartosz @ 22:03

Przez okres ostatniego tygodnia, starałem się odpowiednio skonfigurować repozytorium SVN projektu nad którym trzymam pieczę. Najważniejszą rzeczą jaką musiałem wykonać było wykluczenie każdej treści z repozytorium, która nie była statyczną częścią projektu. Mam tutaj na myśli pliki i katalogi, które zawierały różnorodne dane sesyjne, logów czy cache. Niestety, jak się okazało, zadanie to nie jest w cale takie proste, a rozwiązywanie drobnych problemów jakie można napotkać wykonując odpowiednie operacje jest bardzo czasochłonne. Tak więc jak uczyniłem to już w jednym z poprzednich artykułów, mając na uwadze chęć pomocy wszystkim, którzy będą kiedyś zmuszeni przechodzić przez podobne zagadnienia, postaram się opisać moje eksperymenty i doświadczenia. Potrzeba opisania tego jest tym większa, że po raz pierwszy nie mogłem “zguglować” problemu, by dostać satysfakcjonującą odpowiedź na pytanie: “jak ignorować katalogi w svn”.

(więcej…)



The nightmare has returned with new name: svn:ignore

Opublikowane jako: Subversion — Tags: , — Kubek Bartosz @ 21:53

During a time of last week I’ve tried to properly set up of subversion project repository that I’m responsible of. The most important thing I had to do was to exclude all content from repository, that is not a static part of the project. What I mean is a directories and files that contains miscellaneous logs, cache or sessions data. Unfortunately it was another nightmare, cause I’ve found this task very complicated. So as once before, I’d like to share with You about my experiments, to prevent You of wasting time as I did. I’m writing it especially that You will not easily “google” a question : “how to ignore directories in SVN” and get satisfy result.

(więcej…)



25/07/2007

koszmar z VirtualHost’ami w SuSE

Opublikowane jako: Apache — Tags: , — Kubek Bartosz @ 23:38

Chciałbym się podzielić problemem, który zawłaszczył sobie masę mego czasu przez ostatnie dni, a związany jest z vHostami serwera Apache2 zainstalowanego na sysyemie openSuse linux. Opisuję to, ponieważ mam nadzieję, że mój wywód będzie pomocny dla osób które również spotkają się z tym dziwnym problemem, a zaświadczam, iż rozwiązanie go to nie była łatwa rzecz (tym bardziej gdy rozwiązania szuka się głównie metodą własnych “prób i błędów”).
Tak więc moim celem było uruchomienie kilku vHostów na nowo postawionym serwerze Apache2. W tym celu stworzyłem następujące dyrektywy w pliku /etc/apache2/vhosts.d/vhosts.conf :

   <virtualhost *:80>
      ServerAdmin webmaster@somedomain.com
      DocumentRoot /srv/www/somedomain
      ServerName www.somedomain.com
      ServerAlias somedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@elsedomain.com
      DocumentRoot /srv/www/elsedomain
      ServerName www.elsedomain.com
      ServerAlias elsedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@otherdomain.com
      DocumentRoot /srv/www/otherdomain
      ServerName www.otherdomain.com
      ServerAlias otherdomain.com
   </virtualhost>

Uzupełnieniem tego było umieszczenie następujących linii w pliku /etc/hosts :

   127.0.0.1     www.somedomain.com
   127.0.0.1     somedomain.com
   127.0.0.1     www.elsedomain.com
   127.0.0.1     elsedomain.com
   127.0.0.1     www.otherdomain.com
   127.0.0.1     otherdomain.com

I to wszystko. Pozostaje już tylko zrestartować proces Apache poprzez:

   apache2ctl restart

i błąd gotowy! Oto co wyświetla się podczas uruchamiania ponownego instancji Apache:

   [Wed Jul 25 21:42:59 2007]
      [warn] _default_ VirtualHost overlap on port 80, the first has precedence

A cóż to oznacza? Pierwsza sekcja vHosta została potraktowana jako główna/domyślna, a każda następna po niej w jakiś niezrozumiały dla mnie sposób wchodzi w konflikt z tę pierwszą. Rezultatem tego jest, iż wywołując URL konfliktowego hosta (”elsedomain.com”, “otherdomain.com”) w przeglądarce internetowej, otrzymuję treść strony głównej hosta pierwszego, głównego (”somedomain.com”). Tego oczywiście nie chcemy.

Mam nadzieję, iż problem jest zrozumiały. Poniżej przykłady zmian, które nie przyniosły żadnej poprawy:
* zmiana dyrektyvy vHosta na:

   <virtualhost *:*>
      [...]
   </virtualhost>

* zmiana dyrektyvy vHosta na:

   <virtualhost 127.0.0.1:*>
      [...]
   </virtualhost>

* zmiana dyrektyvy vHosta na:

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

* zmiana adresu IP in /etc/hosts na 127.0.0.2 oraz dyrektywy vHosta na:

   <virtualhost 127.0.0.2:80>
      [...]
   </virtualhost>

To co naprawdę pomogło, znajdywało się głównie w innym miejscu. Otóż dodałem nową linię na samym początku mego pliku vhosts.conf:

      NameVirtualHost 127.0.0.1

oraz zmodyfikowałem sekcje vHostów w taki oto sposób :

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

Mimo iż jasne dla mnie było, że dyrektywa “NameVirtualHost” powinna się znajdywać w konfiguracji serwera Apache, było bardzo niełatwo wpaść na to, że to właśnie jej brakuje. Wciąż mnie zastanawia, czy jest to brak występujący tylko w dystrybucji SUSE10.2, czy może standardowo w Apache 2 nie ma jej. Z kolei zmiana znaku “gwiazdki” (*) na IP localhosta (127.0.0.1) była rzeczą oczywistą.

Jeśli więc napotkasz problem z ostrzeżeniem takim jak wyżej, mam nadzieję iż moja metoda okaże się pomocna.

Pozdrawiam



VirtualHosts nightmare on SUSE

Opublikowane jako: Apache — Tags: , — Kubek Bartosz @ 23:36

I’d like to share with time consuming problem I had last days with vHosts on Apache2 on openSuse linux. Maybe my solution will be helpful for someone, cause believe me, it’s was not easy to find solution (especially using “tries and faults” method).

So my point was to create and successful run few vHosts on my newly settled up Apache2 server. So I’ve created this vHost directives in /etc/apache2/vhosts.d/vhosts.conf :

   <virtualhost *:80>
      ServerAdmin webmaster@somedomain.com
      DocumentRoot /srv/www/somedomain
      ServerName www.somedomain.com
      ServerAlias somedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@elsedomain.com
      DocumentRoot /srv/www/elsedomain
      ServerName www.elsedomain.com
      ServerAlias elsedomain.com
   </virtualhost>
   <virtualhost *:80>
      ServerAdmin webmaster@otherdomain.com
      DocumentRoot /srv/www/otherdomain
      ServerName www.otherdomain.com
      ServerAlias otherdomain.com
   </virtualhost>

After this, I had to also put new statements into /etc/hosts :

   127.0.0.1     www.somedomain.com
   127.0.0.1     somedomain.com
   127.0.0.1     www.elsedomain.com
   127.0.0.1     elsedomain.com
   127.0.0.1     www.otherdomain.com
   127.0.0.1     otherdomain.com

That’s all. Then I’ve restart apache service, by:

   apache2ctl restart

and here’s the result (and the problem itself) :

   [Wed Jul 25 21:42:59 2007]
      [warn] _default_ VirtualHost overlap on port 80, the first has precedence

What does it mean? The first vHost directive was treat as default one, and somehow every second vHost directive was in conflict with the default one. The The result of this conflict was, that after calling conflicted (means not the default ones) host name URL in browser (”elsedomain.com”, “otherdomain.com”) I got the content (main page) of the default host: “somedomain.com”.

So I hope the problem is clear. And here is what also didn’t work out:
* changing vHosts directive to:

   <virtualhost *:*>
      [...]
   </virtualhost>

* changing vHosts directive to:

   <virtualhost 127.0.0.1:*>
      [...]
   </virtualhost>

* changing vHosts directive to:

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

* changing IP address in /etc/hosts to 127.0.0.2 and vHosts directive to:

   <virtualhost 127.0.0.2:80>
      [...]
   </virtualhost>

What does really help was something else. I’ve to add new line in the top of my vhosts.conf file:

      NameVirtualHost 127.0.0.1

and modify all vHosts sections this way:

   <virtualhost 127.0.0.1:80>
      [...]
   </virtualhost>

It was clear for me that “NameVirtualHost” should be there somewhere. Nevertheless, was very hard to find out that for default in Apache2 (or at least in his SUSE10.2 distribution) this directive is gone for default. Changing ‘*’ mark to localhost IP address (127.0.0.1) goes without saying.

So if You have problem with this warning above I’ve notice, my method should be helpful for You.

Greets



Oparte na WordPress