Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: WebServ i funkcja dl() - Problemy...
Forum PHP.pl > Forum > Serwery WWW
Skidbladnir
Na początku chciałbym się przywitać, z racji, iż to mój pierwszy post, więc witam winksmiley.jpg Ok, co do problemu chodzi o to, że zainstalowałem sobie WebServ'a, utworzyłem kilka pod-kont i na jedno włożyłem skompilowany moduł .so, który chce uruchomić za pomocą funkcji dl(), mam już skrypt w PHP z taktowną funkcją, ale po jego uruchomieniu wyrzuca mi błąd:
Kod
Warning: dl() [function.dl]: Not supported in multithreaded Web servers - use extension=test.so in your php.ini in D:\WebServ\httpd-users\xxxxx\p3.php on line 3

Wcześniej wyrzucało mi błąd taki błąd:
Kod
Warning: dl() [function.dl]: Dynamically loaded extensions aren't enabled in D:\WebServ\httpd-users\xxxxx\p3.php on line 3

Odblokowałem, więc dl() w php.ini.
Czyli od razu mówię, że funkcja nie jest jakkolwiek przeze mnie zablokowana, po błędzie myślałem, że WebServ jest po prostu tym czymś "multithreaded" i blokuje sam sobą, więc zmieniłem go na Krasnal Serv (może oba to te multi~~?) lecz tam było to samo... Ktoś wie co mam zrobić by móc używać dl()? Mile widziane też jakieś odpowiedniki dl().
Z góry thx winksmiley.jpg
Pozdro
wipo
Multithreated to wielowątkowość. Możliwe że masz skompilowany moduł na jakiejś starej maszynie (ten który chcesz załadować) i to on tego nie odsługuje.
l0ud
Pamiętaj, że możesz wczytać tylko rozszerzenie które już istnieje w folderze rozszerzeń dla php, a np. nie jest dodane w konfiguracji php. Pod windowsem możesz wczytać tylko biblioteki .dll (do co dałeś wyżej nie miało prawa działać winksmiley.jpg ) ale lepiej daj sobie z tym spokój, pewnie na 90% serwerów nie będzie to działać...
Skidbladnir
Cytat(l0ud @ 25.06.2008, 10:34:48 ) *
Pamiętaj, że możesz wczytać tylko rozszerzenie które już istnieje w folderze rozszerzeń dla php, a np. nie jest dodane w konfiguracji php.

Na to wpadłem i do "D:\WebServ\apache2\modules" dodałem mój moduł .so, a w php.ini wkleiłem "extension=test.so" (pod taką nazwą widnieje plik), niestety to nic nie dało...
Cytat(l0ud @ 25.06.2008, 10:34:48 ) *
Pod windowsem możesz wczytać tylko biblioteki .dll (do co dałeś wyżej nie miało prawa działać winksmiley.jpg ) ale lepiej daj sobie z tym spokój, pewnie na 90% serwerów nie będzie to działać...

Właściwie coś o tym czytałem, ale nie sadziłem, że tam czytanie ze zrozumieniem jest wskazane... W końcu mam klienta WebServa, uruchomiony na nim Apache obsługuje PHP, wczytywany moduł uruchamiam za pomocą skryptu w php i wszystko dzieje się za pomocą WebServa, a tu coś czytam, że w Windowsie .so nie ma prawa działać... Ale ok, jeżeli faktycznie Windows sprawia problemy to spróbuje na Linux'ie, w końcu nie jest mi to potrzebne na długo, chce po prostu umieć to wszystko szybko uruchomić i sprawdzić poprawność działania, bo muszę umieć sprawdzić w przeciągu darmowych dni na jakimś serwerze, czy taktowny mi odpowiada i to wszystko obsługuje, tylko w takim razie wszystkie serwery stoją na Linux'ach, by nie mieć takich ograniczeń?
Cytat(wipo @ 25.06.2008, 06:13:38 ) *
Multithreated to wielowątkowość. Możliwe że masz skompilowany moduł na jakiejś starej maszynie (ten który chcesz załadować) i to on tego nie odsługuje.

Definicje "multithreated" jako "wielowątkowość" już znalazłem, ale właściwie nic mi to nie mówi... Rozwiniesz co to jest? I jak kompilacja na starej maszynie? Chodzi o starą wersje Linux'a? Bo właściwie do kompilacji tego modułu z .c nie wiem jakie zostały wykorzystane pliki nagłówkowe PHP, jakiej wersji ect., bo był to stary Live CD jakby bez dystrybucji... Czy to może wpłynąć na obsługę tego multi~~ i jest możliwość, że nie jest to zależne od Windowsa? Wytłumaczysz mi to jakoś bardziej dokładnie?
l0ud
Skidbladnir, ale funkcja dl() służy do ładowania rozszerzeń PHP, a nie apache'a! 2 zupełnie inne rzeczy...
.radex
Cytat
(...)Linux'ie(...)Linux'ach(...) Linux'a(...)


Linuksie, Linuksach, Linuksa

Cytat
Definicje "multithreated" jako "wielowątkowość" już znalazłem, ale właściwie nic mi to nie mówi... Rozwiniesz co to jest?


http://pl.wikipedia.org/wiki/Wielowątkowość
Skidbladnir
Cytat(radex_p @ 27.06.2008, 14:37:25 ) *
Cytat
(...)Linux'ie(...)Linux'ach(...) Linux'a(...)


Linuksie, Linuksach, Linuksa

Dzięki, ale wole angielską odmianę, lubię też apostrofy (') i tak pisze winksmiley.jpg
Cytat(radex_p @ 27.06.2008, 14:37:25 ) *
Cytat
Definicje "multithreated" jako "wielowątkowość" już znalazłem, ale właściwie nic mi to nie mówi... Rozwiniesz co to jest?


http://pl.wikipedia.org/wiki/Wielowątkowość

O, nie pomyślałem o wpisaniu do polskiej Wiki "wielowątkowość", wpisałem tylko "multithreated", ale nic nie było, powinni wspomnieć o angielskim odpowiedniku... Bądź co bądź, ku mojemu zdziwieniu, poznanie znaczenia wielowątkowości nic mi nie dało, jedynie utwierdziło mnie w przekonaniu, że na Windows'ie nic nie zdziałam... W takim razie wszystkie serwery stoją na Linux'ach?
kosmos
Poszukaj ofert pracy a zobaczysz czego wymagają np. pracodawcy smile.gif

Większość stoi na Linuksach, ale pracodawcy szukają również pracowników ze znajomością MS server xxxx itd. Więc mi osobiście wydaje się że linuksy to jakieś 87% serwerów.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.