◆ Plugins 「Composer」
플러그인「Plugin」은 프로그램 또는 소프트웨어등 기존에 없는 기능을 더욱 확장하고 사용자 편의성을 높이기 위한 환경을 제공합니다. Roundcube용 Plugins 저장소는 Composer를 기반으로 하여 관리, 설치 및 업데이트를 진행합니다. 사실 이걸 먼저 포스팅했었어야 했는데 반대가 되었네요.
컴포저「Composer」는 PHP의 의존성 관리 도구「A Dependency Manager for PHP」로 프로젝트에서 필요한 라이브러리 및 패키지를 쉽게 설치하고 관리할 수 있게 도와줍니다. 컴포저를 사용하면 프로젝트의 「Composer.json」 파일에 필요한 라이브러리를 정의하고, 해당 라이브러리 및 그 의존성을 자동으로 설치할 수 있습니다.
Composer 공식 사이트 : https://getcomposer.org/
「~/roundcube/composer.json」 설치 경로에는 이미 정의된 파일이 있습니다.
■ 설치환경 및 준비물
메일서버 구축[참고] : https://foxydog.tistory.com/104
릴리즈 업데이트 및 설치 테스트 : 「2024-05 ~ 2024-06」
개인적으로 사용하고 있는 클라우드서버에 이전에 블로그에 남긴 구축 방식으로 업데이트「update」를 진행하여 일부 프로그램 및 솔루션이 업데이트가 된 상태에서 진행했습니다. 「Rocky Linux release 8.9 (Green Obsidian)」, 「Apache/2.4.37 (Rocky Linux)」, 「PHP 7.4.33」, 「10.6.18-MariaDB」, 대체로 마이너버전만 업데이트되었으며, 라운드큐브는 최신 버전인 「Version 1.6.7」으로 변경하였습니다. 필자가 구축한 방식으로 진행하셨다면 기본 설치된 플러그인은 「Filesystem_attachments」, 「jqueryui」, 「virtuser_query」 3개가 기본으로 적용되어 있습니다.
「~/roundcube/plugins」 경로에 이미 현재 버전에서 안정적으로 사용할 수 있는 플러그인들이 설치가 되어 있습니다. 그 외 플러그인 설치를 하실 경우는 아래 공식 홈페이지 Plugins 설치 방법 참고
① Composer 설치
[root@mail ~]# cd /root [경로 이동]
※ RoundCube는 <roundcube-project-root> 설치 경로에 이동하라고 적혀 있는데 아무 경로에 다운로드하여도 상관없습니다.
[root@mail ~]# curl -s https://getcomposer.org/installer | php [컴포저 다운]
※ 아래 메시지 참고, 외부에서 다운로드하는 부분으로 웹[80,443] 방화벽 오픈되어 있어야 합니다.
All settings correct for using Composer
Downloading...
Composer (version 2.7.7 ※ 2024-06-12 기준 최신 버전) successfully installed to:
/root/composer.phar
Use it: php composer.phar
[root@mail ~]# mv composer.phar /usr/local/bin/composer [PATH 경로(글로벌)에 설치]
※ 꼭 RoundCube가 아니더라도 어떤 경로에서도 명령어를 사용할 수 있도록 PATH 경로에 설치하면 편하게 이용할 수 있습니다.
[root@mail ~]# ll /usr/local/bin/composer [파일 확인]
-rwxr-xr-x 1 root root 2989019 Jun 1 15:56 /usr/local/bin/composer
② 사용 예시
먼저 공식 홈페이지 검색에서 사용할 Plugins을 검색합니다. 입력하면 자동완성으로 하단에 나옵니다. 지금 버전 스킨에서는 적용이 되지 않지만, 설치 방법 예시를 위해 「quota」 플러그인 설치를 진행해 보도록 하겠습니다. 「Vendor(공급자=개발자)/Plugin(패키지 이름)」이라고 생각하시면 됩니다. 클릭하면 개발자가 패키지를 제공해 주는 사이트로 연결해 주므로 Composer 설치 방법을 그대로 따라가면 됩니다.
[root@mail roundcube]# cd /var/www/html/roundcube [경로 이동]
[root@mail roundcube]# composer require jfcherng-roundcube/quota [1차 시도]
Your requirements could not be resolved to an installable set of packages.
Problem 1
- pear/net_ldap2 v2.3.0 requires ext-ldap * → it is missing from your system. Install or enable PHP's ldap extension.
- kolab/net_ldap3 v1.1.5 requires pear/net_ldap2 >=2.0.12 → satisfiable by pear/net_ldap2[v2.3.0].
- kolab/net_ldap3 is locked to version v1.1.5 and an update of this package was not requested.
※ 위와 같이 의존성을 검사하여 필요한 패키지가 무엇인지 알려줍니다. 필자는 「Install or enable PHP's ldap extension.」 PHP의 LDAP 확장 설치 또는 활성화가 필요하다고 나오네요. 아래와 같이 없다면 필요한 패키지를 설치합니다.
[root@mail roundcube]# dnf(또는 yum) install php-ldap [PHP 모듈 추가 설치]
[root@mail roundcube]# vim /etc/php.ini [PHP 환경변수 파일 및 모듈 활성화]
PHP 설정 중
758 ; Directory in which the loadable extensions (modules) reside.
759 ; http://php.net/extension-dir
760 ;extension_dir = "./"
761 ; On windows:
762 ;extension_dir = "ext"
763 extension=ldap [자동으로 들어가나 없다면 추가]
[root@mail roundcube]# systemctl restart httpd [아파치 재시작]
[root@mail roundcube]# composer require jfcherng-roundcube/quota [2차 시도]
Package operations: 1 install, 0 updates, 0 removals
Failed to download jfcherng-
roundcube/quota from dist: The zip extension and unzip/7z commands are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
Now trying to download from source
※ 이번에는 PHP의 「ZIP 및 unzip/7z」 명령어를 할 수 없어서 오류가 발생했습니다. 똑같이 없다면 필요한 패키지를 설치합니다.
[root@mail roundcube]# dnf(또는 yum) install php-zip [PHP 모듈 추가 설치]
[root@mail roundcube]# composer require jfcherng-roundcube/quota [3차 시도]
- Installing jfcherng-roundcube/quota (0.0.21): Extracting archive [0.0.21 (2022-06-07) 마지막 버전]
Do you want to activate the plugin quota? [Y|n] n [플러그인 바로 활성화할 건지, 일단 NO]
Creating package config file
Generating autoload files
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
③ 플러그인 적용 하기
설치가 되면 자동으로 「~roundcube/plugins/」 경로에 「quota」 폴더가 생성이 되어 있습니다. 웹 접근을 위해 편의상 아파치 실행 권한에 맞게 수정합니다.
[root@mail plugins]# cd m/var/www/html/roundcube/plugins [플러그인 설치 경로]
[root@mail plugins]# ll | grep quota [설치 확인]
drwxr-xr-x 5 root root 4096 Jun 13 17:59 quota
※ 아파치 권한에 맞게 수정 [보안 환경에 따라 조정]
[root@mail plugins]# chmod 755 -R quota/
[root@mail plugins]# chown apache:apache -R quota/
[root@mail config]# vim /var/www/html/roundcube/config/config.inc.php [플러그인 추가]
이후 라운드큐브 웹메일 [설정]에서 「quota」 메뉴가 나오는지 확인해 보시면 됩니다. ※ 이전 포스팅에서도 언급을 하였지만, 해당 스킨 및 버전에서는 메뉴는 나오지만 용량 체크 및 UI가 제대로 나오지 않습니다. 「Composer」 사용법을 알기 위해 테스트를 진행한 부분으로 참고하시기 바랍니다.
이렇게 컴포저 사용방법에 대해서 알아보았습니다. 이후 이미 설치된 플러그인에서 사용해도 괜찮을 것 같은 기능을 하나씩 적용 테스트를 해볼 예정입니다.
※ 모든 내용은 직접 테스트 및 확인한 내용만 업로드합니다. 오타나 잘못된 정보가 포함되어 있다면 지적 및 정보 공유 감사합니다.
'◈『Open(Source) Solution』 > 메일서버(RoundCube)' 카테고리의 다른 글
RoundCube - Plugins 「managesieve」 자동 분류(부재중, 전달 포함) 적용 (0) | 2024.07.10 |
---|---|
RoundCube - Plugins 「newmail_notifier」 새 메일 알림 적용 (2) | 2024.07.05 |
RoundCube - Plugins 「Password」 비밀번호 변경 적용 [feat. MariaDB] (2) | 2024.06.03 |
Rocky Linux - 메일서버(Postfix) RBL 정책 적용 (2) | 2022.07.07 |
Rocky Linux - 메일서버(Postfix) DMARC 정책 적용 (2) | 2022.06.28 |