Roundcube mail

Mail 2020. 9. 15. 09:27

Roundcube mail

Roundcube 란?

RoundcubeMail은 IMAP 클라이언트 기반 응용프로그램으로 다국어 사용자 인터페이지를 지원합니다. 또한 전자메일,주소록,MIME,편지함설정,메세지검색,맞춤법검사등 많은 기능을 제공합니다

PCRE, DOM, Session, JSON, XML, PDO_MYSQL 모듈은 필수적으로 설치가 되어 있어야 하며 PHP를 이용하며 MYSQL 데이터베이스를 필요로 합니다. XHTML과 CSS2를 사용하여 스킨을 만들수 있어 사용자 인터페이스를 완벽히 지원 가능한 웹메일 솔루션 입니다.

설치 환경은 다음과 같습니다
Centos 7 apache 2.4.3
mysql 5.7.14
php-7.2.17
sendmail-8.14.7-6.el7.x86_64
dovecot-2.2.36-6.el7.x86_64

5개가 설치되어 있어야한다.
apache -> mysql -> php -> sendmail -> dovecot -> roundcube mail 이렇게 순서가 되야한다.
하나라도 빠져있으면 안된다.

라운드큐브 버전에 따른 php 버전 요구 사항이다.

Version 1.6

  • Initial release: TBC
  • PHP support: >=7.3 <=8.1

Version 1.5

  • Initial release: 18 October 2021
  • PHP support: >=5.5 <=8.0

Version 1.4

  • Initial release: 09 November 2019
  • PHP support: >=5.4 <=7.4

Version 1.3

  • Initial release: 26 June 2017
  • PHP support: >=5.4 <=7.3

Version 1.2

  • Initial release: 21 May 2016
  • PHP support: >=5.3 <=7.0

Version 1.1

  • Initial release: 07 February 2015
  • PHP support: >=5.3 <=5.6

Version 1.0

  • Initial release: 05 April 2014
  • PHP support: >=5.2 <=5.5

Version 0.9

  • Initial release: 15 April 2013
  • PHP support: >=5.2 <=5.4

Version 0.8

  • Initial release: 06 August 2012
  • PHP support: >=5.2 <=5.4

Version 0.7

  • Initial release: 29 December 2011
  • PHP support: >=5.2 <=5.3

Version 0.6

  • Initial release: 29 September 2011
  • PHP support: >=5.2 <=5.3

Version 0.5

  • Initial release: 12 January 2011
  • PHP support: >=5.2 <=5.3

Version 0.4

  • Initial release: 07 August 2010
  • PHP support: >=5.2 <=5.3

Version 0.3

  • Initial release: 04 September 2009
  • PHP support: >=5.2 <=5.3

Version 0.2

  • Initial release: 30 December 2008
  • PHP support: 5.2

Version 0.1

  • Initial release: 05 March 2008
  • PHP support: 5.2

 


이전 설정파일 중요한것들
vi /etc/hosts

IP주소(example : 123.123.123.123) naruto.tk

 

vi /etc/mail/access
Connect:naruto.tk RELAY

 
vi /etc/mail/virtusertable
guest1234@naruto.tk guest1234
 

vi /etc/mail/local-host-names
naruto.tk

========================================================================

Roundcubemail 설치


cd /usr/local/src
wget https://github.com/roundcube/roundcubemail/releases/download/1.3.9/roundcubemail-1.3.9-complete.tar.gz
tar zxvf roundcubemail-1.3.9-complete.tar.gz

mkdir -p /home/postmaster
압축 푼 roundcube 파일을 웹소스(웹메일 소스) 부분으로 옮겨 줍니다

cp -arpR /usr/local/src/roundcubemail-1.3.9 /home/postmaster
mv /home/postmaster/roundcubemail-1.3.9 /home/postmaster/webmail

apache의 vhost에등록해줍니다
(필자는 php-fpm을 사용하기때문에 써줘야한다. 만약 한서버에 php1개만 써서 연동해서 쓰신다면 파란색부분은 삭제하시고 쓰셔도 됩니다. 단php-fpm을 쓰실경우에는 저걸 추가해야한다.)
========================================================================

Apache설정파일 수정
 
vi /usr/local/apache/conf/httpd.conf
 
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
 
<Directory />
    AllowOverride All
    Require all granted
</Directory>
 
 
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
 
 
주석해체 및 변경

========================================================================

PHP-FPM을 사용안할때
 
vi /usr/local/apache/conf/extra/httpd-vhosts.conf


<VirtualHost *:80>
DocumentRoot "/home/postmaster/webmail"
ServerName mail.도메인.tk
ErrorLog "/usr/local/apache/logs/dummy-mail.도메인.tk-error_log"
CustomLog "/usr/local/apache/logs/dummy-mail.도메인.tk-access_log" common
</VirtualHost>

========================================================================
PHP-FPM을 사용했을때 
 

<VirtualHost *:80>
DocumentRoot "/home/postmaster/webmail"
ServerName 도메인.tk
<IfModule proxy_fcgi_module>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9055/home/postmaster/webmail/$1
</IfModule>

 ErrorLog "/usr/local/apache/logs/도메인.tk_error_log"

CustomLog "/usr/local/apache/logs/도메인.tk_access_log" common
</VirtualHost>

파란부분은 PHP-FPM을 사용한다면 쓴다.
========================================================================

권한설정
 
chmod 755 -R /home/postmaster(자신이 원하는 디렉토리로 변경 가능)

========================================================================

MySQL DB생성 및 계정 생성,권한부여
 
MySQL 8.0미만 버전
 
mysql -uroot -p 

mysql>
create database roundcubemail;
grant all privileges on roundcubemail.* to 'roundcube'@'%' identified by 'qwer1234';
grant all privileges on roundcubemail.* to 'roundcube'@'localhost' identified by 'qwer1234';
flush privileges;

========================================================================

MySQL 8.0이상 버전
 
mysql -uroot -p 

mysql> e

create database roundcubemail;

mysql> 들어가고

create user 'roundcube'@'localhost' identified by '1234';

create user 'roundcube'@'%' identified by '1234';

grant all privileges on roundcubemail.* to 'roundcube'@'%' ;

grant all privileges on roundcubemail.* to 'roundcube'@'localhost';

flush privileges;

========================================================================

Freenom에서 dns 설정

 

A        3600    IP(123.123.123.123)

MAIL         A        3600    IP(123.123.123.123)

MAIL        MX      3600    도메인(qwerasdf.com)

Priority : 10

 

========================================================================

RoundcubeMail 도메인에서 설치

 

cd /home/postmaster/webmail/SQL
mysql -u root -p roundcubemail < mysql.initial.sql

오류 발생시
ERROR 1071 (42000) at line 51: Specified key was too long; max key length is 767 bytes

#vi /etc/my.cnf

[mysqld]
innodb_file_format=Barracuda
innodb_file_per_table=on
innodb_large_prefix=1
innodb_file_format_max=Barracuda

도메인/installer 로 접속하여 설치를 시작합니다

접속하게 되면 intl, LDAP ,Imagick 모듈을 찾을 수 없고 allow_url_fopen, date.time.zone NOT OK 로 나오게 됩니다 php 설치 파일을 찾아 intl 과 Ldap 모듈을 설치하겠습니다.
========================================================================

intl PHP에 추가모듈설치


cd /usr/local/src/php-5.5.15/ext/intl
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-intl
make -j 8 && make install
vi /usr/local/php-5.5/etc/php.ini

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20121212/

 
mkdir /usr/local/php/modules

cp /usr/local/php/lib/php/extensions/no-debug-zts-20190902/intl.so /usr/local/php/modules/intl.so

 
설정된 php.ini 파일로 간다. vi ~~~~/php.ini


extension_dir="/usr/local/php-5.5/lib/php/extensions/no-debug-zts-20121212/"
extension="intl.so"
여기서 ls /usr/local/php-5.5/lib/php/extensions/no-debug-zts-20121212/
확인해본다. intl.so가 있는지 확인.
========================================================================

ldap PHP에 추가모듈설치

 

cd /usr/local/src/php-5.5.15/ext/ldap
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
오류나면 cp -arp /usr/lib64/libldap* /usr/lib/
make && make install

vi /usr/local/php-5.5/etc/php.ini

extension_dir="/usr/local/php-5.5/lib/php/extensions/no-debug-zts-20121212/"
extension=ldap.so //한줄더 추가
여기서 ls /usr/local/php-5.5/lib/php/extensions/no-debug-zts-20121212/
확인해본다. ldap.so가 있는지 확인.

cp /usr/local/php/lib/php/extensions/no-debug-zts-20121212/ldap.so /usr/local/php/modules/ldap.so

========================================================================

 
imagick PHP에 추가모듈설치


imagick 은 패키지와 설치 파일을 다운받아야합니다
cd /usr/local/src
wget https://pecl.php.net/get/imagick-3.4.4.tgz
tar zxvf imagick-3.4.4.tgz
cd imagick-3.4.4

yum install -y ImageMagick ImageMagick-devel
/usr/local/php-5.5/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make -j 8 && make install

vi /usr/local/php/etc/php.ini

extension_dir="/usr/local/php-5.5/lib/php/extensions/no-debug-zts-20121212/"
extension=imagick.so //한줄더 추가

========================================================================

추가설정(url_fopen, timezone)

 

 


vi /usr/local/php-5.5/etc/php.ini

allow_url_fopen =Off ---- > ON
data.timezone = Asia/Seoul

systemctl restart apachectl

========================================================================

Checking available databases에 MySQL : OK 와 SQLite만 OK되어있으면 통과

 

 

모두 ok 를 확인하고 다음으로 넘어갑니다 다음은 DB 부분으로 DB 정보와 맞는지 확인하고 패스워드를 적어줍니다

========================================================================

========================================================================

IMAP 부분에 도메인을 적어줍니다.
예) 도메인이름.tk (naruto.tk 로 했을때 안되는 경우도 있다.)

smtp 부분에 mail.도메인을 입력해줍니다.
예) mail.도메인이름.tk
language 에다가 ko_KR 입력


그리고 Display setting & user prefs 에서 ko_KR 입력

 

Save in /tmp 를 눌러 /tmp 에 저장후 config 폴더에 추가해줍니다

cp -arp /tmp/config.inc.php /home/postmaster/webmail/config/

Continue 를 눌러주면 SMTP 와 IMAP 테스트를 해줍니다

또는 저 빨간박스내용을 전체복사해서

vi /home/postmaster/webmail/config/config.inc.php 에 그대로 붙여넣기해줍니다.

Check if directories are writable
Roundcube may need to write/save files into these directories
/home/postmaster/webmail/temp/: NOT OK
/home/postmaster/webmail/logs/: NOT OK

여기서 NOT OK 일경우

 

cd /home/postmaster/webmail
chmod 707 logs temp

아래의 NOT OK는 Initialize database를 눌러주면 해결됩니다.

또는 cd /home/postmaster/roundcube/SQL && mysql -u root -p roundcubemail < mysql.initial.sql

 

Test filetype detection

Fileinfo/mime_content_type configuration: OK
Mimetype to file extension mapping: NOT OK

여기서 NOT OK 일경우

ll /usr/local/apache-2.4/conf/mime.types
vi /home/postmaster/webmail/config/config.inc.php
$config['mime_types'] = '/usr/local/apache-2.4/conf/mime.types';


Test SMTP config 에서 타 도메인으로 시범메일을 보낼 수 있다.
Sender 는 서버에 있는 유저 아이디 ex) user1@서버의도메인, user1@naruto.tk
Recipient는 타 도메인의 이메일주소 ex) test1@test.com

Test IMAP config 에서는
username을 서버에 있는 유저아이디
비밀번호 또한 서버의 있는 유저아이디의 비밀번호를 입력해준다.
IMAP connect: NOT OK(Login failed for guest1 from 14.47.65.154. Could not connect to serudong.tk:143: Connection refused)

이런 문구가 뜬다면 서버에서 dovecot 서비스데몬이 켜져있나 확인하자.
netstat -ntlp
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 19587/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 19587/dovecot

 


잠깐 Mail,DNS,http,php,sendmail,dovecot 다맞아야 메일이 보내진다.


테스트가 완료가 되었다면 installer 부분을 삭제해줍니다

rm -rf /home/postmaster/webmail/installer/

http:// 도메인 을 입력하면 로그인 창이 뜨게 됩니다

일반계정으로 로그인합니다
로그인시 권한이 없다고 나올시

오류가 발생했습니다.!
작업을 수행할 수 없습니다. 권한이 거부되었습니다.

chmod -R 755 /var/mail
chmod -R 755 /var/spool/mail

입력하시면 되며 추가로 ptr 레코드 등록 해주셔야 메일 수발신이 원할하게 적용될수있습니다


Roundcube 메일테스트

로그인 후 작성 버튼을 눌러 메일을 보낼수 있습니다

 

타서버 계정으로 메일이 온것을 확인할 수 있습니다

 

타서버 계정으로 메일이 온것을 확인할 수 있습니다


받은 편지함에 메일이 온것을 확인할수 있습니다 이상으로 roundcube 메일 설치를 마치겠습니다

'Mail' 카테고리의 다른 글

다람쥐메일(squirrelmail) 설치 방법  (0) 2020.10.05
Qmail 설치  (0) 2020.09.28
QMail 특징 및 필요 개발모듈  (0) 2020.09.21
Dovecot 설치 및 설정  (0) 2020.09.15
sendmail 설치 설정  (0) 2020.09.08
Posted by returnrisk
,