downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Apache モジュールとしてインストール> <ケース 3: doc_root または user_dir を設定
[edit] Last updated: Fri, 25 May 2012

view this page in

ケース 4: Webツリーの外にPHPパーサを置く

非常に安全性の高いオプションとしてPHP パーサのバイナリをファイル 用 Web ツリーの外側、例えば /usr/local/binに置くことが考えられます。こ のオプションの唯一の欠点は、PHP タグを有する全てのファイルの先頭 行に次のような一行を加える必要があることです。

#!/usr/local/bin/php
また、ファイルを実行可能にしておく必要があります。この場合、実行 時にシェルエスケープ機能 #! を使用する Perl や sh や他のスクリプト言語で書かれた CGI スクリプトを処理するのと全 く同様に処理を行います。

この設定で PATH_INFO および PATH_TRANSLATED 情報を正しく処理するためには、 PHP パーサを設定オプション --enable-discard-path を付けてコンパイルする必要があります。



add a note add a note User Contributed Notes ケース 4: Webツリーの外にPHPパーサを置く
mails dot php dot net-notes at gunter dot ohrner dot net 22-Jul-2011 04:53
You can invoke the interpreter under Apache 2.2 running in Windows by associating the php file extension with the interpreter binary in the registry:

AddType application/x-httpd-php .php
AddHandler cgi-script .php

In the desired <Directory>-block, configure PHP CGI as follows:

Options +ExecCGI
## Use HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command
## to determine CGI script interpreter
## ("c:\program files\php-5.2.17\php-cgi.exe").
## This key must be created manually.
ScriptInterpreterSource Registry-Strict

You need to disable cgi.force_redirect in this case, which should be safe from what I understand. You could probably simply use php.exe instead of php-cgi.exe, though I'd like to have this confirmed from someone else.
Andras Rokob <rokoba at bolyai dot elte dot hu> 18-Oct-2006 02: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.

 
show source | credits | sitemap | contact | advertising | mirror sites