Tagi na forum.

C# 1456 XML 282
SQL 1192 sieci 268
ASP.NET 785 IIS 262
Windows 726 C++ 255
web 608 Html 218
Visual Studio 515 Information Technology 193
SQL Server 425 MSDN 167

pokaż wszystkie tagi na forum

PHP na IIS 7

brzegator27 2011-02-04 14:43:49
0
avatar
 
 
Witam :)
 
Kiedyś próbowałem uruchomić(jeśli można to tak nazwać?) PHP na IIS7, jednak mi się nie udało. Zrezygnowałem w tedy z dalszych prób, ponieważ nie miałem czasu. Teraz go mam, a ponad to jest mi to bardziej potrzebne więc ponownie próbuję uruchomić PHP na IIS7.
 
Jednak cięgle wyskakuje mi błąd:

Błąd HTTP 500.0 — Internal Server Error Funkcji LoadLibraryEx nie można wywołać w filtrze ISAPI „C:\PHP\php5nsapi.dll”

Już trochę kombinowałem jakby to uruchomić, ale bez zmian. :/
 
Dlatego proszę Was bardzo o pomoc w rozwiązaniu problemu. Po prostu już nie wiem co dalej zrobić, a nie chcę czegoś przez przypadek popsuć. :(
 
Mój system operacyjny to Microsoft Windows Vista Business z Service Pack 2, co do IIS7 to jest on chyba w wersji Express, ale nie wiem, w każdym razie mam ten darmowy. ;)
Jeśli trzeba dokładniejszych wyjaśnień co takiego do tej pory kombinowałem to napiszę. ;)
 
Bardzo proszę o pomoc. :)
 
EDIT: Mam jeszcze pytanie, a mianowicie, czy mógłbym teraz zainstalować sobie Apacha, czy nie gryzłby się on z IIS-em?
Edytowano 4 razy. Ostatnio 2011-02-04 14:53:57 przez brzegator27.
tagi: PHP   Windows   Windows Vista


brzegator27  2011-02-05 13:15:30 #1
0
avatar
 
 
Nikt nie umie mi udzielić odpowiedzi? :(
 
Jeszcze raz bardzo proszę o odpowiedź.

Adam Dudzik  2011-02-05 16:03:55 #2
0
avatar
 
 
Ad 1.Dlaczego podpinasz php5nsapi.dll? Zgodnie z dokumentacja jest to moduł dla serwerów Sun/iPlanet/Netscape. Właściwym dla IIS jest php5isapi.dll.
 
Ad 2. Tak, mozesz zainstalować Apacha uwzgledniajac fakt ze oba serwery nie moga dzialac na tym samym porcie (domyslnie 80) - ktoremus musisz przypisac inny.--http://www.blog.dudzik.org.pl/

brzegator27  2011-02-05 16:25:47 #2.1
0
avatar
 
 
No właśnie nie mam nigdzie pliku php5isapi.dll, dlatego spróbowałem podpiąć plik php5nsapi.dll, bo już nie wiedziałem co zrobić :/
 
Może pobrać sobie gdzieś z Internetu dodatkowo plik php5isapi.dll? Może ściągnąłem złą paczkę i dlatego nie mam pliku php5isapi.dll?
 
Dalej proszę o pomoc i dziękuję za dotychczasową odpowiedź. :)

Adam Dudzik  2011-02-05 16:32:38 #2.1.1
0
avatar
 
 
Czyli masz 'świeże' PHP. Już nie ma isapi (od wersji 5.3) - użyj fastcgi--Jeśli pomogłem kliknij co trzeba, jeśli rozwiazałem Twoj problem - analogicznie :)
http://www.blog.dudzik.org.pl/

brzegator27  2011-02-05 18:03:10 #2.1.1.1
0
avatar
 
 
Dobrze, postanowiłem ściągnąć starszą wersję PHP - php-5.2.17-Win32-VC6-x86. Tam był plik php5isapi.dll, więc najpierw przekopiowałem folder na dysk C:\ później zmieniłem rozszerzenie pliku php.dll-recomended na php.dll i zmieniłem jego zawartość, odblokowałem(czyt. odkomentowałem) i dodałem(jeśli trzeba było coś dodać):
open_basedir = "c:\inetpub\wwwroot\phpapps"
fastcgi.impersonate = 1;
cgi.fix_pathinfo=1
cgi.force_redirect = 0
 
Później zmieniłem w IIS w filtrach ISAPI, ścieżkę w filtrze PHP na C:\PHP\php5isapi.dll
Następnie przeszedłem w IIS do zakładki Mapowanie obsługi, gdzie zmieniłem dla typu żądania o nazwie PHP i ścieżce *php w ustawieniach w polu "Wykonywalny:" na C:\PHP\php5isapi.dll
 
I tutaj nie wiem, czy mam dobrze, ponieważ w zakładce Mapowanie obsługi w IIS mam kilka ustawionych żądań dla typu *php, z tym że tylko jedno ma obsługę IsapiModule. Pozostałym pisze(jest ustawione) FastCgiModule. dla tych z FastCgiModule w panelu akcja, znajdującym się z prawej strony ustawiłem "Zablokuj", aby przez przez przypadek nie zostały uruchomione, ponieważ nie powinny być, prawda?
 
No i spróbowałem puścić phpinfo(), i dalej pojawia się ten sam błąd co wcześniej, jaki teraz znów błąd popełniłem? :(
 
Dalej bardzo proszę o pomoc. :)

Adam Dudzik  2011-02-05 20:37:46 #2.1.1.1.1
0
avatar
 
 
Na tym etapie to problemem może być bajzel :) Dlaczego edytujesz opcje cgi gdy chcesz calosc uruchomic na isapi?
 
Jesli zrobie nastepująco: php.ini-recommended do windows jako php.ini. ISAPI Filters->Add: PHP jako Name, executable jako C:\php\php5isapi.dll. Dalej Handler Mappings->Add Script Map: Request Path jako *.php, Executable jako C:\php\php5isapi.dll, Name jako PHP, następnie Default Document->Add: index.php, restart to wszystko działa.
 
Jednak jestem zdania że fakt przejścia na FastCGI powinien Ci dać do myślenia. Instalujesz coś co wymaga ISAPI?
--
Jeśli pomogłem kliknij co trzeba, jeśli rozwiazałem Twoj problem - analogicznie :)
http://www.blog.dudzik.org.pl/

Edytowano 2 razy. Ostatnio 2011-02-05 20:41:23 przez Adam Dudzik.
brzegator27  2011-02-05 23:37:34 #2.1.1.1.1.1
0
avatar
 
 

"Dlaczego edytujesz opcje cgi gdy chcesz calosc uruchomic na isapi?"

A które to są opcje cgi? :) Te w php.ini? W tutorialach na Internecie pokazywali, że trzeba tam coś zmieniać, więc zmieniałem. ;)
 

"Jednak jestem zdania że fakt przejścia na FastCGI powinien Ci dać do myślenia. Instalujesz coś co wymaga ISAPI?"

 
Tzn. nie instaluję chyba niczego co wymaga ISAPI. Rozumiem, że FastCGI będzie lepsze? Jeśli tak to zrobię to z FastCGI, tylko mógłbyś mi powiedzieć czym będzie się różniła instalacja FastCGI, od instalacji ISAPI?
 
Co do Twoich wcześniejszych instrukcji to niestety nie działa to dalej, ale to może dlatego, że mam w zakładce mapowanie obsługi kilka tych map skryptów do plików *php? Mam te pozostałem usunąć?
 
No i, czy wykasować te zmiany wprowadzone w php.ini? :)
 
Naprawdę bardzo dziękuję za dotychczasową i proszę jeszcze o dalszą pomoc. :)

Ankari  2011-02-09 10:54:46 #3
0
avatar
 
 
Odrazu powiem że nie wczytywałem się w posty zamieszczone wyżej.
Jeśli chcesz poprostu aby działały ci skrypty php to zrób to tak:
1. Pobierz z tąd: http://windows.php.net/download/ paczke zip z VC9 x86 Non Thread Safe.
2. Rozpakuj to gdzie chcesz i zostaw tak jak jest
3. Do domyślnej instalacji IISa doinstaluj opcję FastCGI
4. Uruchom konsole IIS Manager (jedna z przystawek mmc)
5. Z menu po lewej wybierz węzeł serwera lub witryny dla której chcesz dodać obsługę php.
6. Z środkowego menu (tam gdzie masz ikonki) kliknij podwójnie Handler Mappings (Mapowania Obsługi)
7. Teraz z menu z prawej strony wybierz Add Module Mapping (Dodaj mapowanie modułu)
8. Ścieżka żądania = *.php
9. Z rozwijanej listy Module wybierz FastCGIModule
10. W polu wykonywalny podaj ścieżke do folderu gdzie wypakowałeś pliki php i kliknij dwarazy na php-cgi.exe (albo jakoś podobnie)
11. Nazwa = "Wpisz co chcesz"
12. Zatwierdź wszystko i GOTOWE
Teraz dla pewności utwórz prosty plik php np. index.php i wklej do niego to:



[Kod]
<HTML>
<HEAD>
<TITLE>TEST PHP</TITLE>
</HEAD>
<BODY>
<? phpinfo(); ?>
</BODY>
</HTML>




 
 Oczywiście dodaj jeszcze dokument domyślny z rozszerzeniem .php ale tyle już chyba zrobisz
Daj znać czy działa 
 
Gdyby jeszcze nie działało to zmień w plikach phpa nazwę pliku php.ini-recomended na php.ini

brzegator27  2011-02-09 19:00:31 #3.1
0
avatar
 
 

Gdyby jeszcze nie działało to zmień w plikach phpa nazwę pliku php.ini-recomended na php.ini

W pobranym folderze mam dwa pliki:
- php.ini-production
- php.ini-development
Odblokowałem ten drugi(php.ini-development), dobrze?
 
 
Niestety dalej pojawia się ten błąd. Przypuszczam, że to może jest spowodowane tym, że w PHP Setting w Configuration file jest ustawiony z innego folderu. Ale nie widze opcji gdzie można to zmienić. :/
 
Przypuszczam, że to to może być błędem, ponieważ tam wyrzuca ścieżkę do folderu(a raczej pliku) takiego: C:\PHP\php5isapi.dll, a ścieżka do folderu, który zainstalowałem to: C:\php-5.3.5-nts-Win32-VC9-x86\php-cgi.exe
 
Tutaj zrzut z IIS7 ---> PHP Manager:

Nie aktualne: [nie wiem czego nie działa - tutaj link do ImageShack]
 
Co proponuje, co zrobiłem źle?
 

Edytowano 2 razy. Ostatnio 2011-02-09 19:02:53 przez brzegator27.
brzegator27  2011-02-09 19:53:57 #3.1.1
0
avatar
 
 
HURA UDAŁO SIĘ!!! ;D
 
Aby rozwiązać problem podmieniłem folder o nazwie PHP, który się znajdował w Program Files na ten folder który pobrałem. Czyli nazwa była ta sama, ale zawartość już inna. ;)
 
No i działa. :)
 
Tylko mam teraz jeszcze jeden problem. :/ Wszystkie pliki muszę umieszczać w lokalizacji: C:\interpub\wwwroot, a ja wolałbym gdzie indziej, nie da się aby otwierany był plik *.php, z każdej lokalizacji? Bo jeśli umieszcze go gdzie indziej to mam błąd 404, bo nie znajduje pliku(zła ścieżka). :/
 
:)

Edytowano 1 raz. Ostatnio 2011-02-09 19:54:23 przez brzegator27.
krybo  2011-04-12 12:03:20 #3.1.1.1
0
avatar
 
 
lokalizacje katalogu root wpisujesz w pliku php.ini, a ten z kolei znajduje się w katalogu PHP.
Oczyscie nalezy pamietac o opodowiednim skonfigurowaniu IIS dla nowego katalogu.

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony