CGI版PHPで動作させるには

一般的な設定

.htaccess

  • ハンドラーがサーバーに設定されている場合
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} "\.php$"
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* - [R=404,L]
    <FilesMatch "\.php$">
     AddHandler php-script .php
    </FilesMatch>
  • 共有サーバーで php.cgiとハンドラーを自前で設定する場合
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} "\.php$"
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* - [R=404,L]
    <FilesMatch "\.php$">
     Action php-script /php.cgi
     AddHandler php-script .php
    </FilesMatch>

apache設定で定義する場合

Action php-script /fullpathto/php.cgi

以下のような設定は必要ありません。

pukiwiki.ini.php

CGI版PHPで動作させる場合は、pukiwiki.ini.phpの中の

/////////////////////////////////////////////////
// index.php などに変更した場合のスクリプト名の設定
// とくに設定しなくても問題なし
//$script = "http ://hogehoge/pukiwiki/";

の部分で

$script = "http ://hogehoge/pukiwiki.php";

という形で必ず記述しておく必要があります。

hogehogeの部分はあなたがpukiwikiを設置するディレクトリまでのパスを記述します。pukiwiki.phpの部分は、pukiwiki.phpをindex.phpなどにrenameしている場合は、変更したファイル名にします。1.4.7だとデフォルトでindex.phpなのでpukiwiki.phpではない事に注意。CGI版PHPで動作させる場合はファイル名まで指定しておく必要があります。

その他 -- 特殊な例

一部のサーバーでは、CGI版PHPで動作させるためには、各スクリプトの先頭行で

#!/usr/local/bin/php

と記述し、スクリプトの拡張子をcgiに変更しなければならない場合があります。

また、suEXECが動作するサーバーでは、cgiが設置者のユーザー権限で動作するため、各ディレクトリのパーミッションを755→705、777→707に、各ファイルのパーミッションを644→600(604)、666→600(606)*1に変更しないとセキュリティチェック機能によりパーミッションエラーを起こす場合があります。

一部のサーバーでは、cgiが特定のディレクトリでしか動作しないように設定されている場合があります。

CGI版PHPでPukiWikiを動作させる場合の制限事項

BASIC認証は出来ません

PHPの制限により、CGI版PHPではPHP経由でBasic認証ができません。(詳しくは、[[PHP による HTTP 認証 - PHP Manual>http ://jp2.php.net/manual/ja/features.http-auth.php]] へ)
このため、PukiWikiのユーザー認証が使えなくなります。


*1 普通の suEXEC だと 707,606 では他人に書き込み権限があるため実行できないのでは?それぞれ、705,605 となると思います

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-28 (土) 18:26:10
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.33-0+deb8u1. HTML convert time: 0.336 sec.

OSDN