Joe Nenning: PHP-installation. Zeile mit #!d:\php\php.exe notwendig??

Hallo
Ich habe Apache 1.3.9 und PHP 4.1.1 installiert.
Doch wahrscheinlich ist meine Apache oder PHP-Konfiguration nicht ganz richtig, denn:

Die PHP-Skripte laufen, aber ich muss wie bei Perl in der 1. Zeile folgendes eingeben:
#!d:\php\php.exe

Das ist der Pfad zur PHP-exe. Leider wird diese Zeile aber auch ausgegeben. Gebe ich sie nicht ein, sagt die error.log von Apache:

"d:/apache/cgi-bin/test.php is not executable; ensure interpreted scripts have "#!" first line"

Ich habe die Anweisungen, was php.ini usw. betrifft befolgt.
In Apache habe ich wie üblich eingetragen
AddType application/x-httpd-php .php
Action application/x-httpd-php "d:/php/php.exe"
Meine PHP-Skripte u. Perl-Skripte laufen im gleichen Verzeichnis cgi-bin

Jetzt stehe ich ein bisschen auf dem Schlauch
Wer kennt sich da aus??

danke für die Antwort(en) im voraus

Joe

  1. Moin

    Meine PHP-Skripte u. Perl-Skripte laufen im gleichen Verzeichnis cgi-bin

    Innerhalb des CGI-BIN-Verzeichnisses dürfen nur CGI-Binaries liegen, deshalb heisst es so :) Als Binary gehen hierbei auch Scripte mit korrekter Shebang-Zeile (das #!-Ding) durch.

    Wenn du die Dateien ausserhalb des cgi-bins legst, müsste es eigentlich mit deinen Einstellungen gehen.

    --
    Henryk Plötz
    Grüße aus Berlin

    1. Moin

      Meine PHP-Skripte u. Perl-Skripte laufen im gleichen Verzeichnis cgi-bin

      Innerhalb des CGI-BIN-Verzeichnisses dürfen nur CGI-Binaries liegen, deshalb heisst es so :) Als Binary gehen hierbei auch Scripte mit korrekter Shebang-Zeile (das #!-Ding) durch.

      Wenn du die Dateien ausserhalb des cgi-bins legst, müsste es eigentlich mit deinen Einstellungen gehen.

      --
      Henryk Plötz
      Grüße aus Berlin

      Hallo,
      Ja,das mit dem CGI Verzeichniss ist richtig.
      Das Problem ist vielleicht eher auch, das Du die .php Datei direkt öffnest. "d:/...". Das dürfte nicht funktionieren. Wenn Du Apache installiert hast, wird auf dem localen Entwicklungsserver mittles http://localhost:/ Zugriff genommen. Den Root Pfad musst du natürlich einstellen. Dann ruft Du das Script mittels http://localhost:/test.php auf, und der Interpreter springt auch an !!! DAs Script liegt natürlich im Server- ROOT.
      Mfg
      Torsten

      1. Moin

        Meine PHP-Skripte u. Perl-Skripte laufen im gleichen Verzeichnis cgi-bin

        Innerhalb des CGI-BIN-Verzeichnisses dürfen nur CGI-Binaries liegen, deshalb heisst es so :) Als Binary gehen hierbei auch Scripte mit korrekter Shebang-Zeile (das #!-Ding) durch.

        Wenn du die Dateien ausserhalb des cgi-bins legst, müsste es eigentlich mit deinen Einstellungen gehen.

        --
        Henryk Plötz
        Grüße aus Berlin

        Hallo,
        Ja,das mit dem CGI Verzeichniss ist richtig.
        Das Problem ist vielleicht eher auch, das Du die .php Datei direkt öffnest. "d:/...". Das dürfte nicht funktionieren. Wenn Du Apache installiert hast, wird auf dem localen Entwicklungsserver mittles http://localhost:/ Zugriff genommen. Den Root Pfad musst du natürlich einstellen. Dann ruft Du das Script mittels http://localhost:/test.php auf, und der Interpreter springt auch an !!! DAs Script liegt natürlich im Server- ROOT.
        Mfg
        Torsten

        Hallo Leute

        Danke für die Tipps, nur: keiner half mir weiter

        • ich habe es mit einem anderen Verzeichnis probiert
        • ich habe php als exe und als Modul in Apache konfiguriert

        es bleibt dabei: ohne die Shebang Zeile geht nix! Und sie wird immer ausgegeben.

        Help!

        Grüße Joe

        1. Danke für die Tipps, nur: keiner half mir weiter

          • ich habe es mit einem anderen Verzeichnis probiert
          • ich habe php als exe und als Modul in Apache konfiguriert

          Viel hilft mehr oder wie!!?

          Du musst das natürlich als Modul ODER CGI installieren, sonst ruft Apache weiterhn die CGI-Version auf und dann bringt das herzlich wenig, also NUR das Nodul installieren und den Syntax für CGI auskommentieren oder ganz ausschneiden.

          Maja

          1. P.S. restart von Apache nicht vergessen

          2. Danke für die Tipps, nur: keiner half mir weiter

            • ich habe es mit einem anderen Verzeichnis probiert
            • ich habe php als exe und als Modul in Apache konfiguriert

            Viel hilft mehr oder wie!!?

            Du musst das natürlich als Modul ODER CGI installieren, sonst ruft Apache weiterhn die CGI-Version auf und dann bringt das herzlich wenig, also NUR das Nodul installieren und den Syntax für CGI auskommentieren oder ganz ausschneiden.

            Maja

            Hi Maja

            Danke für den Hinweis, aber soo doof bin ich auch wieder nicht.

            Aber mal im Ernst:
            das ist doch seltsam, dass ich zwar Skripte ausführen kann, die Shebang Zeile immer nötig bzw. sichtbar ist.
            Irgendwo zeigt entweder Apache oder PHP auf den falschen Pfad, ich verstehe nur nicht wo.
            Naja, ich probier halt weiter...

            Grüßle

            Joe

  2. Hallo
    Ich habe Apache 1.3.9 und PHP 4.1.1 installiert.
    Doch wahrscheinlich ist meine Apache oder PHP-Konfiguration nicht ganz richtig, denn:

    Die PHP-Skripte laufen, aber ich muss wie bei Perl in der 1. Zeile folgendes eingeben:
    #!d:\php\php.exe

    Das ist der Pfad zur PHP-exe. Leider wird diese Zeile aber auch ausgegeben. Gebe ich sie nicht ein, sagt die error.log von Apache:

    "d:/apache/cgi-bin/test.php is not executable; ensure interpreted scripts have "#!" first line"

    Ich habe die Anweisungen, was php.ini usw. betrifft befolgt.
    In Apache habe ich wie üblich eingetragen
    AddType application/x-httpd-php .php
    Action application/x-httpd-php "d:/php/php.exe"
    Meine PHP-Skripte u. Perl-Skripte laufen im gleichen Verzeichnis cgi-bin

    Jetzt stehe ich ein bisschen auf dem Schlauch
    Wer kennt sich da aus??

    danke für die Antwort(en) im voraus

    Joe

    Hallo,
    Die Zeile ist natürlich nicht notwendig !!!
    Hast Du PHP als CGI laufen ??
    Mfg Torsten

  3. Hi Joe! Da Du

    Action application/x-httpd-php "d:/php/php.exe"

    in Deiner httpd.conf stehen hast, gehe ich mal schwer davon aus, dass du PHP als CGI laufen hast. Tue das nicht, alleine schon wegen der unpraktischen Pfadangaben!

    Installiere PHP als Apache-Modul! In der install.txt sollte was dazu stehen.

    Noch viel Spaß
    Maja

  4. Guten Morgen Joe,

    Die PHP-Skripte laufen, aber ich muss wie bei Perl in der 1. Zeile >olgendes eingeben:
    #!d:\php\php.exe

    PHP muss als Modul laufen.

    [Auszug aus meiner http.conf]

    AddType allows you to tweak mime.types without actually editing it, or to

    # make certain files to be certain types.
        #
        # For example, the PHP 3.x module (not part of the Apache distribution - see
        # http://www.php.net) will typically use:
        #
        #AddType application/x-httpd-php3 .php3
        #AddType application/x-httpd-php3-source .phps
        #
        # And for PHP 4.x, use:
        #
        AddType application/x-httpd-php .php .phtml .php3
        AddType application/x-httpd-php-source .phps

    LoadModule php4_module C:/Programme/PHP/PHP4.0.6/sapi/php4apache.dll

    #pit

  5. Hallo
    Ich habe Apache 1.3.9 und PHP 4.1.1 installiert.
    Doch wahrscheinlich ist meine Apache oder PHP-Konfiguration nicht ganz richtig, denn:

    Die PHP-Skripte laufen, aber ich muss wie bei Perl in der 1. Zeile folgendes eingeben:
    #!d:\php\php.exe

    Das ist der Pfad zur PHP-exe. Leider wird diese Zeile aber auch ausgegeben. Gebe ich sie nicht ein, sagt die error.log von Apache:

    "d:/apache/cgi-bin/test.php is not executable; ensure interpreted scripts have "#!" first line"

    Ich habe die Anweisungen, was php.ini usw. betrifft befolgt.
    In Apache habe ich wie üblich eingetragen
    AddType application/x-httpd-php .php
    Action application/x-httpd-php "d:/php/php.exe"
    Meine PHP-Skripte u. Perl-Skripte laufen im gleichen Verzeichnis cgi-bin

    Jetzt stehe ich ein bisschen auf dem Schlauch
    Wer kennt sich da aus??

    danke für die Antwort(en) im voraus

    Joe

    OK jetzt hab ichs:

    ich habe einfach das binary-verzeichnis verwechselt mit dem Script verzeichnis, bzw. das letztere, nämlich document_root
    nicht in der php.ini gesetzt/verwendet.

    Einige von euch gaben mir die richtigen Tipps, ich habs nur nicht
    richtig verstanden.

    Danke an alle und viele Grüße
    Joe