Program Personal Web Server obsługuje aplikacje CGI. W temacie tym zamieszczono informacje administracyjne dotyczące instalowania i konfigurowania aplikacji CGI na serwerze sieci Web. Ogólne informacje dotyczące programowania aplikacji CGI można znaleźć w Microsoft Development Library.
Programy CGI są wykonywane, gdy serwer sieci Web odbiera adres URL zawierający nazwę programu CGI i wszelkie parametry wymagane przez ten program. Jeśli program CGI jest skompilowany w postaci pliku wykonywalnego (.exe), katalogowi, w którym znajduje się ten program, trzeba przyznać uprawnienie Wykonanie, aby użytkownicy mogli uruchomić ten program. Jeśli program CGI jest napisany w postai skryptu, na przykład skryptu języka Perl, katalogowi trzeba przyznać uprawnienie Wykonanie lub Skrypt. Aby używać uprawnienia Skrypt, interpreter skryptów musi być oznaczony jako aparat skryptów.
Dla użytkowników planujących projektowanie nowych aplikacji CGI firma Microsoft przygotowała kilka propozycji alternatywnych, które należy rozważyć. Szybciej wykonywane są aplikacje ISAPI. Porównanie aplikacji CGI i ISAPI można znaleźć w temacie Architektura aplikacji ISAPI i aplikacji sieci Web. Łatwiej projektuje się aplikacje ASP. Środowisko ASP jest szczególnie zalecane dla początkujących programistów, ponieważ obsługiwanych jest w nim wiele rutynowych zadań tradycyjnie związanych z pisaniem aplikacji CGI, takich jak analizowanie nagłówków HTTP. Więcej informacji można znaleźć w temacie Active Server Pages.
Aby zainstalować i skonfigurować aplikacje CGI: Systemy Windows NT i Windows 95 nie zawierają interpreterów języków Perl, SED ani AWK. Interpreter języka Perl jest dostępny w pakiecie Windows NT Resource Kit. Inne interpretery można otrzymać od innych dostawców.
Jeśli wybierzesz uprawnienie Skrypt, w arkuszu właściwości katalogu musisz oznaczyć interpreter skryptów jako aparat skryptów. Tylko interpretery oznaczone jako aparaty skryptów można uruchamiać w tym katalogu. Pliki wykonywalne (pliki .dll i .exe) nie mogą być wykonywane bezpośrednio; tzn. żądanie przeglądarki nie może uruchomić pliku wykonywalnego przez umieszczenie nazwy programu w adresie URL. Użycie uprawnienia Skrypt z opcją Aparat skryptu umożliwia bezpieczne umieszczanie plików zawartości (takich jak pliki .htm lub .gif) w tym samym katalogu, co skryptów CGI. Pliki zawartości będą wyświetlane w przeglądarce, a skrypty będą wykonywane, ale nikt nie będzie mógł wykonać nieautoryzowanego programu, a polecenia skryptów nie będą wyświetlane w przeglądarce.
Program Personal Web Server mapuje rozszerzenia nazw plików na interpreter. Na przykład, jeśli używasz skryptów języka Perl przechowywanych w plikach z rozszerzeniem .pl, zamapuj rozszerzenie .pl na program, który uruchamia skrypty języka Perl. Zamapuj pliki .bat i .cmd na interpreter poleceń (Cmd.exe). Odpowiednie informacje można znaleźć w temacie Ustawianie mapowania aplikacji.
Jeśli używasz uprawnień NTFS, upewnij się, że wszyscy użytkownicy, którzy będą uruchamiać program mają uprawnienie Wykonanie dla katalogu. Jeśli witryna sieci Web akceptuje użytkowników anonimowych, upewnij się, że użytkownik anonimowy (konto IUSR_nazwakomputera) ma uprawnienie Wykonaj.
Program Personal Web Server obsługuje większość standardowych zmiennych środowiska serwera. Jeśli masz zainstalowaną dokumentację SDK, odpowiednie informacje możesz znaleźć w temacie GetServerVariable.
Jeśli dany skrypt uzyskuje dostęp do skryptu mapowanego na interpreter Cmd.exe uruchomiony na zdalnym serwerze, domyślny katalog roboczy jest ustawiany na %SYSTEM32% na komputerze lokalnym. Domyślną wartością %SYSTEM32% jest \Winnt\System32 (w systemie Windows NT) i \Win95\System (w systemie Windows 95 lub późniejszym).
Ze względów bezpieczeństwa serwer sieci Web nie przekazuje znaków specjalnych interpretera poleceń do mapowanej aplikacji CGI. Domyślnie, następujących znaków nie można umieszczać w adresie URL wywołującym aplikację CGI:
| ( , ; % < >
Choć nie jest to zalecane, można umożliwić użycie niektórych znaków specjalnych, zmieniając wartość klucza AllowSpecialCharsInShell w rejestrze. Więcej informacji można znaleźć w temacie Wpisy usługi WWW.