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

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS