W CentOS z EPEL (u mnie epel-release-6-8) instalacja jest prosta:
yum install roundcubemail
i już.
Teraz trzeba przygotować bazę. Tu nie ma filozofii tak jak każe plik INSTALL. Zmieniłem nazwę bazy i użytkownika: rcm, to skrót od RoundCubeMail:
create database rcm character set utf8;
create user 'rcmuser'@'localhost' identified by 'tajnehaslo';
grant all privileges on rcm.* to 'rcmuser'@'localhost';
Jak widać hasło jest tajne ;-) Teraz trzeba te same nazwy ustawić w pliku:
/etc/roundcubemail/db.inc.php
w linii
$rcmail_config['db_dsnw'] = 'mysql://rcmuser:tajnehaslo@localhost/rcm';
a następnie zainicjować bazę poleceniem
mysql -u rcmuser -p rcm < /usr/share/doc/roundcubemail-0.8.5/SQL/mysql.initial.sql
wystarczy podać hasło i chwilę poczekać.
Dodatkowo w pliku
/etc/httpd/conf.d/roundcubemail.conf
trzeba dodać uprawnienia dla własnego komputera (jeżeli nie instalujemy lokalnie). W oryginale było:
Alias /roundcubemail /usr/share/roundcubemail
<Directory /usr/share/roundcubemail/>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
ja zmieniłem na:
Alias /roundcubemail /usr/share/roundcubemail
<Directory /usr/share/roundcubemail/>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from 1.2.3.4
Allow from ::1
</IfModule>
</Directory>
gdzie 1.2.3.4 to zewnętrzny adres IP z którego konfigurowałem zdalnie serwer.
Teraz już można się zalogować na serwer (gdy IP jest 4.3.2.1):
http://4.3.2.1/roundcubemail/
i używać podając wszystkie dane konta. W teorii za pomocą tak postawionego serwera można sprawdzać pocztę na dowolnym innym.
W przypadku CentOS 6.4 można zamiast wiadomości dostać komunikat: Service Unavailable Error 500, a w pliku logu
tail /var/log/roundcubemail/errors
miałem:
PHP Error: Could not perform encryption; make sure Mcrypt is installed or lib/des.inc is available in /usr/share/roundcubemail/program/include/rcmail.php on line 1474 (POST /roundcubemail/?_task=login&_action=login)
rozwiązaniem jest zamiana w pliku
/etc/php.d/mcrypt.ini
lini
extension=module.so
na
extension=mcrypt.so
i restart serwera.
Ponieważ RoundCubeMail ma aspiracje bycia aplikacją, więc trzeba podać również nazwę serwera. Tutaj zakładam, że serwer powinien być jeden (co najwyżej kilka do wyboru z listy), bo po co obcy ludzie mają mi zapychać łącze.
Podstawową modyfikacją jest ustawienie wartości $rcmail_config['default_host'] na coś sensownego. Ja mam:
$rcmail_config['default_host']='ssl://localhost:993';
oczywiście przy połączeniu lokalnym można nie używać szyfrowania, ale to następnym razem...