웹메일 설치 · 6 min read · Sep 29, 2025

ISPConfig에서 PEAR를 통해 Debian Jessie에 Horde 5 웹메일 설치하기

Horde는 이메일, 캘린더, 작업, 연락처 관리 및 기타 여러 기능을 제공하는 그룹웨어 제품군입니다. 또한 SyncML 및 ActiveSync를 제공하여 휴대폰이나 기타 소프트웨어와 동기화할 수 있습니다. Horde에 대한 자세한 내용은 그들의 웹 페이지에서 확인할 수 있습니다: http://www.horde.org/

이 Howto는 Debian Jessie에 대한 ISPConfig 3 설치(Apache2, Bind, Dovecot) 및 모든 패키지를 따랐다고 가정합니다.

1. 필요한 패키지 설치하기

apt-get install php5-sasl php5-intl libssh2-php php5-curl php-http php5-xmlrpc php5-geoip php5-ldap php5-memcache php5-memcached php5-tidy

2. 충돌하는 패키지 제거하기

php5-xcache 패키지는 Horde와 작동하지 않습니다. php5-xcache 대신 memcache와 같은 다른 캐시 도구를 사용할 수 있습니다.

apt-get remove php5-xcache

3. Horde Pear 채널 등록하기

pear channel-discover pear.horde.org

4. Horde 설치 디렉토리 설정하기

pear install horde/horde_role  
pear run-scripts horde/horde_role

다음 질문을 받게 됩니다:

기본 Horde 애플리케이션의 파일 시스템 설치: /var/www/horde

웹에서 접근 가능한 Horde 파일을 위한 다른 폴더를 선택할 수도 있습니다. 그러나 이후 단계에서 경로를 조정해야 합니다.

5. Horde Groupware 웹메일 에디션 설치하기

pear install -a -B horde/webmail

이 과정은 시간이 걸리며 누락된 pear 패키지에 대한 오류가 발생할 수 있습니다. 이는 나중에 수정됩니다.

6. MySQL 데이터베이스 생성하기

Horde 설치 스크립트는 스스로 MySQL 데이터베이스를 생성하지 않습니다. 따라서 먼저 데이터베이스와 해당 사용자를 생성해야 합니다.

MySQL 셸에 다음과 같이 입력합니다:

mysql -u root -p

입력 후, 데이터베이스와 사용자 ‘horde’를 비밀번호 ‘PASSWORD’로 생성합니다. 데이터베이스 이름, 사용자 이름을 변경하려면 해당 정보를 변경하십시오. 물론 자신의 비밀번호를 설정해야 합니다.

CREATE DATABASE horde;  
GRANT ALL ON horde.* TO horde@localhost IDENTIFIED BY 'PASSWORD';  
FLUSH PRIVILEGES;

MySQL 셸을 종료합니다.

exit;

7. 설치 스크립트 실행하기

webmail-install

다음 질문을 받게 됩니다:

어떤 데이터베이스 백엔드를 사용해야 합니까? mysql

데이터베이스에 연결할 사용자 이름: 이전 단계에서 설정한 사용자 이름

연결할 비밀번호: 이전 단계에서 설정한 비밀번호

데이터베이스에 어떻게 연결해야 합니까? unix

UNIX 소켓의 위치: 그냥 [enter]를 누르세요

사용할 데이터베이스 이름: 이전 단계에서 설정한 데이터베이스 이름

내부에서 사용되는 문자 집합: utf-8

서버에 연결하기 위해 SSL을 사용합니까? 0 *

SSL 연결에 사용할 인증 기관: 그냥 [enter]를 누르세요

읽기를 다른 서버로 분할합니까? false

관리자 권한을 부여할 기존 메일 사용자 지정(선택 사항): [email protected]

  • 각 도메인에 대해 SSL 인증서를 제공할 수 있는 경우에만 SSL을 1로 설정하십시오.

기존 이메일 사용자를 선택하십시오. 해당 사용자는 Horde 내에서 구성 권한을 갖습니다. 이는 초기 구성 파일을 생성하는 데 필요합니다.

8. 사용자 정의 phptmp 폴더 생성 및 horde 폴더의 소유권을 Apache 사용자에게 부여하기

mkdir /var/www/horde/phptmp/  
chown -R www-data:www-data /var/www/horde

9. 추가 PEAR 구성 요소 추가하기

pear install channel://pear.php.net/Console_GetoptPlus-1.0.0RC1  
pear install horde/Horde_ManageSieve  
pear install channel://pear.php.net/XML_Serializer-0.20.2  
pear install channel://pear.php.net/Date_Holidays-0.21.8  
pear install channel://pear.php.net/Text_LanguageDetect-0.3.0  
pear install pear/HTTP_Request2  
pear install channel://pear.php.net/Console_Color2-0.1.2  
pear install channel://pear.php.net/Numbers_Words-0.18.1  
pear install channel://pear.php.net/Image_Text-0.7.0  
pear install pear/Console_Getargs

10. 로컬 PEAR 휴일 캘린더 추가하기 (선택 사항)

PEAR에서 이미 여러 휴일 캘린더를 사용할 수 있습니다. 기본적으로 설치되어 있지 않습니다. 설치하려는 경우 다음 캘린더 중 하나 이상을 선택하십시오. 이는 Horde Kronolith(=캘린더)가 해당 국가의 휴일을 표시할 수 있도록 합니다. 물론, PEAR 설치에 자신의 사용자 정의 캘린더를 추가할 수도 있습니다.

pear install channel://pear.php.net/Date_Holidays_Australia-0.2.2  
pear install channel://pear.php.net/Date_Holidays_Austria-0.1.6  
pear install channel://pear.php.net/Date_Holidays_Brazil-0.1.2  
pear install channel://pear.php.net/Date_Holidays_Croatia-0.1.1  
pear install channel://pear.php.net/Date_Holidays_Czech-0.1.0  
pear install channel://pear.php.net/Date_Holidays_Denmark-0.1.3  
pear install channel://pear.php.net/Date_Holidays_Discordian-0.1.1  
pear install channel://pear.php.net/Date_Holidays_EnglandWales-0.1.5  
pear install channel://pear.php.net/Date_Holidays_Finland-0.1.2  
pear install channel://pear.php.net/Date_Holidays_Germany-0.1.2  
pear install channel://pear.php.net/Date_Holidays_Iceland-0.1.2  
pear install channel://pear.php.net/Date_Holidays_Ireland-0.1.3  
pear install channel://pear.php.net/Date_Holidays_Italy-0.1.1  
pear install channel://pear.php.net/Date_Holidays_Japan-0.1.3  
pear install channel://pear.php.net/Date_Holidays_Netherlands-0.1.4  
pear install channel://pear.php.net/Date_Holidays_Norway-0.1.2  
pear install channel://pear.php.net/Date_Holidays_PHPdotNet-0.1.2  
pear install channel://pear.php.net/Date_Holidays_Portugal-0.1.1  
pear install channel://pear.php.net/Date_Holidays_Romania-0.1.2  
pear install channel://pear.php.net/Date_Holidays_SanMarino-0.1.1  
pear install channel://pear.php.net/Date_Holidays_Serbia-0.1.0  
pear install channel://pear.php.net/Date_Holidays_Slovenia-0.1.2  
pear install channel://pear.php.net/Date_Holidays_Spain-0.1.4  
pear install channel://pear.php.net/Date_Holidays_Sweden-0.1.3  
pear install channel://pear.php.net/Date_Holidays_Turkey-0.1.1  
pear install channel://pear.php.net/Date_Holidays_Ukraine-0.1.2  
pear install channel://pear.php.net/Date_Holidays_UNO-0.1.3  
pear install channel://pear.php.net/Date_Holidays_USA-0.1.1  
pear install channel://pear.php.net/Date_Holidays_Venezuela-0.1.1

11. /etc/apache2/conf-available/horde.conf 파일 생성하기

Alias /Microsoft-Server-ActiveSync /var/www/horde/rpc.php
Alias /horde /var/www/horde

           Options +FollowSymLinks
           AllowOverride All
           Require all granted
           AddType application/x-httpd-php .php
           php_value include_path ".:/usr/share/php"
           php_value open_basedir "none"
           php_value upload_tmp_dir "/var/www/horde/phptmp/"

그런 다음 이 새로운 Apache 구성 스니펫을 활성화합니다:

a2enconf horde

12. Apache 재시작하기

/etc/init.d/apache2 restart

13. /var/www/horde/config/conf.php 파일 편집하기

$conf['testdisable'] = false; 

14. 임의의 도메인에서 Horde 테스트 페이지 열기

http://www.domain.com/horde/test.php

대부분의 설정이 이제 괜찮아야 합니다. 그러나 기본 PHP 가비지 수집 관련 일부를 변경할 수 있습니다.

/var/www/horde/conf/conf.php 파일을 다시 편집하고 테스트 페이지를 비활성화합니다.

$conf['testdisable'] = true;

15. BaseRewrite 옵션 수정하기

기본 설정은 BaseRewrite 옵션을 제대로 인식하지 못하여 Nag가 항목을 추가/편집하지 못하게 합니다. 이를 수정하려면 /var/www/horde/.htaccess 파일을 편집하고 다음을 검색합니다:


    RewriteEngine On
    RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond   %{REQUEST_FILENAME}  !-d
    RewriteCond   %{REQUEST_FILENAME}  !-f
    RewriteRule ^(.*)$ rampage.php [QSA,L]

그리고 전체 블록을 다음으로 교체합니다:


    RewriteEngine On
    RewriteBase /horde
    RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteCond   %{REQUEST_FILENAME}  !-d
    RewriteCond   %{REQUEST_FILENAME}  !-f
    RewriteRule ^(.*)$ rampage.php [QSA,L]

알림: Horde를 업데이트할 때 이 파일이 덮어씌워질 수 있습니다. 그런 경우 다시 편집하십시오.

16. 사용자가 Horde에서 비밀번호를 변경할 수 있도록 허용하기 (선택 사항)

Horde는 사람들이 Horde 내에서 ISPConfig 비밀번호를 변경할 수 있도록 할 수 있습니다. 이를 위해 Horde는 ISPConfig와 함께 작동하도록 구성해야 하는 Passwd 애드온을 제공합니다.

애드온을 설치하고 Apache 사용자에게 소유권을 부여합니다:

pear install -a -B horde/passwd  
chown -R www-data:www-data /var/www/horde/passwd

Horde는 또한 로컬 값을 사용하여 구성 파일을 변경하는 간단한 방법을 제공합니다. 이는 기존 구성 파일(예: conf.php)을 conf.local.php로 복사하여 수행됩니다. 이는 기본 선호 설정을 변경하려는 경우 유용할 수 있습니다. 예를 들어 기본적으로 24시간 시계를 사용하도록 설정할 수 있습니다. 따라서 새로운 사용자에게 동질적인 시작 구성을 제공할 수 있습니다. Passwd 애드온에도 동일하게 적용됩니다. 로컬 구성 파일을 사용하여 향후 Horde 업데이트가 설정을 덮어쓰지 않도록 합니다.

cp -a /var/www/horde/passwd/config/backends.php /var/www/horde/passwd/config/backends.local.php

위 명령은 한 줄입니다.

이제 /var/www/horde/passwd/config/backends.local.php 파일을 편집하고 다음을 검색합니다:

$backends['sql'] = array (
  'disabled' => false,
  'name' => 'SQL Server',
  [...]
    // 'query_lookup' => 'SELECT user_pass FROM horde_users WHERE user_uid = %u',
    // 'query_modify' => 'UPDATE horde_users SET user_pass = %e WHERE user_uid = %u',
  ),
);

그리고 전체 블록을 다음으로 교체합니다:

$backends['sql'] = array (
  'disabled' => false,
  'name' => 'SQL Server',
  'preferred' => '',
  'policy' => array(
    'minLength' => 7,
    'maxLength' => 64,
    'maxSpace' => 0,
    'minNumeric' => 1,
  ),
  'driver' => 'Sql',
  'params' => array(
    'phptype' => 'mysql',
    'hostspec' => 'localhost',
    'username' => 'root',
    'password' => '***',
    'encryption' => 'crypt-md5',
    'database' => 'ISPCONFIG_DATABASE',
    'table' => 'mail_user',
    'user_col' => 'email',
    'pass_col' => 'password',
    'show_encryption' => false
    // 다음 두 설정을 사용하면 사용자 지정 쿼리를 지정할 수 있습니다.
    // 조회 및 수정 기능이 필요할 경우 특별한 기능을 수행해야 합니다.
    // 사용자 이름이나 비밀번호가 필요한 곳에서는 이 자리 표시자 참조를 사용하십시오:
    // %d -> 도메인으로 대체
    // %u -> 사용자로 대체
    // %U -> 도메인 부분 없이 사용자로 대체
    // %p -> 평문 비밀번호로 대체
    // %e -> 암호화된 비밀번호로 대체
    //
    // 'query_lookup' => 'SELECT user_pass FROM horde_users WHERE user_uid = %u',
   // 'query_modify' => 'UPDATE horde_users SET user_pass = %e WHERE user_uid = %u',
  ),
);

물론 비밀번호를 루트 MySQL 비밀번호로 교체하고 데이터베이스 이름을 ISPConfig 데이터베이스 이름으로 변경하십시오. 이 변경이 완료되면 Passwd 도구를 사용하여 Horde 내에서 비밀번호를 변경할 수 있습니다.

정책 섹션에서는 비밀번호가 어떤 모습이어야 하는지에 대한 다양한 옵션을 설정할 수 있습니다. 이 설정에서는 최소 7자 이상이어야 하며 최소 1개의 숫자를 포함해야 하고 공백은 없어야 합니다. 이 파일의 시작 부분에서 다른 옵션이 무엇인지 확인하십시오.

17. 최종 사항

모든 변경을 완료한 후, Horde의 관리 사용자로 로그인합니다. 웹메일 설치 스크립트 설정 중에 설정한 이메일 사용자입니다. 로그인한 후, 관리 섹션으로 이동한 다음 Horde 구성을 선택하고 필요한 모든 구성을 생성합니다. 시작할 때 모든 구성을 생성하는 버튼을 사용할 수 있으며, 각 Horde 애플리케이션에 대한 구성을 검토하고 원하는 변경 사항을 적용할 수도 있습니다.

Horde는 추가 애플리케이션도 제공합니다. http://www.horde.org/apps를 방문하여 어떤 것이 있는지 확인하십시오.

Horde는 또한 새로운 버전에 대한 알림을 받을 수 있는 RSS 피드를 제공합니다. 업데이트에 대한 내용은 여기에서 확인하십시오: http://www.horde.org/apps/webmail/docs/UPGRADING

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.