2009年8月アーカイブ

プライマリDNSサーバとセカンダリDNSサーバを自前で用意して設定するときの覚え書き。
BIND9です。

1)webminで設定すると、example.com.hostの権限がrootになっちゃうので、sshで接続して
chown named:named example.com.host
にする。
webmin使わず自分でファイル作っても全くOK

<訂正>
ファイルが入るディレクトリの権限がnamedだったら、特にファイル作成しなくてもOK!
勝手にマスターからファイルが送られてきます。

2)スレーブのアップ(マスタからのゾーン転送)
rndc refresh example.com
で、マスタのレコードをとってくることができます。
.hostがつかないところに注意。
rndc reload example.com
とか
rndc reload
とかも。

なんだかうまくいかないな、と思ったら、named.confの設定がおかしいことが多い。
/var/log/messages
のエラー記述を良く見て原因を探りましょう。

pg_insert()

のエラーが表示されなくて、何が理由でエラーになるか解らなかったけど、こういうときは

echo pg_last_error($conn);

で、最後のエラーが取得できます。
$connはDBへの接続ね。

Warning: pg_query() [function.pg-query]: Query failed: ERROR: permission denied for relation articles in /var/www/*******/***.php on line 68

てなエラーがでてDB操作ができなかった時、テーブルに権限が設定されていないことが原因。

productslistというテーブルに対してwwwというユーザに権限を与える時

■select権限のみ与える時
grant select on productslist to www;

■insert、update、deleteも可能にするなら
grant select,insert,update,delete on productslist to www;

■全部与える時
grant all on productslist to www;

GRANTって表示されたら変更完了ってこと。

■権限を奪う時
revoke select on productslist from www;

※シーケンスの場合、USAGE, SELECT, UPDATEしかないので注意。

全てのユーザに権限を与える/奪う場合は、ユーザ名(例でいうwww)のかわりにpublicでOK

■テーブルではなくDBへは以下
databaseがつくだけ。
grant all on database dbname to www;
revoke all on database dbname from www;