Unix-way → Установка Roundcube на Nginx в Debian или Linux Ubuntu

В статье показано как установить RoundCube Webmail на веб-сервер под управлением Debian и Ubuntu на HTTP-сервер ​​Nginx. RoundCube Webmail это браузер и многоязычный клиент IMAP, а Nginx это сервер, который использует гораздо меньше ресурсов, чем Apache и обеспечивает более быструю отдачу страниц, особенно статических файлов.

У вас уже должен быть установлен Nginx, если это еще не сделано, обратитесь к статье «Установка Nginx + PHP5 (и PHP-FPM) + MySQL».

Зайдем под root:

sudo su


Установка APC

APC это свободным проект для операции кэширования и оптимизации промежуточного кода PHP. Похож на Eaccelerator или XCache. Настоятельно рекомендуется его установить чтобы ускорить обработку PHP.

apt-get install php-apc


Теперь нужно настроить часовой пояс в PHP. Откройте php.ini — если используется PHP-FPM это /etc/php5/fpm/php.ini:

nano /etc/php5/fpm/php.ini


Измените параметр строки date.timezone на ваш. Посмотреть нужный можно так:

cat /etc/timezone


Если используется PHP-FPM как демон FastCGI его нужно перезагрузить:

/etc/init.d/php5-fpm restart


Если используетс spawn-fcgi как демон FastCGI нужно убить текущий процес, который работает на 9000 порту и создать новый:

netstat -tap


Смотрим строку похожую на эту:

tcp        0      0 localhost.localdom:9000 *:*                     LISTEN      1542/php5-cgi


В данном случае PID 1542. Убиваем процесс:

kill -9 1542


Создаем новый:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid


Установка Roundcube

В примере корневая директория будет /var/www/www.example.com/web с адресом www.example.com. Создадим корневой каталог:

mkdir -p /var/www/www.example.com/web


Далее скачаем файл .tar.gz с Roundcube roundcube.net/download и поместим в /var/www/www.example.com/web:

cd /tmp
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.7.1/roundcubemail-0.7.1.tar.gz
tar xvfz roundcubemail-0.7.1.tar.gz
cd roundcubemail-0.7.1/
mv * /var/www/www.example.com/web/
mv .htaccess /var/www/www.example.com/web/


Дадим права пользователю www-data с группы www-data:

chown -R www-data:www-data /var/www/www.example.com/web


Создадит базу данных и пользователя MySQL для Roundcube. Это можно сделать это следующим образом (в примере база RoundCube, пользователь roundcube_admin и пароль roundcube_admin_password):

mysqladmin -u root -p create roundcube

mysql -u root -p

GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_admin'@'localhost' IDENTIFIED BY 'roundcube_admin_password';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_admin'@'localhost.localdomain' IDENTIFIED BY 'roundcube_admin_password';

FLUSH PRIVILEGES;

quit;


Далее создадим виртуальный хост для nginx в /etc/nginx/sites-available/:

nano /etc/nginx/sites-available/www.example.com.vhost


Вставляем

server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }

       index index.php index.html;

       location ~ ^/favicon.ico$ {
                root /var/www/www.example.com/web/skins/default/images;
                log_not_found off;
                access_log off;
                expires max;
       }

       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
       }
       location ~ ^/(bin|SQL)/ {
                deny all;
       }

       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

       location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_index index.php;
       }
}


Активируем его в /etc/nginx/sites-enabled/ путем создания символической ссылки:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost


Перезагрузим nginx для того чтобы изменения вступили в силу:

/etc/init.d/nginx reload


После этого можно запустить установщик Roundcube в браузере www.example.com/installer/. Следуем инструкциям отвечаю на вопросы. На странице «Creat Config» будет два файла конфигурации, их нужно скопировать в:

Первый
nano /var/www/www.example.com/web/config/main.inc.php


Второй
nano /var/www/www.example.com/web/config/db.inc.php


После завершения установки, нужно обязательно удалить каталог installer:

rm -fr /var/www/www.example.com/web/installer


Все, можно пользоваться:

http://www.example.com/
  • avatar
  • pashtuun
  • 13714
  • +12
  • 06 марта 2012, 12:31

Комментариум (3)

RSS свернуть / развернуть
+
+2
avatar

makenskiy

  • 06 марта 2012, 16:36

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Nginx все больше набирает обороты, смотрю интернеты стали часто пестрить манами под него.
+
+2
avatar

pashtuun

  • 07 марта 2012, 13:26

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
И статистика это доказывает
+
0
avatar

Anonymous

  • 12 июля 2014, 15:27

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
спб. законфиг нгинкса

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.