Как доработать напильником VirtualHost в CentOS Web Panel
13 Apr 2015 | Автор: dd |После установки панели управления хостингом CentOS Web Panel, первая же задача обернулась пляской с бубном в полдня, что конечно сильно подорвало её авторитет в моих глазах, по сравнению с той же VestaCP, т.к все таки панелька предназначена для облегчения жизни админа, а не разбора конфигов и ломания головы над тем, что же хотел сказать аффтар.
Смысл в том, что попытался прикрутить два домена под саты и добавил первый домен через пользовательский аккаунт успешно, но при попытке добавить второй домен через второй аккаунт – выводился только первый сайт по обоим доменам.
Поковырявшись, попытался повесить оба домена на отстраненный аккаунт, но почему то вдруг все поломалось окончательно и, вместо сайтов, веб-сервер стал отдавать дефолтную текстовую страничку апача “HTTP Test Page powered by CentOS-WebPanel.com”, при том что виртуальные хосты были прописаны корректно. Если тупо влить контент в /usr/local/apache/htdocs/ то по всем добавленным доменам будет отдаваться дефолтный домен, но беда в том, что там же лежат все системные прилады, вроде пхпадмина или раундкуба, что не есть хорошо.
Перепробовал все что можно, пока методом научного тыка и ковыряния не выявил, что это является следствием конфликта портов апача, которые в панельке CWP настраиваются аж в трех местах, и вот пока они все не будут приведены к одному знаменателю, ничего не заработает:
- Dashboard -> CWP Settings -> Edit Settings откуда порт пишется в виде NameVirtualHost %Shared IP%:%Apache Port% в конфиг /usr/local/apache/conf/sharedip.conf
Shared IP и Apache Port есессно задаются вами в менюшке - Dashboard -> Apache Settings -> Apache Configuration правящий конфиг апача /usr/local/apache/conf/httpd.conf где в директиве Listen 80 ставится порт
- Dashboard -> Apache Settings -> Edit Apache vHosts который лезет в конфиг /usr/local/apache/conf.d/vhosts.conf
Вот во всех трех пунктах должен быть выставлен один и тот же порт, после чего руками, надо править:
- Сменить Shared IP на 127.0.0.1 т.к эта убогая шарманка CWP, иначе взводит на внешнем IP единственный виртуальный хост, который смотрит в дефолтную папку /usr/local/apache/htdocs/ откуда и показывается дефолтная тестовая страницы веб-сервера Apache. А лучше вообще закомментировать весь файл, т.к в этом случае CWP не пытается его переписать при правках конфига апача.
- прописать свою директиву в конфиг апача
NameVirtualHost *:80
благодаря которой, если все остальные порты совпадают, все домены начинают работать корректно. Без этой директивы, при совпадении всех портов и SharedIP выставленном127.0.0.1, будет по всем доменам показываться только первый виртуальный хост.
А вот дальше начинается еще больший гемор, т.к при каких то изменениях конфигов, CWP перезаписывает файло /usr/local/apache/conf/sharedip.conf актуальными директивами, поднимая по всем явкам дефолтный домен, поэтому процедура включения кэширования Varnish, выглядит следующим образом: сначала меняем в пунктах 2 и 3 порты с 80 на какой нить 82 или 8181, после чего прописываем в Dashboard -> Apache Settings -> Varnish Cache Server все параметры, после чего через консоль комментируем все записи в файле /usr/local/apache/conf/sharedip.conf и рестартим Apache & Varnish Cache Server:
# service httpd restart
# service varnish restart
С кэшированием от Nginx тоже приходится шаманить, т.к при включении кэширования Nginx, движок CWP пишет херню совершенно от балды, а также криво меняет порты, т.к в настройках виртуальных хостов апача и в директиве конфига NameVirtualHost *:80 порты придется менять руками на 8181.
После этого лезим в файл /usr/local/apache/conf.d/rpaf.conf и меняем строку
RPAF_ProxyIPs 127.0.0.1 127.0.0.1
на свой внешний IP
RPAF_ProxyIPs 37.187.114.200
и проверяем наличие подгружаемой библиотеки
LoadModule rpaf_module modules/mod_rpaf.so
т.к. в моем случае файл /usr/local/apache/modules/mod_rpaf.so ссылался на отсутствовавшую папку /usr/lib64 и пришлось перелинковывать на /usr/lib/httpd/modules/mod_rpaf
После этого идем в конфиги виртуальных хостов Nginx /etc/nginx/conf.d/site.ru и меняем параметры
listen 127.0.0.1:80;
root DocumentRoot;
на актуальный путь до папки с документами сайта и все IP
listen 80;
root /home/site/public_html;
Рестартим серваки
# service httpd restart
# service nginx restart
и видим что все работает, не прошло и года.
Автор:Андрей на 31 Jul 2015
Здравствуйте! Вы не могли бы показать пример настройки файла vhosts.conf ?
[Reply]
anchous Reply:
July 31st, 2015 at 11:29 pm
у меня там больше, но по одному сайту выглядит как то так (единственно комменты ключат, там в ServerAlias без хттп:// )
#############################
# vhost_start site.ru
ServerName site.ru
ServerAlias http://www.site.ru
ServerAdmin me@site.ru
DocumentRoot “/home/site/public_html”
ScriptAlias /cgi-bin/ “/home/site/public_html/cgi-bin/
#
# Custom settings are loaded below this line (if any exist)
# Include “/usr/local/apache/conf/userdata/site/site.ru/*.conf
SuexecUserGroup site site
suPHP_UserGroup site site
suPHP_ConfigPath /home/site
AllowOverride All
# vhost_end site.ru
#####################################
[Reply]
Автор:Андрей на 01 Aug 2015
Спасибо большое за отклик! У меня настроено также, но открывается только первый сайт по 2м доменам. Не могу понять причину неполадки и как ее исправить (
[Reply]
Автор:Groh на 20 Mar 2017
Ух ты, два года прошло, а воз и ныне там и косяк имеет место быть. Искал я замену ispconfig’у, но ковыряя cwp на виртуалке и погуглив уже третью проблему за неполные полчаса, думаю что нафиг это чудо.
[Reply]
anchous Reply:
March 20th, 2017 at 1:44 pm
ну я ставлю весту и не жужжу. единственный баг что столкнулся – это то что бэкапы забиваются темпами, приходится ручками править.
ну и под сапулечку немного править настройку, чтобы хтмы не кэшировались.
в остальном – ни в какое сравнение с этой фабрикой костылей, где при попытке добавить что то новое, все рушится и приходится ковырять по новой
[Reply]