Tworząc strony WWW korzystam w celach testowych z serwera WWW (Apache) zainstalowanego na lokalnym komputerze, na którym mam zainstalowany system Windows. W pewnym momencie potrzebowałem uruchomić na nim jeden z dostępnych w Internecie skryptów CGI, który był napisany w Perl’u. Pomimo jednak że miałem już zainstalowanego u siebie Perla pobranego ze strony ActiveState i odpowiednio skonfigurowałem serwer Apache (Options ExecCGI), skrypt nie działał – serwer zwracał błąd 500 (Internal Server Error), a w logach serwera lądowały dwa komunikaty błędów: „System nie może odnaleźć określonej ścieżki. : couldn’t spawn child process” i „System nie może odnaleźć określonej ścieżki. : couldn’t create child process”.
Jak się okazało, serwer nie potrafił odnaleźć interpretera Perla. Szukał go tam gdzie wskazywała pierwsza linia skryptu CGI, czyli w /urs/bin/perl. Ponieważ domyślnie takiej ścieżki nie ma pod Windows, więc nie ma się co dziwić że skrypt nie chciał się uruchomić.
Pierwszym rozwiązaniem które wypróbowałem była zamiana ścieżki Unixowej na Windowsową – zamiast /usr/bin/perl wstawiłem ścieżkę do katalogu gdzie na Windowsie miałem zainstalowanego Perla. Rozwiązanie okazało się skuteczne – skrypt się uruchomił. Pomimo tego postanowiłem jednak poszukać innego rozwiązania, gdyż chciałem mieć jedną wersję skryptu, która będzie działać zarówno i w systemie Unix, i w Windows.
Na szczęście w systemie Windows można też używać w ścieżkach do plików slasha („/”). Możliwe jest korzystanie ze ścieżek zaczynających się od znaku slash – ścieżka taka odnosi się do katalogu głównego bieżącego dysku twardego. W przypadku skryptów CGI uruchamianych na serwerze Apache dyskiem bieżącym jest ten na którym jest zainstalowany ten serwer.
Rozwiązaniem problemu było zatem utworzenie na dysku gdzie miałem zainstalowany serwer katalogów /usr/bin i skopiowanie tam pliku perl.exe z katalogu ActiveState Perl’a. Po wykonaniu tej prostej czynności mogłem już korzystać ze skryptów CGI napisanych w Perlu także pod Windows, bez konieczności ich modyfikacji.
Komentarze