Linuxなどのメモ書き

PHP CGIでの実行


Rev.2を表示中。最新版はこちら

概要

PHPスクリプトをApacheモジュールからではなくCGIとして実行する場合のメモ。

環境

Linux(Fedora Core 4)
PHPは5.0.4がインストール済み(CLI SAPI)

CLI版(CLI SAPI)バイナリを使う場合

最初からインストールされているCLI SAPI版PHPを使ってphpスクリプトをCGI実行する例。

apache httpd.conf例

# スクリプトを置くディレクトリについて
# .phpファイルをCGIとして実行するように設定
<Directory /home/tomita/www>
      AddHandler cgi-script .php
      Options +ExecCGI
</Directory>
スクリプト
#!/usr/bin/php
<?php
print "Content-Type: text/html\n\n";
print "foo";
?>

CLI版を使用した場合は、PerlなどによるCGIスクリプトと同様に#!によるコマンドの指定や、HTTPヘッダ(Content-Type)の出力処理が必要になる。

CGI版(CGI SAPI)バイナリを使う場合

CGI版のPHPを使うとスクリプト内で#!やHTTPヘッダの出力をせずに、モジュール動作時と同じような処理でCGI実行できる。CLI/CGI版の違いやコンパイルの仕方は「PHP CGIでの実行」参照。

以下の例ではCGI SAPIバイナリは/usr/local/bin/php.cgiにインストールしたものとして説明する。

apache httpd.conf例

# スクリプトを置くディレクトリについて
# .phpファイルをCGIとして実行するように設定
<Directory /home/tomita/www>
      AddHandler cgi-script .php
      Options +ExecCGI
</Directory>

CGI版PHPでのスクリプト

#!/usr/local/bin/php.cgi
<?php
# ヘッダは自動で出力されるので不要
# print "Content-Type: text/html\n\n";
print "foo";
?>

apache httpd.conf例

<ScriptAlias /cgi-bin/ "/home/tomita/www/cgi-bin/">
<Directory /home/tomita/www>
      AddHandler php4-script .php
      # .phpファイルでは/cgi-bin/phpを実行
      Action php4-script /cgi-bin/php.cgi
      # リンクをたどれるようにしておく
      Options +ExecCGI +FollowSymLinks
</Directory>

CGI版PHPでのスクリプト

<?php
print "foo";
?>

関連ページ


最終更新 2007/07/12 11:59:55 - kztomita
(2007/07/12 11:48:33 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント