web-dev-qa-db-ja.com

PHPファイルをApacheおよびFastCGIで別のユーザーとして実行する方法は?

mod_phpの代わりにmod_fcgidを使用 および PHPはCGIまたはApacheモジュール? (および tangentially some-などの古い質問に従って otherquestions )PHP CGIまたはFastCGIを実行すると.phpファイルが owner Apache ユーザー(Apacheを実行するユーザー)の代わり。

phpinfo();関数は、_Server API = CGI/FastCGI_

しかし、実行中のユーザーをテストすると、それはまだ Apache です。 <?php echo exec('whoami'); ?> Apache を返します。

私も言及した質問で Jeremy Bouseの提案 を試しましたが、PHP whoamiを返しますApache


phpinfoの「サーバーAPI」が「CGI/FastCGI」に等しいという事実は、通常のユーザーがphp-filesを所有者として実行するのに適切ですか?

(PHPがmod_phpで実行されていないことを示していますか?)

または、まだ実行されていない管理タスクや、おそらく正しく構成されていないものはありますか?

5
Jari Keinänen

IMHO(より最近の)を実行する最良の方法PHP FastCGIは PHP-FPM を使用しています。これにより、多くのオプションの中で、さまざまなWebサイトでさまざまなユーザーを使用することができます。

公式ウェブサイト から:

異なるuid/gid/chroot/environmentおよび異なるphp.iniでワーカーを開始する機能(safe_modeの代わり)

しかし、FastCGIを単独で使用するだけではファイルの所有者を使用するのに十分ではありません(「ファイルの所有者を自動的に使用する」などのことはありません。実際に構成する必要があります仮想ホストごと(または希望どおり)の仮想ホスト。

4
lapo

Suexec は、Apacheユーザー以外のユーザーとしてcgiを実行できます。このようにPHPを実行したい場合は、 suPHP にも興味があるかもしれません。

2
theotherreceive