suEXECの導入方法メモ

CentOSのApacheでsuEXECを使えるようにする手順のメモ書きです。これによって、CGIをユーザー権限で走らせることができます。PHPのCGIモードの場合はsuPHPのほうが楽だと思います。

手順の目次

  • suEXECの設定を確認。
  • suEXECを動かすディレクトリを用意する。
  • バーチャルホストをゴニョゴニョしてユーザー等の設定。
詳細は以下

手順の解説

設定の確認

CentOSで、yumでApacheをインストールしてあれば、suEXECもあると思うので、次のコマンドを打ちます。 [VIM] sudo suexec -V [/VIM] こんな感じの結果が表示されると思います。 [VIM] -D AP_DOC_ROOT=”/var/www” -D AP_GID_MIN=100 -D AP_HTTPD_USER=”apache” -D AP_LOG_EXEC=”/var/log/httpd/suexec.log” -D AP_SAFE_PATH=”/usr/local/bin:/usr/bin:/bin” -D AP_UID_MIN=500 -D AP_USERDIR_SUFFIX=”public_html” [/VIM] 問題なのは-D AP_DOC_ROOT=”/var/www”です。この設定では、ディレクトリ/var/www以下でないと、suEXECが仕事してくれません(やらせたらもれなくエラーを吐きます)。なので、(/home/ユーザー名/public_htmlで動かしたい場合の)方策としては、
  • Apacheを一旦アンインストール→Apacheを自分でコンパイルしてインストール(この時にsuEXECの動作を指定できる)。
  • 無理やりごまかす。
  • 諦める。
だいたいこのへんになります。Apacheをコンパイルするのは面倒なので、無理やりごまかします。

/home/ユーザー名/public_html以下で無理やりsuEXECに仕事をさせる

種明かしすると、/var/www以下にファイルが有ればとりあえずOKなので、/home/ユーザー名/public_htmlを/var/www以下にマウントしてやります。コマンドは以下(/home/ユーザー名/public_htmlは作成済みであるものとする) [VIM] sudo mkdir /var/www/わかりやすい適当な名前 sudo chown ユーザー名 /var/www/わかりやすい適当な名前 sudo chmod 755 /var/www/わかりやすい適当な名前 sudo mount –bind /home/ユーザー名/public_html/ /var/www/わかりやすい適当な名前/ sudo vim /etc/fstab #以下を追記する /home/ユーザー名/public_html /var/www/わかりやすい適当な名前 none bind 0 0 [/VIM] とりあえずこれで、suEXECは仕事するようになると思います。

バーチャルホストの設定

バーチャルホスト側の設定を行います。バーチャルホストの設定ファイルを編集しましょう。設定例は以下 [VIM] DocumentRoot /var/www/作成したディレクトリ名 ServerName www.example.jp SuexecUserGroup ユーザー名 ユーザーグループ ErrorLog /var/log/httpd/ユーザー名_example-error.log CustomLog /var/log/httpd/ユーザー名_example-access.log Options ExecCGI FollowSymLinks AllowOverride All Order allow,deny Allow from all [/VIM] 多分こんな感じです。足りない部分は各自補ってください(汗)

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: