W prostym manualu o PHP mozemy wyczytac:

http://my.host/cgi-bin/php/secret/doc.html
Część URL po nazwie programu PHP ( /secret/doc.html ) to popularny sposób na określenie nazwy
pliku który ma być otwarty i interpretowany przez program CGI (PHP). Zwykle dyrektywy konfiguracyjne
niektórych web serwerów (Apache: Action) są używane do przekierowania żądań do określonych
dokumentów, np. http://my.host/secret/script.php na interpreter PHP. Przy takiej konfiguracji
web server najpierw sprawdza prawa dostępu do katalogu /secret, a potem tworzy przekierowanie
na http://my.host/cgi-bin/php/secret/script.php. Ale jeśli żądanie zawiera adres dokładnie do
http://my.host/cgi-bin/php/secret/script.php nie są sprawdzane prawa dostępu dla pliku
/secret/script.php, ale tylko do pliku /cgi-bin/php. W ten sposób jakikolwiek użytkownik mający dostęp
do /cgi-bin/php ma również dostęp do dokumentów zabezpieczonych na web serverze.

Mam skonfigurowane PHP jako skrypt CGI w nastepujacy sposob:

  • w php.ini :
    cgi.force_redirect = 0
    doc_root = ; nic
    reszta to standardowe ustawienia.
  • w httpd.conf :
    ServerRoot "D:/Programy/Apache Group/Apache2"
    ServerName 127.0.0.1
    DocumentRoot "D:/Programy/Apache Group/Apache2/htdocs"

Action php-script "/cgi-bin/php"
AddHandler php-script .php

ScriptAlias /php/ "e:/php/"
AddType application/x-httpd-php .php .php3 .htm .phtml
Action application/x-httpd-php "/php/php.exe"
reszta to standard !!

Zgodnie z manualami ktore przeczytalem powinno to byc wystarczajace do prawidlowego dzialania
PHP na apache jako CGI!!

Problem jest jednak taki:
istnieje plik o takiej sciezce :
D:/Programy/Apache Group/Apache2/cgi-bin/php/as/a.php
chce go w dwojaki sposob odpalic w IE (zgodnie z manualem) :

  1. localhost/as/a.php - wtedy powinnien pojawic sie wpis w access.log
  2. localhost/cgi-bin/php/as/a.php - teraz nie powinien pojawic sie wpis w access.log
    czyli dokladnie tak jak napisane jest w manualach (dlatego wylaczylem cgi.force_redirect = 0 i nie
    ustawilem doc_root !!!!).
    Ale to nie dziala !!!!
    W error.log w zaleznosci od roznych zmian w powyzszych konfiguracjach mam np. :
    przy 1. rodzaju wywolania :
    [Thu Jul 17 1851 2003] [error] [client 127.0.0.1] File does not exist: D:/Programy/Apache Group/Apache2/htdocs/as
    przy 2. rodzaju wywolania :
    [Thu Jul 17 1847 2003] [error] [client 127.0.0.1] script not found or unable to stat: D:/Programy/Apache Group/Apache2/cgi-bin/php/cgi-bin

Czy ktos wie jak to odpowiednio skonfigurowac ??!! Zeby dzialalo jak trzeba ??!! Wszystkie pliki istnieja
i znajduja sie we wlasciwych katalogach - po prostu mi juz rece opadaja bo ni jak nie moge zrobic
zeby dzialalo zgodnie z tym co napisane jest w manualu !!