[+] apache 2.2.3 i mod_rewrite

Konfiguracja serwerów, usług, itp.
insert
Posty: 4
Rejestracja: 23 sierpnia 2008, 11:14

[+] apache 2.2.3 i mod_rewrite

Post autor: insert »

Witajcie.
Mój plik .htaccess jest dobry - działał na innym serwerze, swoją drogą - prawie na takim samym oprogramowaniu (Debian 4.0 Etch + Apache 2.2). Na moim prywatnym serwerze jednak nie chce działać.

Ku memu zdumieniu w katalogu /etc/apache2/ znajduje się plik apache2.conf i httpd.conf. Lecz ten drugi jest zupełnie pusty. W apache2.conf zmieniłem 2 dyrektywy AllowOverride (z None na All) oraz Deny from all na Allow from all. Nie działa. Mod_rewrite jest uruchomiony, przynajmniej tak mówi mi phpinfo();.

Macie może jakiś pomysł?
chyl-o
Junior Member
Posty: 621
Rejestracja: 24 maja 2006, 21:06
Lokalizacja: Lublin

Post autor: chyl-o »

Vhost wskazujący na Twój katalog gdzie masz stornę(htaccess) ustaw na allow override taki jak Ci jest potrzebny. httpd.conf jest pusty ponieważ wszystkie domyślne konfiguracje są w apache2.conf. httpd.conf służy do globalnych skastumizowanych ustawień sewrewra. Jeśli a2enmod rewrite daje komunikat o załadowanym module to tylko konfiguracja vhosta Ci pozostaje. Nie bardzo pchaj się do zmiany wartości w apache2.conf, szczególnie jeśli chodzi o dostęp do htaccess plików i głównych katalogów serwera.
insert
Posty: 4
Rejestracja: 23 sierpnia 2008, 11:14

Post autor: insert »

Debian pisze:Vhost wskazujący na Twój katalog gdzie masz stornę(htaccess) ustaw na allow override taki jak Ci jest potrzebny.
To nie jest do końca taka prosta sprawa - na serwerze chcę mieć dostęp do .htaccess w lokalizacji /var/www i pochodnych, w skrócie: /var/www/*
Co muszę zrobić, by umożliwić działanie mod_rewrite?
Debian pisze:httpd.conf jest pusty ponieważ wszystkie domyślne konfiguracje są w apache2.conf. httpd.conf służy do globalnych skastumizowanych ustawień sewrewra.
Nie wiedziałem, podobno kastumizowanie przez httpd.conf niebawem w ogóle ma zostać wyrzucone z apache...
Debian pisze:Jeśli a2enmod rewrite daje komunikat o załadowanym module to tylko konfiguracja vhosta Ci pozostaje.
Tak, wyrzuca komunikat o tym, że ten moduł jest obecnie załadowany.
Vhosta? Ok, nawet jeśli - mam dodać instrukcję <VirtualHost> w apache2.conf, zawierającą wszystkie typowe dla siebie właściwości + linijkę np. AllowOverride All?
hmt
Posty: 13
Rejestracja: 22 sierpnia 2008, 10:35

Post autor: hmt »

Witam!

Mam identyczny problem. Zainstalowałem apache + php + mysql przez apt-get i wszystko niby działa poza:

- nie działa mod_rewrite (identycznie jak u autora tego wątku)
- nie działa PEAR
- linii koment linuxa polecenie php -v i podobne dotyczące PHP nie działają

Pozdrawiam
insert
Posty: 4
Rejestracja: 23 sierpnia 2008, 11:14

Post autor: insert »

Tak, a co najciekawsze, to nie wyrzuca internalki 500... Jakby pliku .htaccess nie było albo serwer go nie widział.
hmt
Posty: 13
Rejestracja: 22 sierpnia 2008, 10:35

Post autor: hmt »

Witam ponownie!

Rozwiązałem mój problem z nie do konca prawidłowo działającym serwerem apache + php + mysql. Wyjaśnię na czym polegał mój błąd, może komus się przyda.

Za pierwszym razem zainstalowałem potrzebne oprogramowanie według opisu dotyczącego dystrybucji ubuntu. Serwer działał ale tak jak napisałem w poprzednim poście, nie można było na nim prawidłowo pracować.

Wyrzuciłem większość zainstalowanego wcześniej oprogramowania. Następnie przeprowadziłem weryfikację mojego debiana z konfiguracją w opisie na stronie http://www.howtoforge.com/perfect_setup_debian_etch . Przy okazji sprecyzowałem i poprawnie ustawiłem sieć lokalną. Następnie zainstalowałem całe potrzebne oprogramowanie według wyżej wymienionego opisu. Niestety popełniłem kilka błędów konfiguracyjnych, dlatego też musiałem rozpoczynać instalację wybranych pakietów od nowa. Przypominam że usuwanie pakietów należy wykonywać z opcją --purge dzięki czemu pozbędziemy się większości starych plików konfiguracyjnych. W pliku /etc/apache2/apache.conf nie musimy wykonywać żadnym zmian. Także plik httpd.conf zostaje domyślnie pusty. Jeżeli naszym katalogiem bazowym dla stron internetowych jest /var/www to zmianę musimy wprowadzić do pliku /etc/apache2/sites-available/default. W pliku tym w sekcji <Directory /var/www> zmieniamy wartość opcji AllowOverride None na AllowOverride All.

Oczywiście należy pamiętać o restarcie serwera apache. Po restarcie mod_rewrite powinien juz działać. Oczywiście warto pamiętać o tym aby nasze pliki .htaccess były prawidłowo napisane ale to juz inna bajka ;)

Pozdrawiam
insert
Posty: 4
Rejestracja: 23 sierpnia 2008, 11:14

Post autor: insert »

Idealnie. Dzięki wielkie za pomoc, fajnie, że odgrzebałeś ten tutorial i doszedłeś o co chodziło. Z pewnością przyda się wielu pokoleniom! :)
ODPOWIEDZ