Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] .htaccess Apache 1.3 z FCGI
r4nd4ll
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


Witam,
Mam problem z uruchomieniem Zend Framework na moim hostingu.
Otóż jak wiadomo, w ZF wszystkie żądania powinny być kierowany na bootstrapp'a. Tak też miałem. Lokalnie wszystko działało. Problemy zaczęły się, gdy chciałem wrzucić swój serwis na serwer..
Ostatnia moja konfiguracja .htaccess:
CODE
RewriteEngine On
RewriteBase /
RewriteRule .* index.php [L]

Kombinowałem jak tylko umiałem i w zależności od moich próbnych konfiguracji efekty były następujące:
albo Not-found
albo błąd 500 Internal Server Error
albo efekt był taki, że żądanie zostało przekierowane faktycznie na index.php, ale nie został odpalony żaden kontroler, ani akcja! Jedynie w pasku adresu pojawiało się odpowiedni adres, natomiast ładowana strona, to wciąż była strona główna.

Napisałem do administratorów serwera i otrzymałem odpowiedź, że na serwerze jest zainstalowany Apache 1.3 z PHP w trybie Fast CGI i to właśnie pod niego trzeba pisać swoje regułki .htaccess. Jednak już konkretniejszej odpowiedzi nie otrzymałem. Szukałem na ten temat, przeglądałem dokumentację Apache 1.3 jednak nie udało mi się znaleźć nic co by mi pomogło w tej sytuacji sad.gif
Mało tego, na drugiej subdomenie na tym samym serwerze, jest odpalony mod_rewrite (tylko, że dla aplikacji napisanej strukturalnie) i działa bez problemu! Bez konieczności pisania żadnych dziwnych reguł. Czyli to co mówią admini trochę wydaje mi się w tym momencie już kitem..
Pomyślałem, że może ktoś spotkał się tutaj z podobnym problemem i mógłby naprowadzić mnie na rozwiązanie tego, bo na adminów raczej chyba liczyć nie mogę.. Byłbym bardzo wdzięczny za jakąś podpowiedź, bo mi już ręce opadają z tym, siedzę kilka dni i nic nie potrafię już wymyśleć sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Regułki się nie zmieniają. Masz je w dokumentacji ZF. Poza tym jeśli szczególnie nie skopałeś projektu (linki) to działa również przez /index.php/ - ZF niczego nie narzuca, przepisywanie to tylko bajer.


--------------------
Go to the top of the page
+Quote Post
r4nd4ll
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


Tak też myślałem. Więc co może być przyczyną takiego stanu rzeczy jak wyżej opisałem?
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


W twojej regule. Jak mówiłem masz to napisane w dokumentacji.


--------------------
Go to the top of the page
+Quote Post
r4nd4ll
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


Jedna reguła z dokumentacji:
Cytat
RewriteEngine on
RewriteRule !.(js|ico|gif|jpg|png|css|html)$ index.php

Efekt:
Cytat
Additionally, a 500 Internal Server Error
error was encountered while trying to use an ErrorDocument to handle the request.


I druga reguła z dokumentacji:
Cytat
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Efekt? - taki jak napisałem wcześniej - tylko w adresie odpowiedni link, strona się przeładowuje, ale wciąż wyświetlana strona główna..

Ten post edytował r4nd4ll 28.06.2009, 09:21:41
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A jak działa bez przepisywania (wskaż na adres/index.php)? Pokaż kod.


--------------------
Go to the top of the page
+Quote Post
r4nd4ll
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


Z wyłączonym rewrite, ładuje się tylko plik index.php, każde inne żądanie oczywiście nie znajduje strony.
Ale który dokładnie fragment kodu masz na myśli?
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Dlaczego oczywiście? ZF akceptuje notację adres/index.php/modul/kontroler/akcja . Rewrite jest miłym dla oka dodatkiem. Kod. Nie wiem, zaczynając od index.php. O ile oczywiście działa bez rewrite.


--------------------
Go to the top of the page
+Quote Post
r4nd4ll
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


  1. <?php
  2. error_reporting(E_ALL|E_STRICT);
  3. date_default_timezone_set('Europe/Warsaw');
  4. $homeDir = '/tu_sciezka_poczynajac_od_home/';
  5. set_include_path('.' . PATH_SEPARATOR . $homeDir . 'library' . PATH_SEPARATOR . get_include_path());
  6.  
  7. require_once 'Zend/Loader/Autoloader.php';
  8. Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
  9.  
  10. Zend_Session::start();
  11.  
  12. $config = new Zend_Config_Ini($homeDir . 'application/config.ini','general');
  13. set_include_path('.' . PATH_SEPARATOR . $config->path->models . PATH_SEPARATOR . get_include_path());
  14.  
  15. Zend_Registry::set('config', $config);
  16. Zend_Registry::set('dbconfig', new Zend_Config_Ini($homeDir . 'application/config.ini','dbtables'));
  17. Zend_Registry::set('db', Db::initDb($config));
  18. Zend_Registry::set('auth', Zend_Auth::getInstance());    
  19.  
  20. $frontController = Zend_Controller_Front::getInstance();
  21. $frontController->throwExceptions(true);
  22. $frontController->setBaseUrl('http://adres_www/');
  23. $frontController->setControllerDirectory($homeDir . 'application/controllers');
  24.  
  25. $frontController->dispatch();
  26. ?>
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Spróbuj bez setBaseUrl (jest automatycznie wykrywany), $homeDir możesz odnaleźć przez realpath(dirname(__FILE__)). Gdy do jakiej akcji się odwołujesz pojawia się błąd? Jest poprawnie zapisana? I nie odpowiedziałeś czy działa ci bez rewrite.


--------------------
Go to the top of the page
+Quote Post
r4nd4ll
post
Post #11





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


Po stokroć dzięki Ci kolego! smile.gif
Wyrzucenie setBaseUrl załatwiło sprawę i wszystko działa jak należy smile.gif
A ja bym się głowił dalej z regułami, .htaccessem itp winksmiley.jpg
Jeszcze raz wielkie dzięki smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:53