It's again not stated clearly in the documentation, that you should use --enable-discard-path ONLY IF you plan to use the PHP CGI outside the web tree as stated here.
If you want to use PHP as a regular CGI processor (via Action & AddHandler in the Apache config file), you shouldn't use this option because, if compiled with this, the PHP binary won't recognize the path to the actual script and will in any case try to send itself to the browser as the script output (!).
Cazul 4: interpretorul PHP se află în afara directorului rădăcină web
O metodă foarte sigură este de a plasa binarul interpretorului PHP undeva în afara arborelui fişierelor pentru web. În /usr/local/bin, spre exemplu. Singurul dezavantaj al acestei opţiuni este că trebuie să introduceţi următoarea linie:
#!/usr/local/bin/php
la începutul fiecărui fişier care conţine tag-uri PHP. De asemenea va trebui să faceţi fişierul executabil. Adică trataţi-l exact ca pe un script CGI scris în Perl, sau sh, sau orice alt limbaj de scripting care utilizează mecanismul #! de evadare din învelişul sistemului pentru a se lansa.
Pentru ca PHP să utilizeze informaţiile din PATH_INFO şi PATH_TRANSLATED în mod corect, interpretorul PHP trebuie compilat cu opţiunea de configurare --enable-discard-path.
Cazul 4: interpretorul PHP se află în afara directorului rădăcină web
09-Feb-2008 08:02
18-Oct-2006 09:59
You can avoid the need of using the shell-escaping (#! ...) in all your php scripts if you set the executable bit on them and exploit the binfmt_misc support of the Linux kernels.
