Установка и настройка roundcube из исходников

Материал из Wiki МИАЦ ВО
Версия от 12:30, 27 апреля 2014; Misha (обсуждение | вклад) (Настройка базы данных)
Перейти к навигации Перейти к поиску

Можно, конечно, поставить roundcube из репозитария, но там более старая версия. Да мы не ищем простых путей.

Скачать и распаковать дистрибутив

Идем на roundcube и скачиваем последнюю версию Complete (в нашем случае = это: 1.0.0)
Расспаковываем его в папку /var/www/roundcube

sudo tar -xvzf roundcubemail-1.0.0.tar.gz -C  /var/www/
sudo mv /var/www/roundcube* /var/www/roundcube
sudo chown -R www-data:www-data /var/www/roundcube

Настройка компонентов

Apache

Для работы roundcube нужно разрешить следующие модули

sudo a2enmod deflate
sudo a2enmod expires
sudo a2enmod headers

Создаем файл /etc/apache2/sites-inable/mail.conf, изменив domen.ru на свой.

<VirtualHost *:80>
    ServerName mail.domen.ru
    ServerAlias domen.ru
    ErrorLog /var/log/apache2/mail-error_log
    CustomLog /var/log/apache2/mail-access_log common

DocumentRoot /var/www/roundcube

    <Directory /var/www/roundcube>
	Options +FollowSymLinks
	# AddDefaultCharset     UTF-8
	AddType text/x-component .htc

	<IfModule mod_php5.c>
	    php_flag        display_errors  Off
	    php_flag        log_errors      On
	    # php_value     error_log       logs/errors
	    php_value       upload_max_filesize     10M
	    php_value       post_max_size           12M
	    php_value       memory_limit            64M
	    php_flag        zlib.output_compression         Off
	    php_flag        magic_quotes_gpc                Off
	    php_flag        magic_quotes_runtime            Off
	    php_flag        zend.ze1_compatibility_mode     Off
	    php_flag        suhosin.session.encrypt         Off
	    #php_value      session.cookie_path             /
	    php_flag        session.auto_start      Off
	    php_value       session.gc_maxlifetime  21600
	    php_value       session.gc_divisor      500
	    php_value       session.gc_probability  1
	</IfModule>

	<IfModule mod_rewrite.c>
	    RewriteEngine On
	    RewriteRule ^favicon\.ico$ skins/larry/images/favicon.ico
	    # security rules:
	    # - deny access to files not containing a dot or starting with a dot
	    #   in all locations except installer directory
	    RewriteRule ^(?!installer)(\.?[^\.]+)$ - [F]
	    # - deny access to some locations
	    RewriteRule ^/?(\.git|\.tx|SQL|bin|config|logs|temp|tests|program\/(include|lib|localization|steps)) - [F]
	    # - deny access to some documentation files
	    RewriteRule /?(README\.md|composer\.json-dist|composer\.json|package\.xml)$ - [F]
	</IfModule>

	<IfModule mod_deflate.c>
	    SetOutputFilter DEFLATE
	</IfModule>

	<IfModule mod_headers.c>
	    # replace 'append' with 'merge' for Apache version 2.2.9 and later
	    # Header append Cache-Control public env=!NO_CACHE
	</IfModule>

	<IfModule mod_expires.c>
	    ExpiresActive On
	    ExpiresDefault "access plus 1 month"
	</IfModule>

	FileETag MTime Size

	<IfModule mod_autoindex.c>
	    Options -Indexes
	</ifModule>

	AllowOverride None
	Order allow,deny
	Allow from all
    </Directory>
    
    <Directory /var/www/roundcube/plugins/enigma/home>
	Options -FollowSymLinks
	AllowOverride None
	Order allow,deny
	Deny from all
    </Directory>

    <Directory /var/www/roundcube/config>
	Options -FollowSymLinks
	AllowOverride None
	Order allow,deny
	Deny from all
    </Directory>

    <Directory /var/www/roundcube/temp>
	Options -FollowSymLinks
	AllowOverride None
	Order allow,deny
	Deny from all
    </Directory>

    <Directory /var/www/roundcube/logs>
	Options -FollowSymLinks
	AllowOverride None
	Order allow,deny
	Deny from all
    </Directory>
</VirtualHost>

Прописываем в DNS (или пока в /etc/hosts) mail.domen.ru
Перезапускаем apache2

sudo service apache2 restart

PHP

И заходим в браузере по адресу http://mail.domen.ru/installer
Попадаем на Roundcube Webmail Installer -> Check environment и смотрим - что не хватает в нашей системе для работы roundcube. И устанавливаем необходимые модули. В моем случае не хватало модулей php Mcrypt и Intl

sudo apt-get install php5-mcrypt
sudo apt-get install php5-intl
sudo service apache2 restart

Но инсталлятор говорил, что php5-mcrypt уже установлен. Тогда делаем

sudo php5enmod mcrypt
sudo service apache2 restart

База данных

Смотрим в разделе Checking available databases - есть ли нужный драйвер базы данных. Если есть - все ок, если нет - устанавливаем.

Настройка базы данных

mysql -uroot -p
CREATE DATABASE  roundcube;
USE roundcube;

Внимание! Далее будет использоваться пользователь roundcube и его пароль password для доступа к базе данных в MySQL. Вместо roundcube и password Вы можете задать свои значения.

GRANT all ON roundcube.* TO 'roundcube'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

И накатываем дамп в базу

mysql -uroot -p roundcube < /var/www/roundcube/SQL/mysql.initial.sql