LINUX.ORG.RU

История изменений

Исправление Riniko, (текущая версия) :

Снова загрузил снепшот, где почта настроена но без Roundcube.

Сгенерировал сертификат, установил nginx.

Установил модули:

php-cli php8.2-mysql php-json php-gd php-ldap php-odbc php8.2-common php8.2-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-imap php php-fpm php-curl

Включил: systemctl enable --now php8.2-fpm

Установил зависимости для Roundcube:

php-mysql aspell aspell-en fonts-glyphicons-halflings libaspell15 libjs-bootstrap libjs-bootstrap4 libjs-jquery-minicolors libjs-jstimezonedetect libjs-popper.js libjs-sizzle node-jquery php-auth-sasl php-mail-mime php-masterminds-html5 php-net-sieve php-net-smtp php-net-socket php-pspell php-intl php-imagick

Загрузил архив Roundcube: cd && wget https://github.com/roundcube/roundcubemail/releases/download/1.5.9/roundcubemail-1.5.9-complete.tar.gz

Распаковал: tar xzvf roundcubemail-1.5.9-complete.tar.gz

Скопировал в каталог: cp -R roundcubemail-1.5.9/* /var/www/html

Создал базу данных для Roundcube:

CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER roundcube@localhost IDENTIFIED BY 'PASSWORD';

GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;

FLUSH PRIVILEGES;

Загрузил базу данных: mysql -uroot -p roundcubemail < /var/www/html/SQL/mysql.initial.sql

Отредактировал конфиг Nginx:

server {
    listen 80;
        listen [::]:80;
    server_name YOUR_DOMAIN;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name YOUR_DOMAIN.COM;
    root /var/www/html;
    index index.php index.html index.htm;
    
    ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem;

    location / {
        try_files  $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
    try_files  $uri =404;
    fastcgi_pass   unix:/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param DOCUMENT_ROOT /var/www/html/;
    fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED /var/www/html$fastcgi_script_name;
    include fastcgi_params;
    }
}

Проверил на ошибки и перезапустил Nginx. Дал права: chown -R www-data:www-data /var/www/html/ chmod 775 /var/www/html/temp/ /var/www/html/logs/

Скопировал конфиг: cp /var/www/html/config/config.inc.php.sample /var/www/html/config/config.inc.php

Зашел через YOUR_DOMAIN.COM/installer, отредактировал. IMAP Settings:

default_host ssl://your_domain.com
default_port 993

Менял хост и на ssl://mail.your_domain.com, так как вижу в Thunderbird в параметрах IMAP. Там так же SSl/TLS.

SMTP Settings:

smtp_server ssl://smtp.YOUR_DOMAIN.COM
smtp_port 465
Так же менял порт на SSl/TLS.

Конечный результат:

Check config file
defaults.inc.php:  OK
config.inc.php:  OK
Check if directories are writable

Roundcube may need to write/save files into these directories
/var/www/html/temp/:  OK
/var/www/html/logs/:  OK
Check DB config
DSN (write):  OK
DB Schema:  OK
DB Write:  OK
DB Time:  OK
Test filetype detection
Fileinfo/mime_content_type configuration:  OK
Mimetype to file extension mapping:  OK

Конфиг выглядит так:

<?php
$config['db_dsnw'] = 'mysql://roundcube:PASSWORD@localhost/roundcubemail';
$config['default_host'] = 'ssl://mail.your_domain.com';
$config['smtp_server'] = 'ssl://smtp.your_domain.com';
$config['smtp_port'] = 465;
$config['des_key'] = '2ylY3XJvh510TBncMMEx7mZY';
$config['plugins'] = [];
$config['spellcheck_engine'] = 'pspell';

Test IMAP config:

Connecting to ssl://your_domain.com...

IMAP connect:  NOT OK(Login failed for username@your_domain.com against your_domain.com from 185.220.100.254. 
Could not connect to ssl://your_domain.com:993: Unknown reason)

Меняю немного IMAP:

Connecting to ssl://mail.your_domain.com...

IMAP connect:  NOT OK(Login failed for  username@your_domain.com against mail.your_domain.com from 185.220.100.254. AUTHENTICATE PLAIN: Authentication failed.)

В логе ошибки:

DB Error: SQLSTATE[HY000] [1045] Access denied for user 'roundcube'@'localhost' (using password: NO) in /var/www/html/program/lib/Roundcube/rcube_db.php on line 194 (GET /)

PHP Error: config.inc.php was not found. (GET /)

Фрагмент конфига /var/www/html/program/lib/Roundcube/rcube_db.php:

188        catch (Exception $e) {
189            $this->db_error     = true;
190            $this->db_error_msg = $e->getMessage();
191
192            rcube::raise_error([
193                    'code' => 500, 'type' => 'db',
194                    'line' => __LINE__, 'file' => __FILE__,
195                    'message' => $this->db_error_msg
196                ],
197                true, false
198            );
199
200            return null;
201        }
202
203        return $this->dbh;
204    }

В чем моя ошибка?

Исходная версия Riniko, :

Снова загрузил снепшот, где почта настроена но без Roundcube.

Сгенерировал сертификат, установил nginx.

Установил модули:

php-cli php8.2-mysql php-json php-gd php-ldap php-odbc php8.2-common php8.2-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-imap php php-fpm php-curl

Включил: systemctl enable --now php8.2-fpm

Установил зависимости для Roundcube:

php-mysql aspell aspell-en fonts-glyphicons-halflings libaspell15 libjs-bootstrap libjs-bootstrap4 libjs-jquery-minicolors libjs-jstimezonedetect libjs-popper.js libjs-sizzle node-jquery php-auth-sasl php-mail-mime php-masterminds-html5 php-net-sieve php-net-smtp php-net-socket php-pspell php-intl php-imagick

Загрузил архив Roundcube: cd && wget https://github.com/roundcube/roundcubemail/releases/download/1.5.9/roundcubemail-1.5.9-complete.tar.gz

Распаковал: tar xzvf roundcubemail-1.5.9-complete.tar.gz

Скопировал в каталог: cp -R roundcubemail-1.5.9/* /var/www/html

Создал базу данных для Roundcube:

CREATE DATABASE roundcubemail CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER roundcube@localhost IDENTIFIED BY 'PASSWORD';

GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;

FLUSH PRIVILEGES;

Загрузил базу данных: mysql -uroot -p roundcubemail < /var/www/html/SQL/mysql.initial.sql

Отредактировал конфиг Nginx:

server {
    listen 80;
        listen [::]:80;
    server_name YOUR_DOMAIN;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name YOUR_DOMAIN.COM;
    root /var/www/html;
    index index.php index.html index.htm;
    
    ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem;

    location / {
        try_files  $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
    try_files  $uri =404;
    fastcgi_pass   unix:/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param DOCUMENT_ROOT /var/www/html/;
    fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
    fastcgi_param PATH_TRANSLATED /var/www/html$fastcgi_script_name;
    include fastcgi_params;
    }
}

Проверил на ошибки и перезапустил Nginx. Дал права: chown -R www-data:www-data /var/www/html/ chmod 775 /var/www/html/temp/ /var/www/html/logs/

Скопировал конфиг: cp /var/www/html/config/config.inc.php.sample /var/www/html/config/config.inc.php

Зашел через YOUR_DOMAIN.COM/installer, отредактировал. IMAP Settings:

default_host ssl://your_domain.com
default_port 993

Менял хост и на ssl://mail.your_domain.com, так как вижу в Thunderbird в параметрах IMAP. Там так же SSl/TLS.

IMAP Settings:

smtp_server ssl://smtp.YOUR_DOMAIN.COM
smtp_port 465
Так же менял порт на SSl/TLS.

Конечный результат:

Check config file
defaults.inc.php:  OK
config.inc.php:  OK
Check if directories are writable

Roundcube may need to write/save files into these directories
/var/www/html/temp/:  OK
/var/www/html/logs/:  OK
Check DB config
DSN (write):  OK
DB Schema:  OK
DB Write:  OK
DB Time:  OK
Test filetype detection
Fileinfo/mime_content_type configuration:  OK
Mimetype to file extension mapping:  OK

Конфиг выглядит так:

<?php
$config['db_dsnw'] = 'mysql://roundcube:PASSWORD@localhost/roundcubemail';
$config['default_host'] = 'ssl://mail.your_domain.com';
$config['smtp_server'] = 'ssl://smtp.your_domain.com';
$config['smtp_port'] = 465;
$config['des_key'] = '2ylY3XJvh510TBncMMEx7mZY';
$config['plugins'] = [];
$config['spellcheck_engine'] = 'pspell';

Test IMAP config:

Connecting to ssl://your_domain.com...

IMAP connect:  NOT OK(Login failed for username@your_domain.com against your_domain.com from 185.220.100.254. 
Could not connect to ssl://your_domain.com:993: Unknown reason)

Меняю немного IMAP:

Connecting to ssl://mail.your_domain.com...

IMAP connect:  NOT OK(Login failed for  username@your_domain.com against mail.your_domain.com from 185.220.100.254. AUTHENTICATE PLAIN: Authentication failed.)

В логе ошибки:

DB Error: SQLSTATE[HY000] [1045] Access denied for user 'roundcube'@'localhost' (using password: NO) in /var/www/html/program/lib/Roundcube/rcube_db.php on line 194 (GET /)

PHP Error: config.inc.php was not found. (GET /)

Фрагмент конфига /var/www/html/program/lib/Roundcube/rcube_db.php:

188        catch (Exception $e) {
189            $this->db_error     = true;
190            $this->db_error_msg = $e->getMessage();
191
192            rcube::raise_error([
193                    'code' => 500, 'type' => 'db',
194                    'line' => __LINE__, 'file' => __FILE__,
195                    'message' => $this->db_error_msg
196                ],
197                true, false
198            );
199
200            return null;
201        }
202
203        return $this->dbh;
204    }

В чем моя ошибка?