PC/NETのetcetra/2005-04-13
Last-modified: 2005-09-17 (土) 19:47:43 (6793d)
※※このサイトは2012年頃より更新を停止しています。※※
apache 11:30am頃 †
suexecを有効にすることでどうなるのか、って話だが。
各ユーザのpublicディレクトリでcgiやssiが実行されるとき、suexecを有効にしていない環境だと、apacheのユーザで実行される。
- どういうことかっていうと。
suexecが有効になってない環境で、ユーザhogeが、同じ階層にlog.txtを出力するようなcgiを下記pathに設置したとしよう。
/home/hoge/public_hmtl/test.cgi
このcgiにhttpでアクセスすると、/home/hoge/public_html/log.txtが作成されるわけだが、このlog.txtのファイル所有者:グループはhoge:hogeとかではなくapacheの実行ユーザ(だいたいのサーバではnobodyとかapacheとかwebとか)になる。
でもsuexecが有効になっている環境だと、このlog.txtの所有者:グループがhoge:hogeになるというわけだ。
しかーし。それはcgiおよびssiの場合。
suexec環境でも、DSOモジュールとして組み込んだPHPの場合、httpアクセス時のPHPの実行ユーザはapacheのユーザになる。
じゃ、PHPをcgiとして実行したらどうだろう?これ、試してみよーっと。
PHP 12:20頃 †
cgi版でPHPをインストールして上記のことを試してみた。
バッチリ(・∀・)b
もともとのcli版でインストールしてあるPHPを上書きするのはやだったので、/usr/local/cgi/ に新たにcgi版をインストールしてやってみた。
configureオプションは下記。
./configure --with-png-dir=/usr --enable-exif --with-zlib --with-jpeg-dir=/usr --enable-mbstring --enable-mbregex --enable-zend-multibyte --with-pgsql=/usr --with-mysql=/usr --disable-cli --disable-pear --prefix=/usr/local/cgi
ここで出てくる--with-png-dirとか--enable-exifとか--with-jpeg-dirとかなんとかは、PC/NETのetcetra/2004-08-23を参照のこと。
ちなみに、PHPのcgi版をインストールする上で参考にしたサイトは下記
http://php.planetmirror.com/manual/ja/features.commandline.php
http://www.dream-seed.com/linux/php.html
"従来のCGI版もソースを展開したディレクトリの「./sapi/cgi/php」として作成されています。"っていうあたり。
コメントはありません。 コメント/PC/NETのetcetra/2005-04-13