roundcube邮箱怎么改密码_安装Webmail客户端Roundcube

为什么要安装Roundcube主要有两方面原因:第一,代收Riseup邮件,因某些原因Riseup需要代理访问,同理也可添加其它邮箱账户如Gmail;第二,自Roundcube1.4发布以后,系统所带的新主题“Elastic”非常惊艳,autistici邮箱也已经切换为“Elastic”。

系统环境

  1. VPS:Amazon Lightsail
  2. 操作系统:Ubuntu 18.04
  3. 服务器:Apache 2.4.29
  4. PHP版本:7.2.24
  5. 数据库:Mysql Ver 14.14 Distrib 5.7.29

软件下载

  1. 下载Roundcube登陆https://roundcube.net/download/,下载Roundcube1.4.3 Complete版本。也可以直接在服务器运行wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.3/roundcubemail-1.4.3-complete.tar.gz
  2. 解压Roundcube压缩文件tar xvf roundcubemail-1.4.3-complete.tar.gz
  3. 将文件夹移动到/var/www/sudo mv roundcubemail-1.4.3 /var/www/roundcube
  4. 该Roundcube文件夹拥有者为www-datasudo chown -R www-data: roundcube/

Apache设置

  1. DNS设置添加“A”记录,将“mail”主机记录对应到VPS ip地址,仅供参考。
  2. 进入Apache存放网站配置文件的文件夹cd /etc/apache2/sites-available/
  3. 创建config文件sudo cp 000-default.conf mail.conf
  4. 编辑配置文件sudo nano mail.conf
    以httpsmail为例:ServerAdmin me@httpsmail.com
    ServerName mail.httpsmail.com
    DocumentRoot /var/www/roundcube
  5. 启用配置文件sudo a2ensite mail.conf
  6. 重启服务器sudo systemctl restart apache2.service
    或重载服务器sudo systemctl reload apache2.service

安装PHP及扩展

  1. 安装PHPsudo apt install php-fpm
  2. PHP扩展,可参考官方wiki: https://github.com/roundcube/roundcubemail/wiki/Install-Requirements。在后期安装Roundcube时也会有提示,缺哪个就安哪个即可。
    1. PHP version 5.4.1 or greater with
      1. PCRE (Perl-Compatible Regular Expressions)
      2. DOM
      3. JSON
      4. XML
      5. Mbstring
      6. OpenSSL
      7. Session support
      8. Socket support
      9. PHP Data Objects (PDO) with driver for either MySQL, PostgreSQL, SQL Server or SQLite
      10. Iconv (optional)
      11. FileInfo (optional)
      12. Zip (optional)
      13. Pspell (optional)
    2. PEAR packages distributed with Roundcube or external:
      1. Mail_Mime 1.10.0 or newer
      2. Net_SMTP 1.7.1 or newer
      3. Net_Socket 1.2.1 or newer
      4. Net_IDNA2 0.1.1 or newer
      5. Auth_SASL 1.1.0 or newer
      6. Net_Sieve 1.4.0 or newer (for managesieve plugin)
      7. Crypt_GPG 1.6.1 or newer (for enigma plugin)
      8. Net_LDAP2 2.2.0 or newer (for LDAP address books)
      9. kolab/Net_LDAP3 1.0.6 or newer (for LDAP address books)
  3. 重启PHPsudo systemctl restart php7.2-fpm.service

Mysql数据创建

  1. 安装PHP数据库扩展sudo apt install php-mysql
  2. 数据库安装sudo mysql_secure_installation
  3. 登陆数据库sudo mysql -u root -p
  4. 创建DatabaseCREATE DATABASE roundcubemail;
  5. 创建用户、密码及权限GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY '密码';
  6. 刷新FLUSH PRIVILEGES;

安装、配置Roundcube

  1. 访问“Mail域名/installer”,如http://mail.httpsmail.com/installer,按步骤一步一步安装、配置即可。
  2. STEP 1 主要检测运行环境、相关软件、扩展和设置是否正确。“Checking available databases”一栏“MySQL: OK”即可,其它数据库显示“NOT AVAILABLE”不影响安装使用。除此之外,必须确保所有项目状态为OK。时区设置sudo nano /etc/php/7.2/apache2/php.ini
    将date.timezone改为date.timezone = Asia/Shanghai。
  3. STEP 2 General configuration:按实际情况填写,也可以默认Logging & Debugging:同上Database setup:数据库按上文Mysql数据创建第5步创建的信息填写,如果没自己更改的话,只填密码即可,其它的默认。IMAP Settings:以Riseup为例default_host:ssl://mail.riseup.netdefault_port:993username_domain:riseup.net(添加域名后,登陆就不需要输入邮箱后缀了)其它:默认SMTP Settings:以Riseup为例smtp_server:ssl://mail.riseup.netsmtp_port:465其它:可默认Display settings & user prefs:可默认Plugins:Roundcube插件,按需添加。”enigma“插件是用于邮件PGP加密解密的。
  4. STEP 3 测试确保所有项目状态为”OK“,若”Check DB config“处”DB Schema: NOT OK“,点击下面的Initialize database按钮初始化数据库即可。

登陆邮箱

访问邮箱地址,输入用户名和密码就可以使用了。

bc2ad6af648d3702502388ff6658595e.png

邮箱界面

aab2b771e5589ca1514ca2e0fed6135b.png
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MyBatis是一个流行的持久层框架,它可以将SQL语句和Java对象之间的映射关系定义在XML文件或注解中,并提供了丰富的查询语言和灵活的参数绑定方式。在使用MyBatis进行数据操作时,有时会遇到插入唯一异常的问题,下面让我们一起来看看如何解决这个问题。 1. 异常描述 当我们向数据库插入一条记录时,如果违反了唯一性约束,就会抛出插入唯一异常,如下所示: ``` ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'name_unique' ### The error may involve com.example.mapper.UserMapper.insert-Inline ### The error occurred while setting parameters ### SQL: insert into user(name, age) values (?, ?) ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'name_unique' ``` 其中,'xxx'表示违反唯一性约束的值,'name_unique'表示违反唯一性约束的字段名。 2. 解决方法 为了避免插入唯一异常,我们可以采取以下两种解决方法: 2.1 使用INSERT IGNORE语句 在MySQL中,可以使用INSERT IGNORE语句来向表中插入记录,如果遇到违反唯一性约束的情况,就会忽略该记录,而不是抛出异常。因此,我们可以将MyBatis的插入语句为INSERT IGNORE语句,如下所示: ``` <insert id="insertUser" parameterType="com.example.entity.User"> INSERT IGNORE INTO user(name, age) VALUES (#{name}, #{age}) </insert> ``` 2.2 使用ON DUPLICATE KEY UPDATE语句 在MySQL中,还可以使用ON DUPLICATE KEY UPDATE语句来向表中插入记录,如果遇到违反唯一性约束的情况,就会更新该记录,而不是抛出异常。因此,我们可以将MyBatis的插入语句为ON DUPLICATE KEY UPDATE语句,如下所示: ``` <insert id="insertUser" parameterType="com.example.entity.User"> INSERT INTO user(name, age) VALUES (#{name}, #{age}) ON DUPLICATE KEY UPDATE age = #{age} </insert> ``` 其中,ON DUPLICATE KEY UPDATE语句指定了更新操作的字段和值,这里我们只更新了年龄字段。 以上就是解决MyBatis插入唯一异常的两种方法,根据具体情况选择适合自己的方法即可。 ### 回答2: 在使用MyBatis进行插入操作时,可能会遇到插入唯一异常。该异常通常是由于数据库表的唯一约束导致的。 当我们向数据库表插入数据时,如果违反了唯一约束,数据库将抛出异常,表示插入失败。常见的唯一约束有主键约束、唯一索引等。 解决这个问题的方法有两种: 1. 在程序中进行唯一性校验:在执行插入操作之前,可以先查询数据库中是否已存在相同的数据。如果已存在,则不进行插入操作,避免了唯一异常的发生。这种方法比较消耗数据库资源,但可以保证数据的唯一性。 2. 使用数据库的"insert ignore"或"insert on duplicate key update"语句:这种方法是在插入操作时,使用特殊的语句来处理唯一异常。"insert ignore"语句会即使发生唯一异常,也不会抛出异常,而是直接忽略这条插入数据;"insert on duplicate key update"语句则是在发生唯一异常时,执行更新操作。这种方法相对较为简洁高效,但需要根据数据库的不同进行调整。 总结来说,解决MyBatis插入唯一异常的方法有多种,可以通过程序中进行唯一性校验,或者使用特殊的数据库插入语句来处理。需要根据具体情况选择最合适的方法来解决唯一异常问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值