[PHP-users 2374] CGI版PHPでスクリプト1行目の出力を抑止

HIGASHI Taku php-users@php.gr.jp
Mon, 01 Oct 2001 16:06:44 +0900 (JST)


東志と申します。

ApacheのSuExec機能を利用して、PHPスクリプトをそのスクリプトファイルの
所有者の権限で実行させようとしています。

試みに、/home/foo/public_html/showpw.cgi として、以下のコードを用意し、
--
#! /usr/local/bin/php
<?php
$pw = posix_getpwuid(posix_getuid());
echo "<pre>\n";
print_r($pw);
echo "</pre>\n";
?>
--
chmod +x した上で、Web経由で http://localhost/~foo/showpw.cgi として
参照したところ、下記の出力を得ました。
--
#! /usr/local/bin/php

Array
(
    [name] => foo
    [passwd] => *
    [uid] => 1000
    [gid] => 1000
    [gecos] => FooBar
    [dir] => /home/foo
    [shell] => /bin/csh
)
--
Array()の内容自体は、意図した通り、ファイル所有者を示しており、問題
ありません。

問題なのは、スクリプトの1行目の「#! /usr/local/bin/php」が出力されて
しまう事です。

この出力を抑止する方法について、ご教示頂きたく、よろしくお願い致します。

尚、Webを経由せず、コマンドラインで実行した場合は、上記の問題は発生し
ません。

環境は、下記の通りです。
--
FreeBSD 4.3 RELEASE
Apache 1.3.20
  mod_ssl-2.8.4-1.3.20
  mm-1.1.3
  openssl-0.9.6(FreeBSD 4.3-RELEASEにバンドルのもの)
PHP 4.0.6
--

以上、よろしくお願い致します。