Home > Mac > MacでWebアプリを実行するときのパーミッションについて

MacでWebアプリを実行するときのパーミッションについて

  • 2009-04-13 (月)
  • Mac

ローカルでテスト的にPerlやPHPでコードを書くときに毎回忘れてしまうので、備忘録としてメモメモ。
(もしかしたら一般的ではないかも)

PerlやPHPを実行するためのパーミッション

たとえばTextMateでファイルを作成した場合、デフォルトではパーミッションが「644」になってしまう。
この状態だとCGIとして動かすことができず、「Internal Server Error」となってしまうので、

$ chmod 755 hoge.cgi

としてダレでも実行できるようにする。

またダレでも実行できるのが気持ち悪い場合は、「754」として、さらに

$ sudo chgrp _www hoge.cgi

でグループをhttpdを実行している「_www」グループに変更する。
こうすればグループの部分に5が適用されるので、実行が可能になる。

上記で_wwwというユーザーが出てきたが、これを探す方法を以下に。

Apacheプロセスを実行しているユーザーを調べる方法 - Perl編

これを実行すると

_www*70700World Wide Web Server/Library/WebServer/usr/bin/false0

と表示され一番左端にユーザー名が表示される。
ボクは「_www」だったが、環境によっては違うのになるのだろうか・・・

Apacheプロセスを実行しているユーザーを調べる方法 - コマンド編

Apacheこちらの記事書いてある方法で、

$ ps -lax

と打ってhttpdのプロセスuid(一番左端の数値)をもとに、

70 1137 824 104 0 31 0 2711340 3140 - S 71c2edc ?? 0:00.04 /usr/sbin/httpd -D FOREGROUND

/etc/passwdファイルの中から同じ70番を持つ行に行くと、先ほどと同じように

_www*70700World Wide Web Server/Library/WebServer/usr/bin/false0

と書いてある。

mkdir()をするときのパーミッション

ディレクトリが作成される階層の上位ディレクトリのグループに「_www」グループを指定して書き込みができように「775」にする。
これをしないと実際にmkdirが書き込まれているソースコードのパーミッションをいくらいじってもうまくいかない。

例えばMT4を導入する場合に、DBをSQLiteにするとMT/dbというディレクトリに書き込みにいくのだが、このディレクトリがない場合がある。
なので、Finderから作成していざMTを実行してもエラーになってしまう。

$ sudo chgrp _www hoge
$ chmod 775 hoge

mkdirするPerlのコードは以下の感じ。

もし失敗した場合は$!にエラー内容が格納されている。

chmod()をするときのパーミッション

パーミッションを変更したいディレクトリやファイルのOwner(所有者)に_wwwが指定され、且つ実行可能の場合にうまくいく。

今度はPHPで。

これでディレクトリを作成し、chmodでパーミッションを変更できる。
mkdirしたユーザーは_wwwになるので、Ownerが_wwwになりchmodがうまくいく。

drwxr-xr-x 2 _www _www 68 4 13 01:41 test

ただし、Finderから自分で作成したディレクトリをプログラムからchmodする場合は、事前にコマンドからユーザーを_wwwにしておく必要がある。

$ sudo chown user test


ふぅ〜。
この手の設定がすごく苦手で毎回悩んでしまう。
まぁmkdirやchmodなどをプログラムから実行する機会はそんなにないのですが、いざってときにハマってしまう。

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1176
Listed below are links to weblogs that reference
MacでWebアプリを実行するときのパーミッションについて from HouseTect, JavaScriptな情報をあなたに

Home > Mac > MacでWebアプリを実行するときのパーミッションについて

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top