Top過去ログ目次掲示板

作成日:2005年07月07日 作成:おやじ
掲示板で過去に質問された内容です。

No.4902 Postfix・Courier-IMAPのバーチャルホスト


No.4902 投稿時間:2005年07月07日(Thu) 10:13 投稿者名:NeCo URL:
タイトル:Postfix・Courier-IMAPのバーチャルホスト

こんにちは。いつもこのサイトにはお世話になっております。

タイトルの件について悩んでいるのですが、
DomainやuserのMySQLのDBへの登録は、
Postfix Adminを使って行うんですよね?
ですが、Postfix Adminがうまく動かないのです。
Domainを新規登録しようとしても、
"そのドメインは既に存在しています!"
と出てしまいます。
ログを見てみたら、HTTPDのログに、

PHP Warning: mysql_real_escape_string(): Access denied for user 'apache'@'localhost' (using password: NO) in /var/www/html/postfixadmin/functions.inc.php on line 131, referer: http://hogehoge.hoge/postfixadmin/admin/create-domain.php

のように出ていました。
おそらくこれ(user 'apache'@'localhost' (using password: NO))が原因でSQLServerへ接続ができていないようなのですが、
config.inc.phpにはちゃんとuserとpasswordが設定してあります。
他に見落としているところがあるのでしょうか・・・
助言をいただければ幸いです。


No.4906 投稿時間:2005年07月07日(Thu) 18:36 投稿者名:NeCo URL:
タイトル:Postfix Adminは出来ました

PostfixAdminについては、MySOLのuserに
'apache'@'localhost'
を追加することにより使用出来るようになりました。
(根本的な解決にはなっていないし、セキュリティも・・・汗)
ですが、今度はPOP3での認証で詰っています。
/var/log/maillogに
Jul 7 18:07:28 *** pop3d: Connection, ip=[::ffff:**.**.***.***]
Jul 7 18:07:29 *** pop3d: chdir Maildir: No such file or directory
とでて、POP3でメールの取得ができません。。

SMTP認証はうまく行って、ちゃんと/usr/local/virtual/user@domain/new
に配送されています。

いろいろ検索して調べてみたのですが、どうもわからず、
お力を貸していただけるとありがたいです。


No.4910 投稿時間:2005年07月07日(Thu) 21:45 投稿者名:おやじ URL:
タイトル:認証が走っていないですね。

> PostfixAdminについては、MySOLのuserに
> 'apache'@'localhost'
> を追加することにより使用出来るようになりました。
> (根本的な解決にはなっていないし、セキュリティも・・・汗)
> ですが、今度はPOP3での認証で詰っています。
> /var/log/maillogに
> Jul 7 18:07:28 *** pop3d: Connection, ip=[::ffff:**.**.***.***]
> Jul 7 18:07:29 *** pop3d: chdir Maildir: No such file or directory
> とでて、POP3でメールの取得ができません。。
>
> SMTP認証はうまく行って、ちゃんと/usr/local/virtual/user@domain/new
> に配送されています。

pop3接続後にmysqlを使った認証が走ると思うのですが?


No.4911 投稿時間:2005年07月07日(Thu) 22:41 投稿者名:NeCo URL:
タイトル:Re: 認証が走っていないですね。

おやじさん、こんばんは。

> pop3接続後にmysqlを使った認証が走ると思うのですが?

/usr/lib/courier-imap/etc/pop3d

MAILDIRPATH=Maildir を MAILDIRPATH=user@domain(ディレクトリ名)
に変えると、認証が通り、メールも受信することが出来ました。
その時のログはこれです

/var/log/maillog
Jul 7 22:26:55 *** pop3d: Connection, ip=[::ffff:**.**.**.***]
Jul 7 22:26:56 *** pop3d: LOGIN, user=user@domain, ip=[::ffff:**.**.**.***]
Jul 7 22:26:56 *** pop3d: LOGOUT, user=user@domain, ip=[::ffff:**.**.**.***], top=0, retr=0, time=0

これで動いても全然意味無いんですよね・・・
おやじさんのところでは MAILDIRPATH=Maildir で何も問題なく
動いているのでしょうか?
また、何かログにおかしなところがあるなら指摘してください。
(MySQLを使った認証が使われると違うログが出るのかな?)

よろしくお願いします。


No.4912 投稿時間:2005年07月07日(Thu) 23:23 投稿者名:おやじ URL:
タイトル:クライアントの設定では?

> > pop3接続後にmysqlを使った認証が走ると思うのですが?
>
> /usr/lib/courier-imap/etc/pop3d
> の
> MAILDIRPATH=Maildir を MAILDIRPATH=user@domain(ディレクトリ名)
> に変えると、認証が通り、メールも受信することが出来ました。
> その時のログはこれです
>
> /var/log/maillog
> Jul 7 22:26:55 *** pop3d: Connection, ip=[::ffff:**.**.**.***]
> Jul 7 22:26:56 *** pop3d: LOGIN, user=user@domain, ip=[::ffff:**.**.**.***]
> Jul 7 22:26:56 *** pop3d: LOGOUT, user=user@domain, ip=[::ffff:**.**.**.***], top=0, retr=0, time=0
>
> これで動いても全然意味無いんですよね・・・
> おやじさんのところでは MAILDIRPATH=Maildir で何も問題なく
> 動いているのでしょうか?
> また、何かログにおかしなところがあるなら指摘してください。
> (MySQLを使った認証が使われると違うログが出るのかな?)

ログは/etc/authlib/authdaemonrcのDEBUGLOGが1以上でないと出ません。
単純な話ですが、受信メールサーバのアカウント名をoyaji@mail.aconus.comのようにドメインまでチャント指定して入れてますか?
複数ドメイン対応になるので、ドメインは必須になります。
もしいやなら、/etc/authlib/authmysqlrcのDEFAULT_DOMAINを指定すれば、そのドメインだけは省略できますが、webmailやpostfixadminでの運用を考えると癖としてドメインまで含めて扱うようにした方がよいかと思います。


No.4913 投稿時間:2005年07月08日(Fri) 03:58 投稿者名:NeCo URL:
タイトル:解決しました

おやじ様の言うとおりに、
DEBUGLOGINを3にしてみてログを見てみたところ、
maildir=<null>,になっていました。
そこで、/etc/authlib/authmysqlrc を見直したところ、
MYSQL_MAILDIR_FIELD の行頭に半角スペースが・・・

おそらくこれのせいでDBのmaildirフィールドを読み出せていなかったようです。
半角スペースを削除したところ、問題なく動き出しました。
これだけのことに、合わせて半日以上費やしてしまった・・・orz

おやじ様、ご対応ありがとうございました。

ああ、今度はPHPからのMySQL接続ユーザのほう調べなきゃ・・・


No.4914 投稿時間:2005年07月08日(Fri) 07:04 投稿者名:おやじ URL:
タイトル:DB作成時にpostfixadminになってます

> おそらくこれのせいでDBのmaildirフィールドを読み出せていなかったようです。
> 半角スペースを削除したところ、問題なく動き出しました。
> これだけのことに、合わせて半日以上費やしてしまった・・・orz

そういうものですよね。これがいやならレンタルサーバを考えるしかないですし。

> ああ、今度はPHPからのMySQL接続ユーザのほう調べなきゃ・・・

# mysql -u root -p < DATABASE_MYSQL.TXT

で作成されるのは、postfixadminというユーザです。従って、単純に、config.inc.phpでuserをapacheに変更しても駄目です。
DATABASE_MYSQL.TXTの中身を見れば、一目瞭然です。


No.4927 投稿時間:2005年07月12日(Tue) 04:52 投稿者名:NeCo URL:
タイトル:Re: DB作成時にpostfixadminになってます

レス遅れましてすみません。

私の言葉足らずで、伝わってなかったようです。申し訳ありません。

これは、PostfixAdminのPHPプログラムの中で、
SQL構文にするときに、特殊文字をエスケープする関数があり、
その関数がSQLServerの種類を調べるためにコネクトする時、
直前にコネクトした設定で繋ぐとのことだったらしいです。
(無ければデフォルトを使う?)
うちの環境ではそれが、apache@localhost(pass無し)
で接続するようだったので、
MySQLに無権限のapache@localhostユーザー
を登録することで解決しました。

config.inc.phpの方ではpostfixadminユーザを使うように設定していましたので、問題なく動きました。

おやじ様のご助力に感謝します。ありがとうございました。



掲示板▲頁先頭