![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Grajewo Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Na wirtualnej maszynie postawiłem sobie Apacha z php5 i MySQL i próbuję przenieść na niego kod mojej aplikacji z localhosta pod Winodwsem. Jednak się sypie. Korzystam w ModRewrite do przekierowania wszystkich adresów poza pewnymi katalogami na index.php:
jednak po wywołaniu adresów typu http://192.168.1.160/collector/item/1 wyświetla się pusta strona natomiast na innych podstronach wywołuje mi błędy w funcjach, które pod Win nie sprawiają, żadnych problemów, dla przykładu:
Nie jestem zbyt obeznany z linuxem, to moje początki z tym systemem. Wydaje mi się że mod_rewrite jest uruchomiony, ale 100% pewności nie mam. Poza tym pozostałe błędy nie są chyba tym wywołane. Jeśli ktoś ma pomysł dlaczego tak się dzieje, co mogłem pominąć w instalacji albo czego brakuje w configach, byłbym bardzo wdzięczny za sugestie. pozdrawiam Tomek. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Kildyt -> mod_rewrite jest częścią źródeł Apache'a, więc ciężko, żeby go nie było... co najwyżej może być wyłączony, ale jest obecny w "standardowym" Apache. Xampp nie jest nikomu do szczęścia potrzebny, zwłaszcza pod Linuksem (a tego dotyczy temat). Czysty PHP też ma GD i się nie chwali, a instalacja phpMyAdmina to kwestia rozpakowania archiwum i zmiany nazwy jednego pliku... nic trudnego.
Wracając do tematu... pod systemami uniksowymi musisz patrzeć na kilka istotnych różnic: 1. W ścieżkach występują slashe i powinno się podczas programowania używać tylko ich. 2. Żadnych liter dysków. 3. Systemy uniksowe rozróżniają wielkość liter! Request.php oraz request.php to dwa różne pliki. 4. Inny system uprawnień. 5. Skrypt PHP będzie Ci się wykonywać z prawami jakiegoś użytkownika. Jeśli PHP doinstalowany jest do Apache'a jako moduł serwera, będzie on pracować na prawach serwera, a nie Twoich i objawi się to przy próbie stworzenia jakiegoś pliku przy PHP. Konieczne jest także nadanie odpowiednio dużych uprawnień, ale widzę, że z tym sobie poradziłeś na tyle, by skrypt zaczął się wykonywać. Rozwiązaniem jest FastCGI, ale pod Apache jest to cholernie ciężkie do skonfigurowania (wina leży w module mod_fastcgi, który jest jakiś lewy - próbowałem już co najmniej kilka razy i nigdy nie działało, tymczasem w Lighttpd wychodzi za pierwszym razem). Kwestie systemu plików nie tłumaczą do końca, dlaczego dostajesz błąd wywoływania metody na nieistniejącym obiekcie. W normalnym skrypcie to nie powinno mieć miejsca. Gdyby był problem z wczytaniem jakiegoś pliku, dostałbyś albo Fatal error z informacją o braku dostępu, albo jakieś ostrzeżenia, że nie można otworzyć pliku. Problem moim zdaniem leży więc gdzieś w tym, że Twój skrypt zawiera jakieś dziwne instrukcje, które bazują dość mocno na jakiejś właściwości Windowsa. Przez brak odpowiedniej obsługi błędów albo pominięcie jakiegoś warunku w warunkach uniksowych nie tworzy on jakiegoś obiektu i efekt widać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 23:11 |