Содержание
Панель управления хостингом VestaCP
В зависимости от конфигурации Веста устанавливается в одном из доступных режимов, которые позволяют не сильно нагружать сервер:
- micro - меньше 1Gb RAM
Устанавливается с минимальной конфигурацией, идет максимальная оптимизации ресурсов, отключаются антивирус с фаерволом, а так же исключается модуль mod_fcgid. - small - от 1Gb до 3Gb RAM
При установке исключаются антивирус и антиспам для почты - medium - от 3GB до 7Gb RAM
- large - 7GB и выше medium и large не имеют отличий при установке и устанавливают все доступные модули.
HowTo
rspamd вместо spamassassin
Проверка обновлений панели через консоль
Проверить
# v-list-sys-vesta-updates # v-list-sys-vesta-updates NAME VERSION RELEASE ARCH UPDATED TIME DATE ------ ------ ------ ------ ------ ------ ------ vesta 0.9.8 12 x86_64 no 17:34:05 2015-04-09 vesta-php 0.9.7 3 x86_64 yes 17:33:32 2015-04-09 vesta-nginx 0.9.8 3 x86_64 yes 17:34:57 2015-04-09 PKG VER REL ARCH UPDT DATE --- --- --- ---- ---- ---- vesta 0.9.8 26 i386 yes 2020-03-24 vesta-php 0.9.8 26 i386 yes 2020-03-24 vesta-nginx 0.9.8 26 i386 yes 2020-03-24
Обновить
v-update-sys-vesta-all
Let's Encrypt для Exim/Postfix/Dovecot
chgrp mail ssl.your.adminpanel.com.key chmod 660 ssl.your.adminpanel.com.key chgrp mail ssl.your.adminpanel.com.crt chmod 660 ssl.your.adminpanel.com.crt
Как создать поддомен внутри основного домена
Есть домен domain.ru (/home/admin/web/domain.ru/public_html
). Необходимо создать поддомен img.domain.ru, содержимое которого расположено в /home/admin/web/domain.ru/public_html/img
.
Для этого создаём в WEB новый домен с именем img.domain.ru.
В конфигах /home/admin/conf/web/nginx.conf
и /home/admin/conf/web/apache2.conf
меняем DocumentRoot
.
То есть вместо каталога /home/admin/web/img.domain.ru/public_html
указываем каталог /home/admin/web/domain.ru/public_html/img
.
Также можно вручную создать конфиг для nginx в каталоге /home/admin/conf/web/
. Если создавать через панель, то есть вероятность, что конфиг будет перезаписан и всё сломается.
И самое главное - rewrite'ы
RewriteCond $1 !^img/ RewriteCond %{HTTP_HOST} ^img.domain.ru RewriteRule (.*) /img/$1 [L]
Есть ли селектор версии PHP?
Да!
Для Debian/Ubuntu: https://anikin.pw/all/menedzher-versiy-php/, https://github.com/petranikin/mgrvphp
Для CentOS: Multiples versiones de PHP en VestaCP [PHP Selector], https://forum.vestacp.com/viewtopic.php?f=19&t=10854
Как поменять стандартные картинки в панели
api error
http://vestacp.com/docs/api/#return_codes
http://www.xyberry.com/customer-area/knowledgebase.php?action=displayarticle&id=85
Несколько версий PHP
Описание задачи: сервер с VestaCP (CentOS или Debian неважно), Основная версия PHP: CentOS 5.4 (Remi), Debian 5.? Допустим, что для одного нашего сайта на Joomla 1.5 требуется PHP 5.2 Создать шаблон в Vesta и скомпилировать PHP PHP 5.2 (через fastcgi) и PHP 5.4 (как модуль Apache2)
CentOS
Чтобы упростить себе жизнь компилировать не будем, а воспользуемся готовыми RPM пакетами из репозитория Atomic, которые устанавливаются в /opt
Debian
Как обновить PHP до 5.5 со стандартной версии 5.3 на сервере с VestaCP
via http://hasin.me/2014/06/03/upgrading-php-to-5-5-in-a-centos-6-server-with-vesta-cp/
Tested on CentOS 6 x86/x64
Stop httpd and remove current PHP version
service httpd stop yum -y remove php*
Add Remi repo
#For 32 Bit OS wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm #For 64Bit OS wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
Install newer PHP version
yum -y install php php-bcmath php-cli php-common php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo php-soap php-tidy php-xml php-xmlrpc php-pecl-apc phpMyAdmin roundcubemail php-opcache php-xdebug
mv -f /etc/php.ini.rpmsave /etc/php.ini mv -f /etc/roundcubemail/db.inc.php.rpmsave /etc/roundcubemail/db.inc.php mv -f /etc/roundcubemail/main.inc.php.rpmsave /etc/roundcubemail/main.inc.php mv -f /etc/phpMyAdmin/config.inc.php.rpmsave /etc/phpMyAdmin/config.inc.php mv -f /etc/httpd/conf.d/roundcubemail.conf.rpmsave /etc/httpd/conf.d/roundcubemail.conf mv -f /etc/httpd/conf.d/phpMyAdmin.conf.rpmsave /etc/httpd/conf.d/phpMyAdmin.conf service httpd start
CLI
Ошибки, баги, глюки
Обновить PHP для nginx/php-fpm в Debian
Это сделать можно только через костыли:
А в CentOS всё нормально.
Советы не помогают.
Обычно появляется ошибка Error: php-fpm pool doesn't exist
Зато бесплатно всё.
Не работают дополнительные FTP аккаунты (Debian/Ubuntu)
Версия Vesta 0.9.8-18
Github issue: https://github.com/serghey-rodin/vesta/issues/1437
Решение
# echo "/usr/sbin/nologin" >> /etc/shells
Dovecot 14094418 SSL
Ошибка
TLS: SSL_read() failed:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:SSL alert number 48
Добавить в /etc/dovecot/conf.d/10-ssl.conf
ssl_ca = </usr/local/vesta/ssl/certificate.crt
Неправильный подсчёт памяти на RRD графиках
После перехода на версию 0.9.8-17 с версии 0.9.8-16 всё сломалось.
Перестал учитываться buffers/cache из вывода free (видимо с приходом фикса для CentOS 7).
На недельном графике видно, как после установки нового релиза панели с 1 декабря вырос расход памяти (на самом деле нет). Со стабильных 400 свободных до 90 свободных.
Как было раньше
# free -m |awk '{print $4}'|head -n3 |tail -n1 814
Как стало в новом релизе
# free -m |grep Mem |awk '{print $4}' 78
В CentOS 6 необходимо вернть всё обратно вручную.
Файл /usr/local/vesta/bin/v-update-sys-rrd-mem в версии 0.9.8-16
# Parsing data if [ "$period" = 'daily' ]; then mem=$(free -m) used=$(echo "$mem" |awk '{print $3}'|head -n3 |tail -n1) free=$(echo "$mem" |awk '{print $4}'|head -n3 |tail -n1) swap=$(echo "$mem" |awk '{print $3}'|tail -n1)
Файл /usr/local/vesta/bin/v-update-sys-rrd-mem в версии 0.9.8-17
# Parsing data if [ "$period" = 'daily' ]; then mem=$(free -m) used=$(echo "$mem" |grep Mem |awk '{print $3}') free=$(echo "$mem" |grep Mem |awk '{print $4}') swap=$(echo "$mem" |grep Swap |awk '{print $3}')
Возвращаем, всё как было в 0.9.8-16
На форуме рекомендуют ещё выполнить команды (вероятно это необязательно)
# /usr/local/vesta/bin/v-update-sys-rrd # /usr/local/vesta/bin/v-update-sys-rrd-mem
После исправления всё вернулось на свои места
Неудачное соединение с IMAP сервером
Roundcube показывает сообщение Неудачное соединение с IMAP сервером.
Лог dovecot
Oct 22 22:22:19 imap([email protected]): Warning: autocreate plugin is deprecated, use mailbox { auto } setting instead Oct 22 22:22:19 imap([email protected]): Error: user [email protected]: Initialization failed: namespace configuration error: inbox=yes namespace missing Oct 22 22:22:19 imap([email protected]): Error: Invalid user settings. Refer to server log for more information.
Как исправить.
В файле etc/dovecot/conf.d/15-mailboxes.conf
после
namespace inbox {
добавляем
inbox = yes
Webmail (Roundcube) blank page белая страница
Долгое время искал почему RC выдаёт пустую страницу.
Debian 7, php из dotdeb, если php из debian репозитория, то всё нормально.
В файле /var/lib/roundcube/config/main.inc.php
включаем отладку
// system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace $rcmail_config['debug_level'] = 4;
После чего появляется заветная ошибка
Fatal error: Call to undefined function: MDB2_Driver_mysql::raiseError(). in /usr/share/php/MDB2.php on line 1950
Дальше всё просто
// устанавливаем MySQL пакет для MDB2 apt-get install php-mdb2-driver-mysql // устанавливаем Pear apt-get install php-pear // устанавливаем MDB2 библиотеку pear install MDB2 // устанавливаем драйвер MDB2 MySQL pear install MDB2_Driver_Mysql
Roundcube не работает вход
Ошибка
Warning: Declaration of rcmail::get_instance($env = '') should be compatible with rcube::get_instance($mode = 0, $env = '') in /usr/share/roundcube/program/include/rcmail.php on line 30
Debian 8, PHP 7 из стороннего репозитория, Roundcube 1.1
# apt-cache show roundcube-core Package: roundcube-core Source: roundcube Version: 1.1.1+dfsg.1-2
Всё потому-что версии RC ниже 1.2 не работают с PHP 7. Или старый PHP или новый RC.
DKIM
Как создать через консоль
v-add-mail-domain-dkim %user% %domain% %key-length% v-add-mail-domain-dkim admin foobar.com 2048
Как посмотреть и где расположен публичный ключ
Путь /usr/local/vesta/data/users/%user%/mail/%domain%.pub
Как посмотреть содержимое
v-list-mail-domain-dkim-dns %user% %domain%
Пример
# v-list-mail-domain-dkim-dns admin foobar.com RECORD TTL TYPE VALUE ------ --- ---- ----- _domainkey 3600 IN TXT "t=y; o=~;" mail._domainkey 3600 IN TXT "k=rsa; p=MII_abc_длинный_ключ"
Глюк с бэкапом
Если вам не удаётся войти в панель и при этом есть ошибка "NO LANGUAGE DEFINED", то скорее всего нет свободного места.
И обычно оно занято tmp файлами от бэкапов, которые по разным причинам могут не удаляться из каталога /home/backup. При успешном бэкапе tmp файлы должны очищаться.
В первую очередь стоит проверить файл /var/log/vesta/backup.log
Далее уже можно соориентироваться по коду ошибки
VALUE | NAME | COMMENT |
---|---|---|
0 | OK | Command has been successfuly performed |
1 | E_ARGS | Not enough arguments provided |
2 | E_INVALID | Object or argument is not valid |
3 | E_NOTEXIST | Object doesn't exist |
4 | E_EXISTS | Object already exists |
5 | E_SUSPENDED | Object is suspended |
6 | E_UNSUSPENDED | Object is already unsuspended |
7 | E_INUSE | Object can't be deleted because is used by the other object |
8 | E_LIMIT | Object cannot be created because of hosting package limits |
9 | E_PASSWORD | Wrong password |
10 | E_FORBIDEN | Object cannot be accessed be the user |
11 | E_DISABLED | Subsystem is disabled |
12 | E_PARSING | Configuration is broken |
13 | E_DISK | Not enough disk space to complete the action |
14 | E_LA | Server is to busy to complete the action |
15 | E_CONNECT | Connection failed. Host is unreachable |
16 | E_FTP | FTP server is not responding |
17 | E_DB | Database server is not responding |
18 | E_RRD | RRDtool failed to update the database |
19 | E_UPDATE | Update operation failed |
20 | E_RESTART | Service restart failed |
Известные проблемы
- Сама банальная - нехватка места на диске для создания бэкапа
- Пароль MySQL root отличается от пароля указанного в файле
/usr/local/vesta/conf/mysql.conf
- Ошибка в каком-нибудь конфигурационном файле
Также можно встретить рекомендацию по изменению прав на каталог /home/backup
# chmod -R 775 /home/backup
Баг на гитхабе - https://github.com/serghey-rodin/vesta/issues/1035
Глюк с бэкапом 2
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
Лог файл /var/log/vesta/backup.log
-- DB -- 2017-03-28 14:44:56 admin_database1 (mysql) 2017-03-28 14:44:57 admin_database2 (mysql) 2017-03-28 14:45:25 admin_foobar1 (mysql) 2017-03-28 14:45:51 admin_foobar2 (mysql) shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory sudo: unable to resolve current working directory shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory exim: can't get the current working directory: No such file or directory Error: dump admin_foobar2 failed
Из форума Весты я извлёк следующее
Если Error: dump admin_dbname failed, то скорее всего дело таблицы не существуют или повреждены и надо сделать repair
mysqlcheck --no-defaults -u root -p --all-databases mysqlcheck --no-defaults -u root -p --all-databases -o mysqlcheck --no-defaults -u root -p --all-databases --auto-repair mysqlcheck --no-defaults -u root -p --all-databases --analyze
Если shell-init: error retrieving current directory: getcwd, то скорее всего фактическое имя базы в /var/lib/mysql
отличается от имени базы в интерфейсе панели.
Неверный размер БД в VestaCP
Кнопка обновить счётчики не работает.
Выполняем вручную cron задачу
# /usr/local/vesta/bin/v-update-sys-queue disk
В Proftpd копируются только файлы, не создаются каталоги
В логе FTP клиента что-то похожее на 550 Нет такого файла или каталога
.
Добавляем VRootEngine off
в proftpd.conf
Error: DNS_SYSTEM is not enabled
Не добавляется домен, ошибка Error: DNS_SYSTEM is not enabled
Проявляется если не установлен BIND и установка (vst-install.sh) производилась с ключом –named no
Вероятно исправят в следующем релизе
Не работает php mail() и 550 Unroutable sender address
Лог exim:
2014-09-01 09:32:02 no host name found for IP address 112.146.198.65 2014-09-01 10:03:29 H=a94-132-210-11.cpe.netcabo.pt [94.132.210.11] rejected connection in "connect" ACL: rejected because 94.132.210.11 is in a black list at bl.spamcop.net\nBlocked - see http://www.spamcop.net/bl.shtml?94.132.210.11 2014-09-01 10:05:36 no IP address found for host internet.skynt.pl (during SMTP connection from [91.232.192.254]) 2014-09-01 10:12:31 H=inzary.ru (yunobol.ru) [62.109.29.224] F=<[email protected]> rejected RCPT <[email protected]>: Unrouteable address 2014-09-01 11:08:52 1XOPTg-0004J7-9N Completed 2014-09-01 11:08:52 1XOPTg-0004JA-IL ** [email protected]: Unrouteable address 2014-09-01 11:08:52 1XOPTg-0004JA-IL Frozen (delivery error message) 2014-09-01 11:10:24 1XOPVA-0004bB-GJ <= [email protected] U=root P=local S=394 2014-09-01 11:10:24 1XOPVA-0004bB-GJ ** [email protected] R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1429: host mxs.mail.ru [94.100.180.150]: 550 Unroutable sender address 2014-09-01 11:10:24 1XOPVA-0004bE-Tx <= <> R=1XOPVA-0004bB-GJ U=exim P=local S=1353 2014-09-01 11:10:24 1XOPVA-0004bB-GJ Completed 2014-09-01 11:10:24 1XOPVA-0004bE-Tx ** [email protected]: Unrouteable address 2014-09-01 11:10:24 1XOPVA-0004bE-Tx Frozen (delivery error message) 2014-09-01 11:10:44 exim 4.72 daemon started: pid=17703, -q1h, listening for SMTP on port 25 (IPv6 and IPv4) port 587 (IPv6 and IPv4) port 2525 (IPv6 and IPv4) and for SMTPS on port 465 (IPv6 and IPv4) 2014-09-01 11:10:44 Start queue run: pid=17704 2014-09-01 11:10:44 End queue run: pid=17704 2014-09-01 11:10:47 1XOPVX-0004bh-6m <= [email protected] U=root P=local S=394 2014-09-01 11:10:48 1XOPVX-0004bh-6m ** [email protected] R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1429: host mxs.mail.ru [94.100.180.150]: 550 Unroutable sender address 2014-09-01 11:10:48 1XOPVY-0004bl-3w <= <> R=1XOPVX-0004bh-6m U=exim P=local S=1353 2014-09-01 11:10:48 1XOPVX-0004bh-6m Completed 2014-09-01 11:10:48 1XOPVY-0004bl-3w ** [email protected]: Unrouteable address 2014-09-01 11:10:48 1XOPVY-0004bl-3w Frozen (delivery error message) 2014-09-01 11:11:44 1XOPWS-0004rX-U3 <= [email protected] U=root P=local S=394 2014-09-01 11:11:45 1XOPWS-0004rX-U3 ** [email protected] R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<[email protected]> SIZE=1429: host mxs.mail.ru [217.69.139.150]: 550 Unroutable sender address 2014-09-01 11:11:45 1XOPWT-0004ra-Fh <= <> R=1XOPWS-0004rX-U3 U=exim P=local S=1353 2014-09-01 11:11:45 1XOPWS-0004rX-U3 Completed
mail.ru считает обратный адрес несуществующим. vm1113.foobar.com (hostname) должен отвечать на пинг извне (проверить также /etc/hosts).
Решение:
Указать hostname
Добавить запись в /etc/hosts
Создать PTR (rDNS) запись
Tips n tricks
Файловый менеджер
Было 2 платных плагина (file manager и sftp). С сайта Весты информация о плагине file manager куда-то исчезла.
Для активации плагина добавить в конец файла /usr/local/vesta/conf/vesta.conf
строку
FILEMANAGER_KEY='ILOVEREO'
11 марта 2019 - работает
exim не принимает письма если clamd упал
via https://forum.vestacp.com/viewtopic.php?t=5363
malware acl condition: clamd: unable to connect to UNIX socket /var/run/clamav/clamd.ctl (Connection refused)
Заменить в конфигурации exim
malware = *
на
malware = */defer_ok
Подробнее - http://www.exim.org/exim-html-current/doc/html/spec_html/ch-content_scanning_at_acl_time.html
phpmyadmin 1142 - SELECT command denied to user 'admin_db'@'localhost' for table 'pma__table_uiprefs'
phpmyadmin The secret passphrase in configuration (blowfish_secret) is too short
Добавляем в /etc/phpMyAdmin/config.inc.php
пароль длиной 32 символа.
$cfg['blowfish_secret'] = '12345678901234567890123456789012';
Документация - https://docs.phpmyadmin.net/en/latest/config.html#cfg_blowfish_secret
Однако в некоторых случаях проблема связана с правами доступа
chmod 644 /etc/phpMyAdmin/config.inc.php chmod 755 /etc/phpMyAdmin/
phpmyadmin операция импорта невозможна
Текст ошибки - Операция импорта невозможна. Причины: не выбран импортируемый файл; размер импортируемого файла превышает максимально допустимый, заданный в настройках PHP. Смотрите FAQ 1.16.
Debian/Ubuntu?
chmod 777 /var/lib/phpmyadmin/tmp
CentOS
chmod 777 /var/phpmyadmin/tmp
phpmyadmin 403 forbidden
phpmyadmin выдает 403 ошибку.
Загружаем заново конфигурационный файл phpmyadmin для Apache
# wget http://c.vestacp.com/0.9.8/rhel/httpd-pma.conf -O /etc/httpd/conf.d/phpMyAdmin.conf # service httpd restart
Используемые порты
80 - nginx стандартный веб порт
443 - nginx SSL веб порт
8080 - httpd веб порт
8433 - httpd SSL веб порт
8083 - VestaCP web порт
Смена IP адреса
Штатной возможности не предусмотрено.
UPD https://forum.vestacp.com/viewtopic.php?p=70067#p70067
/usr/local/vesta/bin/v-update-sys-ip
Страница заглушка (домен по-умолчанию, default.domain)
Почта уходит в спам
SSL
При установке SSL сертификата от Comodo ошибка Error: SSL intermediate chain is not valid
В поле Центр сертификации SSL / Intermediate добавить в следующем порядке
COMODORSADomainValidationSecureServerCA.crt
AddTrustExternalCARoot.crt
Обсуждение