Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-05-31 14:23:12

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Apache2 na Etch, mod_rewrite, konfiguracja

Apache2, php5, Mysql zainstalowane z repozytoriów Etcha. Zrobiłem link symboliczny w mods-enabled do mods-available/rewrite.load. Phpinfo w Loaded Modules pokazuje mod_rewrite. W /sites-enabled/000default wstawiam ustawienia wg porad znalezionych w sieci, ostatnie poniżej:

Kod:

NameVirtualHost *
<VirtualHost *>
    ServerAdmin webmaster@localhost
    
    DocumentRoot /var/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                RedirectMatch ^/$ /apache2-default/
        RewriteEngine on
                AllowOverride all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

niestety, pomimo wielu testów z ustawieniami z różnych porad, nie udało mi się uzyskać translacji adresów.
Koledzy wołają na piwo, a ja siedzę, już tydzień i goglam i testuję. Już się zapętlam, boję się, że żona zrobi twardy reset.
DUG ostatnim moim ratunkiem!

Offline

 

#2  2008-05-31 15:17:31

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Ale co ty właściwie chcesz osiągnąć, jaką translacje adresów? Z tego co widać w configu to masz tylko "RewriteEngine On", powinno działać, ale gdzie jakieś reguły? Nie wiadomo co chcesz i jak widać mod_rewrite jest tylko włączony, ale nic nie zrobi jak mu nie napiszesz czego chcesz.

Ostatnio edytowany przez kamikaze (2008-05-31 15:17:52)

Offline

 

#3  2008-05-31 17:21:29

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

kamikaze chcę skonfigurować apache tak aby skrypt zamieszczony poniżej informował że: Mod_Rewrite jest zainstalowany na tym serwerze. Zamieszczam ten znany skrypt,  ale mam nadzieję że nie ma w nim błędu.

Kod:

<?

if (!empty($sprawdz_mod_rewrite)) {
    $rewrite_result = 1;
} else {
    $rewrite_result = 0;
}
if ($rewrite_result == 1) {
    echo 'Mod_Rewrite jest zainstalowany na tym serwerze';
} else {
    echo 'Mod_Rewrite nie jest zainstalowany na tym serwerze 
lub jest błędnie skonfigurowany';
}
?>

htaccess

Kod:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(test.php)$ test.php?sprawdz_mod_rewrite=1 [QSA]
RewriteRule ^$ test.php?sprawdz_mod_rewrite=1 [QSA]
</IfModule>

Gdzie i jakie reguły mam wpisać?

Offline

 

#4  2008-05-31 18:51:21

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Apache2 na Etch, mod_rewrite, konfiguracja

W skrypcie PHP masz błąd, no chyba że masz włączone register_globals w php.ini, ale wątpie. Więc musisz dodać przed wszystkim co jest w skrypcie linijke:

Kod:

$sprawdz_mod_rewrite = $_GET['sprawdz_mod_rewrite'];

Offline

 

#5  2008-05-31 20:04:44

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Po dodaniu linii na początku skryptu, przeglądarka wyświetla że mod_rewrite jest zainstalowany!  Faktycznie w php.ini było register_globals=Off, zmieniłem dla doświadczenia na On i skrypt też informuje że mod_rewrite zainstalowany.
Wszystko fajnie, ale ja tę zabawę robię nie dla tego skryptu, ale dla nieco innych celów.
Kilka tygodni temu bratanica poprosila mnie o poprawienie kilku błędów na firmowym serwisie. Poprawiłem korzystając z panelu administracyjnego serwisu i udostępnionego usera ftp a wtedy padła propozycja nieco glębszych zmian. Serwis na jakimś frameworku AJAX z szablonami Smarty! Dla mnie czarna magia, ale postanowilem spróbować. Dla rozeznania i testów serwisu postawiłem wirtualnego Etcha z serwerem www, ściągnąłem serwis, zaimportowałem bazę i staram się to uruchomić. Niestety w serwisie dalej translacja adresów nie działa, niezależnie czy register_globals włączone cy wyłączone!? (wpisując adresy ktore są w htaccess strony się wyświetlają) Przyszło do glowy trochę późno że zapuszczę phpinfo na serwerze gdzie serwis jest hostingowany, może to coś podpowie?
Serdecznie dziękuje i proszę o  dalsze porady.

Offline

 

#6  2008-05-31 20:29:06

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Opcja register_globals lepiej żeby była na off, i na pewno nie ma ona nic wspólnego działaniem mod_rewrite. Ciekawe z jakiego frameworka PHP korzysta serwis, jeśli używany jest jakiś framework do Ajax-a raczej nie powinien mieć wpływu na adresy, Ajax jest implementowany w Java Script. Niektóre frameworki PHP używają wbudowanego mechanizmu odwzorowywania adresów url. Ale może też być tak, że serwis korzysta z mod_rewrite. Jeśli korzysta z Mod_rewrite powinieneś skopiować także reguły przepisywania adresów url, reguły to to co jak mniemam sam sobie napisałeś do testów w pliku htaccess, linijki RewriteRule .... Popatrz czy na serwerze są takie pliki, lub konfiguracja mod_rewrite jest gdzieś w konfiguracji Apache. Jeśli grzebiesz na serwerze przez klienta FTP, który nie pokazuje ukrytych plików może być problem ze skopiowaniem plików htacces, które są plikami ukrytymi. Jeśli to działało z mod_rewrite na serwerze to jeśli zdołasz uruchomić te reguły u siebie powinno zacząć działać.

Offline

 

#7  2008-05-31 21:41:28

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Ja po prostu wrzuciłem .htaccess z katalogu głównego serwisu do katalogu głownego serwisu na localhoscie, pliki .htaccess w niektórych podkatalogach skopiowalem wraz z podkatalogami, potem ustawiłem uprawnienia dla plików i podkatalogów na 755, wiem że za wysokie ale to na localhoscie. Właśnie po pliku .htaccess w glównym katalogu zorientowałem się że serwis wymaga mod_rewrite.
Z Twoich wypowiedzi zorientowałem się że reguły z htaccess można zamieścić w pliku konfiguracyjnym apacha?
Załączam htacces, może to coś wyjaśni?
htacces:

Kod:

DirectoryIndex index.php index.html

Options +FollowSymLinks 
RewriteEngine On

RewriteRule ^home.html$ /index.php [NC]
RewriteRule ^about.html$ /index.php?com=about [NC]
RewriteRule ^finance.html$ /index.php?com=finance [NC]
RewriteRule ^faq.html$ /index.php?com=faq [NC]
RewriteRule ^contact.html$ /index.php?com=contact [NC]
RewriteRule ^partners.html$ /index.php?com=partners [NC]

RewriteRule ^buy.html$ /index.php?com=buy [NC]

RewriteRule ^buy/apartments.html$ /index.php?com=buy&top=apartments [NC]
RewriteRule ^buy/apartments_([0-9]{1,4}).html$ /index.php?com=buy&top=apartments&cat=$1 [NC]
RewriteRule ^buy/apartments_([0-9]{1,4})_([0-9]{1,3}).html$ /index.php?com=buy&top=apartments&cat=$1&page=$2 [NC]

RewriteRule ^buy/developments.html$ /index.php?com=buy&top=developments [NC]
RewriteRule ^buy/developments_([0-9]{1,5}).html$ /index.php?com=buy&top=developments&oid=$1 [NC]

RewriteRule ^buy/(land|commercial).html$ /index.php?com=buy&top=$1 [NC]
RewriteRule ^buy/(land|commercial)_([0-9]{1,4}).html$ /index.php?com=buy&top=$1&oid=$2 [NC]

RewriteRule ^rent.html$ /index.php?com=rent [NC]
RewriteRule ^rent_([0-9]{1,4}).html$ /index.php?com=rent&cat=$1&oid=0 [NC]
RewriteRule ^rent_([0-9]{1,4})_([0-9]{1,4}).html$ /index.php?com=rent&cat=$1&page=$2 [NC]

RewriteRule ^property_managment.html$ /index.php?com=property [NC]
RewriteRule ^property_managment_([0-9]{1,4}).html$ /index.php?com=property&cat=$1&oid=0 [NC]
RewriteRule ^property_managment_([0-9]{1,4})_([0-9]{1,4}).html$ /index.php?com=property&cat=$1&oid=$2 [NC]

RewriteRule ^land_development.html$ /index.php?com=land [NC]
RewriteRule ^land_development_([0-9]{1,4}).html$ /index.php?com=land&cat=$1&oid=0 [NC]
RewriteRule ^land_development_([0-9]{1,4})_([0-9]{1,4}).html$ /index.php?com=land&cat=$1&oid=$2 [NC]

RewriteRule ^invest_in_europe.html$ /index.php?com=invest [NC]
RewriteRule ^invest_in_europe_([0-9]{1,4}).html$ /index.php?com=invest&cat=$1&oid=0 [NC]
RewriteRule ^invest_in_europe_([0-9]{1,4})_([0-9]{1,4}).html$ /index.php?com=invest&cat=$1&oid=$2 [NC]

RewriteRule ^print_([0-9]{1,3}).html$ /index.php?com=print&oid=$1 [NC]
RewriteRule ^send_([0-9]{1,3}).html$ /index.php?com=send&oid=$1 [NC]
RewriteRule ^save_([0-9]{1,3}).html$ /index.php?com=save&oid=$1 [NC]

Offline

 

#8  2008-05-31 22:03:26

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Chyba wiem co nie tak, reguły są ok, skoro działały na serwerze muszą też na localhoście. Ale z tego co masz w konfiguracji Apache, serwer nie pozwala na użycie plików .htaccess. Zmień "AllowOverride None" na "AllowOverride all", powinno pomóc.

Offline

 

#9  2008-05-31 23:39:45

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Zmieniłem na "AllowOverride all" pod linią FollowSymLinks i niestety nic się nie zmieniło. Czy to ma znaczenie że serwis wrzuciłem do podkatalogu /var/www/podkatalog/ a nie do //var/www/ ?

Offline

 

#10  2008-06-01 11:18:44

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Zmień wszędzie w pliku /sites-enabled/000default i zobacz wtedy.

Offline

 

#11  2008-06-01 17:36:19

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Zmieniłem wszędzie na AllowOverride all w 000default:
1. strona w /var/www/folder/ po wyświetleniu startowej, po naciśnięciu na jakikolwiek odnośnik: nie ma takiego adresu...
2. strona w /var/www/apache2-default/; wyświetla startową ale w pasku adresu przeglądarki: http://localhost/apache2-default/?sprawdz_mod_rewrite=1  dopisuje?
3. Skrypt testowy mod_rewrite informuje, że mod rewrite zainstalowane!?
Albo to mod_rewrite jest nieodpowiednie dla tej strony? albo jest ona specjalnie zabezpieczona!? na serwerze hostingowym jest kilka pustych plików w katalogu głównym serwisu i w /public_html. Uznalem je za nieaktulne śmieci. muszę je przeglądnąć.
kamikaze, czy te informacje może coś wyjaśniają?

Offline

 

#12  2008-06-01 19:42:09

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Kamikaze serdecznie dziękuję.
Przeglądnąłem te pliki i dochodzę do wniosku że sprawa jest poważniejsza i wychodzi poza zakres tematyczny tego forum. Prawdopodobnie zrezygnuję z zabawy tym serwisem. To mnie wysoko przerasta. Ale zalączam odczytaną treść plików które dotąd zlekceważylem:
Pliki przed katalogiem głównym serwisu /public_html:

Plik ftpchk3.php;
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "OK";

Plik ftpchk3.pl; pusty.

Plik google0f4567b.......html; pusty? binarny?.

Pliki w /public_html:

ftpchk3.php;  <? echo("OK"); ?>

ftpchk3.pl konfiguruje smtp mail

Plik google0f4567b.........html

A może jednak???

Offline

 

#13  2008-06-01 20:22:02

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Jeśli strona jest w w /var/www/folder/ zrób oddzielną virtualkę z RootDir /var/www/folder/ , bo w twoim przypadku reguły mod_rewrite stały się niepoprawne. Teraz urle do strony wyglądają http://localhost/folder/... , co nie zgadza się z regułami. Więc masz trzy wyjścia albo zrobisz tą virtualkę jak napisałem wyżej co będzie chyba najlepsze, albo jeśli tego nie potrafisz wrzucisz wszystko do katalogu /var/www i wywalisz "RedirectMatch ^/$ /apache2-default/"  z domyślnej virtualki, albo dodasz  "/folder/" do każdej reguły mod_rewrite co dla przykładu by wyglądało tak:

Kod:

RewriteRule ^folder/home.html$ /folder/index.php [NC]

Offline

 

#14  2008-06-03 11:35:49

  wolfvilk - Użytkownik

wolfvilk
Użytkownik
Skąd: Jaworzno
Zarejestrowany: 2006-12-19

Re: Apache2 na Etch, mod_rewrite, konfiguracja

Działa! Jak na razie zrobiłem wg trzeciego sposobu opisanego przez kamikaze. Z tym że dla serwisu w /var/www/katalog/ w moim przypadku dziala cod

Kod:

RewriteRule ^home.html$ /katalog/index.php [NC]

.
Dziekuję.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)