PHP Australia Conference 2015

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.

add a note add a note

User Contributed Notes 2 notes

up
-1
Anonymous
7 months ago
To add a new structure out the PHP directory, you have to do first:

- Configure the .ini file
- Add to your IDE the interpretor
up
-3
terom at fixme dot fi
9 months ago
You can use binfmt-misc to avoid the need for the #! line, by registering your php5-cgi binary as an interpreter for *.php files. E.g. with Debian binfmt-misc installed:

    update-binfmts --install php5 /usr/bin/php5-cgi --extension php
    cat /proc/sys/fs/binfmt_misc/php5

However, you still need chmod +x on the .php file. And Apache will give a rather sad "500 Internal Server Error" if you are missing the +x permissions :( You can improve the error message using mod_rewrite (but not obliviate the need for +x)..
To Top