• 締切済み

PHPプログラムを各ユーザ権限で実行させる(suEXEC)には?

色々なCMSを試してみたくて、テスト用の自宅サーバ(外部には非公開)を構築しています。 サーバ環境はubuntu9.04+Apache2+PHP5+MySQL5で、Apacheのuserdirモジュールを有効にしています。この状態で各CMS専用のユーザを作成し、各ユーザのドキュメントルートにCMSをインストールして使っています。 具体的には・・・ xoopsユーザを作成して http://localhost/~xoops/ にXOOPSをインストール。 drupalユーザを作成して http://localhost/~drupal/ にDrupalをインストール。 ここで問題になったのは、PHPプログラムがwww-dataユーザの権限で実行されるので、自動的に生成されるファイルの所有者がwww-dataになってしまうということです。自分なりに調べて「suEXECを導入することで解決できそうだ」というところまでは解ったのですが、具体的な設定方法を見つけるには至っていません。 そこで質問なのですが、suEXECを導入することでxoopsユーザのドキュメントルート以下にあるプログラムはxoopsユーザの権限で、drupalユーザのドキュメントルート以下にあるプログラムはdrupalユーザの権限で実行されるようにするには、何をどの様に設定すれば良いのでしょうか。もしsuEXECを使う以外の方法で実現可能であれば、それでも構いません。 質問が冗長になってしまって申し訳ありませんが、サーバ構築の経験者様からのアドバイスを頂ければと思い質問させて頂きました。何卒よろしくお願い致します。

みんなの回答

  • tom951
  • ベストアンサー率30% (29/96)
回答No.1

mod_suphp

hide1978
質問者

補足

tom951さん、お返事ありがとうございます。 早速suPHPについて調べてみたところ、以下のサイトを発見しました。このサイトの手順に従って設定してみたのですが、全てのスクリプトが500 Internal Server Errorとなってしまいました。 ■suPHP導入 http://newbielog.com/2009/01/2009010501/ 試しにドキュメントルート(/var/www)にtest.phpを置いて試してみたのですが、同じく500 Internal Server Errorとなってしまいました。 ■test.phpの中身 <?php phpinfo(); ?> ■Apacheのエラーログ Premature end of script headers: test.php 私が何か見落としている、もしくは勘違いしていることがあるんだと思うのですが、どこか設定の参考になるようなサイトをご存知ないでしょうか・・・。

関連するQ&A

  • Apacheモジュールとしてphpをユーザー権限で

    Apacheモジュールとして、phpをユーザー権限で動かしている レンタルサーバー等が多いのですが、 これは、どのように行っているのでしょうか? #CGIであれば、suexecで十分かとは思うのですが OSはFreeBSD 10 です。 pkg ではなく、portsからのインストールになります。 よろしくお願いします。

  • suEXECとパーミッションの関係がわかりません

    ホームページ作成初心者です。 (A) suEXECについて http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm では、 ----------------------- なお、CGI 関係以外のファイル( HTML や GIF 等)の扱いは、従来どおり "644" 等としないと見えません。suEXEC はあくまで CGI や SSI の実行に関してのみ機能するものだからです。 ----------------------- 一方 http://tech.bayashi.net/pdmemo/permission.html では、 ----------------------- 拡張子が .html などの HTML ファイル ==> 600 ----------------------- となっています。 600では一般のサイト訪問者がread出来ない様に思えるのですが、問題ないのでしょうか? suEXEC設定がされているサーバーでは、各拡張子のパーミッションはどのように設定すれば良いのか教えてください。 (B) http://tech.bayashi.net/pdmemo/permission.html の ------------------------------- ■UNIX + Apache サーバで nobody権限の場合 UNIXのApacheは通常 nobody権限で実行され ■UNIX + Apache サーバで SuExec環境の場合 SuExec環境では、Apacheがユーザ(オーナ)権限で実行されます。 ------------------------------- 上記のApacheの nobody権限、ユーザ権限、オーナ権限 というのは FTPソフトでパーミッションを設定するときの オーナー権限、グループ権限、ユーザ権限 とは全く関係のない別物なのでしょうか? 特にnobody権限とは何でしょうか? -------------------- ファイルの読み書きもnobody権限しかありません。なので、パーミッションでも第三者に対する許可が必要です -------------------- ↑が何を言っているのか理解できません。 (A)(B)について教えてください。

    • ベストアンサー
    • HTML
  • PHPでsuEXEC

    test.cgiをPHP言語で記述し、suEXECを使っているつもりなんですが、確認のためにfopen()で作成されたファイルの所有者を見たらapacheになっていました。 現在インストールされているPHPがCGIとしての動作に対応できているかを確認する方法はないですか? PerlならsuEXECが適用されています。 何をどう設定すればsuEXECとつながってくれるでしょうか? apacheとsuexecのログでは手がかりになる情報は得られませんでした。

    • 締切済み
    • CGI
  • Apacheの実行権限について

    Apacheがユーザーディレクトリに、ディレクトリを作成したり画像を(アップロードして)作成したりする場合、以下のように設定していますができません。 httpd(子プロセス)の実行ユーザー/グループはそれぞれapacheです。 親プロセスはrootになっています。 以下のディレクトリは次のようになっています。 (ドキュメントルートはwordpressです) /var/www/html/projectName/wordpress/wp-content/uploads drwxrwxr-x(775) owner=yamada group=apache このように、group(apache)に書き込み権限を与えているのですが、uploads以下にディレクトリやファイルの作成ができません。このディレクトリのownerをapacheにするとできるようになります。 apacheユーザーはapacheグループに属しているので、書き込み権限(w)をもってディレクトリの作成やファイルの作成ができるはず、という認識だったのですがなぜかできません。私の認識が間違っているのでしょうか。

  • apacheユーザの実行権限設定はどうすれば良い?

    ■環境 ・Cent OS ■状況 ・所有者hogeのディレクトリxに対して、スクリプト経由(apacheユーザ権限)でchmodしようとすると、エラーになります ・スクリプト経由(apacheユーザ権限)でディレクトリ作成しようとしても、エラーになります ■質問 ・どうすれば良いでしょうか? ・所有者hogeのグループにapacheユーザを入れたら効果あるでしょうか? ・ディレクトリ所有者がhogeであることが問題? apache所有にした方が良い? ・それとも、スクリプト実行を、apacheユーザ権限ではなく、所有者hogeにした方が良い? どうやって? ・そもそもapacheユーザ権限は、一般的にどう設定するものなのでしょうか? rootみたいに最強にする?

  • suExecインストール

    apache2のconfigureで「--with-suexec-bin」の値を指定できますが、ここで指定するパスは何ですか? 既存のsuExecの場所をapache2に通知するものですか? apache2にsuExecの本体のソースがあるので、そのインストール先を指定するものなんでしょうか? 先ほど /var/lib/apache2/suexec が存在している状態で configure 略 --with-suexec-bin=/usr/local/apache2/bin/suexec を実行、 make clean make make install を実行しましたが、/usr/local/apache2/bin/suexecは作成されていませんでした。

  • こういう場合の適切なユーザー権限はどうなるのでしょうか?

    Windows2000serverでActiveDirectoryを構築しました。 通常のユーザーは「domain users」で問題ないのですが プログラマがこの権限だとプログラム作成時や実行時に 新規フォルダを「Program Files」内に作れない、必要なDLLにアクセス権限がないと等のエラーが出ます。 かといって「Domain Admins」だとセキュリティ上好ましくないと思いますし。 こういった場合、どのような権限で運用すればいいでしょうか? よろしくお願いします。

  • Linux系ユーザー権限について

    Centos6でApacheによるWebサーバーを構築していますが、Wordpressなどを使用している際にユーザーフォルダー内の権限がApacheになってしまいユーザーから削除も変更も出来なくなってしまいます。 もちろんrootユーザーなら操作できるのですが、一般ユーザーでも自分のフォルダー内は自分で変更で出来るようにしたいので。 ご存知の方、ご教授お願い致します。

  • 自宅サーバーでXSASを利用してホームページを作りたいのですが

    解説本に従いって XSASでXOOPS2のインストールを行い install.phpの削除とmainfile.phpを読み取り専用 とするところまで、終了しました。 Apacheで自宅サーバーを立ち上げたとき、 取得したドメインでドキュメントルートの ページを出すことはできましたが、 XSASで http://localhost/xoops2/index.php と 自分の取得したドメインの関連付けの行い方がわかりません。 httd.confファイルの編集でドキュメントルートを 変えたりするのでしょうか? XSASを利用してサイトを構築する場合 ここからどうしたらよいのでしょうか? 初歩的な質問かもしれませんが アドバイスよろしくお願いいたします。

  • おすすめのCMS

    ブログを構築する上で、オススメのCMSは何でしょうか? 候補としては ・Wordpress ・Xoops ・Drupal です。 これらの中で最もオススメを教えてください。 もし、これら以外でお勧めがあれば教えてください Nucleusなど、ユーザーの追加ができないものは×です。 よろしくお願いします。