我有一个postfix安装和配置的邮件服务器,如
http://flurdy.com/docs/postfix/index.html所示.
我使用MysqL数据库maildb与表用户有两个文件ID =’user@domain.com’和crypt =’salted_md5_hash’.使用如下查询更新密码:
我使用MysqL数据库maildb与表用户有两个文件ID =’user@domain.com’和crypt =’salted_md5_hash’.使用如下查询更新密码:
UPDATE users SET crypt = ENCRYPT('apassword',CONCAT('$5$',MD5(RAND()))) WHERE id = 'user@domain.tld';
Roundcube 1.0-RC根据http://trac.roundcube.net/wiki/Howto_Install安装
如何设置roundcube密码插件以使用上述安装?
解决方法
编辑roundcube main config.inc.PHP并将插件名称’password’添加到plugins array(),如下所示,以激活插件:
// List of active plugins (in plugins/ directory) $config['plugins'] = array('password');
您还可以记下圆形立方体使用的DSN连接到’roundcube’MysqL数据库$config [‘db_dsnw’] =’MysqL:// user:pass @ localhost / roundcube’
cd into … / roundcube_www_root / plugins / password /并创建config.inc.PHP
# cp config.inc.PHP.dist config.inc.PHP # vi config.inc.PHP
<?PHP $config['password_driver'] = 'sql'; $config['password_confirm_current'] = true; $config['password_minimum_length'] = 8; $config['password_require_nonalpha'] = false; $config['password_log'] = false; $config['password_login_exceptions'] = null; // If the server is accessed via fqdn,replace localhost by the fqdn: $config['password_hosts'] = array('localhost'); $config['password_force_save'] = true; // sql Driver options $config['password_db_dsn'] = 'MysqL://user:pass@localhost/maildb'; // sql Update Query with encrypted password using random 8 character salt $config['password_query'] = 'UPDATE users SET crypt=ENCRYPT(%p,CONCAT(_utf8\'$5$\',RIGHT(MD5(RAND()),8),_utf8\'$\')) WHERE id=%u LIMIT 1'; ...
更新:在某些情况下,localhost似乎无法工作,需要由Terry报告的127.0.0.1替换
更新:我最近不得不将圆形主机主配置(config / config.inc.PHP)中的参数$config [‘default_host’]更改为fqdn而不是localhost.因此我不得不将插件配置(plugins / password / config.inc.PHP)中的参数$config [‘password_hosts’]更改为服务器fqdn.
有关详细信息,请参阅… / plugins / password / README和… / plugins / password / config.inc.PHP.dist.
假设您将使用相同的MysqL用户作为密码插件来更新密码,您必须将’maildb’中的’users’表的GRANT SELECT和UPDATE权限授予’roundcube’MysqL用户:
# MysqL -u root -p MysqL > GRANT SELECT,UPDATE ON maildb.users TO 'roundcube'@'localhost'; MysqL > FLUSH PRIVILEGES; MysqL > quit #
# tail -f ../../logs/error