Регистрация...

Eserv Forum / E4 / Eserv 4 beta / Хостинг сайтов на Е4

wikipost // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Можно ли держать 2(несколько) сайта на Е4? Локальных на php. Напр., phpMyadmin и внутр. сайт компании? Весь код ссылается на @$_SERVER["DOCUMENT_ROOT"], а она показывает на корень, напр. "\DATA\web". Без учета дальнейшей разбивки на 2 сайта.
 
Комментарии к этой версии (07.09.2010 15:18) [~matveeva] 53248e20
АвторДатаТекстtags
ili_a07.09.2010 15:47
matveeva пишет: Можно ли держать 2(несколько) сайта на Е4? Локальных на php.
Сколько угодно
matveeva пишет: Весь код ссылается на @$_SERVER["DOCUMENT_ROOT"], а она показывает на корень, напр. "\DATA\web". Без учета дальнейшей разбивки на 2 сайта.

Каталоги для веб-серверов задаются по умолчанию по таким правилам:
http://www.eserv.ru/Eserv4acWEB
Насколько я понимаю SERVER["DOCUMENT_ROOT"] так и берется, то есть у каждого сайта свой, если только вы DocumentRoot в OnRequest.rules.txt не поменяете.
Проверить проще простого, сделайте файл php.php c содержанием <? PhpInfo(); ?> и посмотрите DOCUMENT_ROOT на обоих сайтах.
wikipost
matveeva07.09.2010 16:19
ili_a пишет: Каталоги для веб-серверов задаются по умолчанию по таким правилам:
Я это видела. Хорошо. Предположим, мне нужны сайты company.local и phpMyAdmin. Я делаю структуру Е4\web\company.local и Е4\web\phpMyAdmin. И кладу туда соответственно все содержимое. Так? и обращаться мне к ним как? Чтобы было понятно, что это не внешние сайты, а внутренние. Прописывать в hosts соответствие этим именам и локальному IP Е4? Правильно? Так не получилось.
wikipost
ili_a07.09.2010 17:24
matveeva пишет: Я делаю структуру Е4\web\company.local и Е4\web\phpMyAdmin

Если не менять {Dirs[Root]} то папка web в корне диска, где установлен E4, у меня назначена папка !html. дальше как написали.
matveeva пишет: и обращаться мне к ним как?
Если в локальной сети есть dns сервер, то в нем прописать (или начать использовать встроенный dns в E4, как не знаю), если нет, тотогда в hosts каждого компьютера. Или проще разнесите эти 2 сайта на ИМЯ машины и ip с E4, папки в web соответственно с теми же именами.
wikipost
-08.09.2010 10:46 ред. ред.
ili_a пишет: Если не менять {Dirs[Root]} то папка web в корне диска
Поменяла на другой диск из-за места "Root=D:\web"
ili_a пишет: Если в локальной сети есть dns сервер, то в нем прописать
Прописала. Свой сайт как-то зашевелился, а phpMyadmin работает только, если сделать структуру "E4\DATA\web\phpMyAdmin.local" . А D:\web\phpMyAdmin.local не работает. Говорит про ошибку в механизме сессий. Обращаюсь к нему "http://phpmyadmin.local:3130/" . Но это уже не так страшно, и так сойдет.
wikipost
matveeva08.09.2010 10:52
ili_a пишет: Если не менять {Dirs[Root]} то папка web в корне диска, где установлен E4
Сделала
Root=D:\web
из-за места на диске.
ili_a пишет: Если в локальной сети есть dns сервер, то в нем прописать
Сделала. Свой сайт как-то зашевелился, дальше буду разбираться, а phpMyAdmin рабтает только с вариантом
"\E4\DATA\web\phpMyAdmin.local"
. А если делать
D:\web\phpMyAdmin.local
, то ругается на ошибку в механизме сессий. Но это уже не так важно. лишь бы работал.
wikipost
leka23.10.2010 09:18
Подскажите как правильно прописать публикацию веб-сайтов. Есть к примеру два сайта, один публичный, другой внутренний. Возможность публикации на портах(к примеру на 8085, 8090), но чтобы при обращении набиралось в браузере только имя хоста, без указания порта. Папки с публикуемыми сайтами находятся на другом разделе винта(не на С:\) и отличаются названием папок. То есть папка не как не соответствует названию сайта. Я так понял, что нужно указывать название папки в соответствии с названием сайта, например: site1.ru и папка для его публикации то же должна быть site1.ru, а если название папки отличается, то не будет публикации. Как это правильно прописать? Можно здесь по подробней...
wikipost
ac23.10.2010 17:10
Если в браузере не указывать номер порта, то он будет обращаться к 80 порту в случае http и 443 в случае httpS. Переправить на порты 8085 или 8090 потом можно автоматически, но для этого перенаправления первое обращение от браузера кто-то должен все-таки принять на 80м порту. Иначе "никто" на сервере и не узнает, что браузер пытается с ним работать.

Да, Eserv предполагает, что имена каталогов сайтов заканчиваются на имя хоста или wwwroot ( http://www.eserv.ru/Eserv4acWEB ). Если таковое их размещение невозможно, то можно сделать отображение каталогов линками в файловой системе.
wikipost
leka25.10.2010 11:20
ac пишет: Если в браузере не указывать номер порта, то он будет обращаться к 80 порту в случае http и 443 в случае httpS.
Это понятно, что должен слушаться 80 порт, а потом перенаправляться на другие порты. Как и где прописать, чтобы к примеру при обращении к site1 перенаправлялся на порт 8085, а при обращении site2 на порт 8090?
ac пишет: Да, Eserv предполагает, что имена каталогов сайтов заканчиваются на имя хоста или wwwroot ( http://www.eserv.ru/Eserv4acWEB ).
Да я это видел и у меня располагаются папки на z:\wwwroot\папка для site1(не совпадающая с именем хоста) z:\wwwroot\папка для site2(то же не совпадает с именем хоста). Как это все и где, и как правильно прописать, чтобы была нормальная публикация? Можно пожалуйста по подробней и с примерами.
wikipost
ac25.10.2010 23:37
leka пишет: Как и где прописать, чтобы к примеру при обращении к site1 перенаправлялся на порт 8085, а при обращении site2 на порт 8090?

Если 80й порт слушается Eserv'ом, то надо в том каталоге, который он раздает для этого хоста (site1), создать файл "OnRequest.rules.txt", и в нём записать команду
Port= 80 | Redirect http://{HOST}:8085{URI?P}

В каталоге site2 аналогично
Port= 80 | Redirect http://{HOST}:8090{URI?P}
wikipost
ac25.10.2010 23:49
leka пишет: у меня располагаются папки на z:\wwwroot\папка для site1(не совпадающая с именем хоста) z:\wwwroot\папка для site2(то же не совпадает с именем хоста). Как это все и где, и как правильно прописать, чтобы была нормальная публикация

Сделать каталог \web\site1 символьной ссылкой на z:\wwwroot\папка.

ЛИБО в свойствах домена в E4 указать в поле "Каталог" ваш "z:\wwwroot\папка" (вместо "{SMTP[Local]}", который там по умолчанию). Тогда не только страницы сайта будут оттуда выдаваться, но и почта этого домена будет туда складываться, соответственно она будет доступна через webmail на этом сайте.
wikipost
leka26.10.2010 11:52
Спасибо! буду пробовать... А нельзя ли сделать как то по проще всех этих процедур, к примеру как это сделано в PigMailPigProxy:


26.10-3 Настройки виртуальных каталогов [9208 bytes]

26.10-2 Настройки дополнительных портов [10930 bytes]

26.10-1 Использование дополнительных портов [4060 bytes]
wikipost
ac26.10.2010 17:58
Оно ведь и есть проще — никаких настроек, просто положить свои файлы в каталоги с правильными именами. Вы сами себе усложняете ситуацию дополнительными портами.
wikipost
leka27.10.2010 10:39
ac пишет: Оно ведь и есть проще — никаких настроек, просто положить свои файлы в каталоги с правильными именами.
Ну извините, но так проще... Для того, чтобы в запросе браузера к примеру http://www.site1.ru нужна одна папка, а если в запросе http://site1.ru, уже нужна другая папка, так как у Вас это сделано, что имя папки, должно соответствовать имени в запросе браузера, соответственно их должно быть две и что же здесь проще, а если еще работает на других портах...
ac пишет: Вы сами себе усложняете ситуацию дополнительными портами.
Да нет, как раз не усложняю, а наоборот, пытаюсь разнести по разным портам, для увеличения количества конектов из вне и уменьшения нагрузки на сервер. А так же раздельное отслеживание запросов по тому или иному адресу...
wikipost
ili_a27.10.2010 18:34
leka пишет: Ну извините, но так проще... Для того, чтобы в запросе браузера к примеру http://www.site1.ru нужна одна папка, а если в запросе http://site1.ru, уже нужна другая папка, так как у Вас это сделано, что имя папки, должно соответствовать имени в запросе браузера, соответственно их должно быть две и что же здесь проще, а если еще работает на других портах...
Если по этим запросам должен жить один сайт, то достаточно определиться какое имя будет "главным". На остальные делаем папки и кладем в них OnRequest.rules.txt с редиректом на правильное имя сайта.
wikipost
ac27.10.2010 19:03
leka пишет: Для того, чтобы в запросе браузера к примеру http://www.site1.ru нужна одна папка, а если в запросе http://site1.ru, уже нужна другая папка, так как у Вас это сделано

Нет, не так. Достаточно одной папки. Обратите внимание на L2HOST на упомянутой ранее странице. Если нет папки с www, то будет браться без www.

leka пишет: пытаюсь разнести по разным портам, для увеличения количества конектов из вне и уменьшения нагрузки на сервер.

Снизить нагрузку это никак не поможет. И ограничение количества коннектов в Eserv не связано с портами, а задается глобальным параметром MaxThreads. Делать его больше 1000 (как указано acWEB/OnStartup) нет особого смысла, разве что ваш сервер участвует в раздаче каких-то сверхпопулярных и при этом сверхбольших файлов (много долгих соединений). Раздельно отслеживать (в статистике?) запросы по портам веб-сервера встроенная статистика тоже не умеет.

А какую загрузку сервера дает у вас acWEB4? На нашем веб-сервере (более 30 доменов, в среднем 100тыс. хитов в день, до 4Gb трафика в день; всё на одном порту) acWEB нарабатывает в день 4-5 часов, т.е. дает среднюю загрузку процессора меньше 20%. И простор для оптимизации тут еще большой.
wikipost
ili_a27.10.2010 19:17
ili_a пишет: Если по этим запросам должен жить один сайт, то достаточно определиться какое имя будет "главным". На остальные делаем папки и кладем в них OnRequest.rules.txt с редиректом на правильное имя сайта.
А проще, как сказал ас, делаем по этому правилу
{Dirs[Root]}/{L2HOST}/wwwroot
wikipost
ac27.10.2010 21:21
ili_a пишет: Если по этим запросам должен жить один сайт, то достаточно определиться какое имя будет "главным". На остальные делаем папки и кладем в них OnRequest.rules.txt с редиректом на правильное имя сайта.

Верно. Иначе поисковики непременно проиндексируют оба (одинаковых) сайта, создавая ненужные дубли в (их) индексе и ненужное вам удвоение нагрузки со стороны поисковых пауков.
wikipost
leka29.10.2010 08:08
leka пишет: Можно пожалуйста по подробней и с примерами.
Так как правильно и что прописать в E4.ini?
ac пишет: ЛИБО в свойствах домена в E4 указать в поле "Каталог" ваш "z:\wwwroot\папка" (вместо "{SMTP[Local]}", который там по умолчанию). Тогда не только страницы сайта будут оттуда выдаваться, но и почта этого домена будет туда складываться, соответственно она будет доступна через webmail на этом сайте.
А как сделать то, чтобы сайт работал сам по себе, а webmail сам по себе?
wikipost
leka29.10.2010 08:19
ili_a пишет: ili_a пишет: Если по этим запросам должен жить один сайт, то достаточно определиться какое имя будет "главным". На остальные делаем папки и кладем в них OnRequest.rules.txt с редиректом на правильное имя сайта.
Какие еще папки? у меня должна быть одна папка для сайта... И что в этом файле прописать?
ili_a пишет: А проще, как сказал ас, делаем по этому правилу
{Dirs[Root]}/{L2HOST}/wwwroot
Я извиняюсь, но не как не врублюсь логику и работу таких правил... По этим правилам как ни крути, все равно папки для веб-публикации должны быть на диске "C:\", а в сетевом размещении работать не будет, я так понял, если не прав, поправьте...
wikipost
ili_a29.10.2010 17:46
ред: 29.10.2010 17:49
leka пишет: ...
Первый раз встречаю человека невнимательнее меня. В этой ветке есть все.
  1. Переопределяете {Dirs[Root]} в E4.ini, по умоланию она указывает на папку web в корне диска, куда установлен E4.
  2. Создаете в этой папке папки с названием сайтов site1.ru, www.site1.ru
  3. В папку "главного" сайта кладем файлы сайта, извините за тавтологию.
  4. В другую кладем OnRequest.rules.txt с содержанием (для папки www)
  5. Moved http://site1.ru/
    И все работает.

Или
  1. В папке {Dirs[Root]} создаем папку site1.ru, в ней папку wwwroot
  2. Кладем туда файлы сайта
  3. Теперь по адресу site1.ru и ЧтоУгодно.site1.ru , будет открываться одно содержание
wikipost
leka30.10.2010 09:36
ред: 30.10.2010 09:39
ili_a пишет: Первый раз встречаю человека невнимательнее меня. В этой ветке есть все.
Да, конечно, уж более невнимательного и невнимательно читаем мои посты...
leka пишет: Папки с публикуемыми сайтами находятся на другом разделе винта(не на С:\) и отличаются названием папок. То есть папка не как не соответствует названию сайта

leka пишет: у меня располагаются папки на z:\wwwroot\папка для site1(не совпадающая с именем хоста) z:\wwwroot\папка для site2(то же не совпадает с именем хоста).

ili_a пишет: Переопределяете {Dirs[Root]} в E4.ini, по умоланию она указывает на папку web в корне диска, куда установлен E4.
leka пишет: leka пишет: Можно пожалуйста по подробней и с примерами.
Так как правильно и что прописать в E4.ini?
чтобы переопределить на z:\wwwroot\
ili_a пишет: Создаете в этой папке папки с названием сайтов site1.ru, www.site1.ru
Зачем мне еще создавать папки, если они у меня уже созданы и
leka пишет: у меня располагаются папки на z:\wwwroot\папка для site1(не совпадающая с именем хоста) z:\wwwroot\папка для site2(то же не совпадает с именем хоста).

ili_a пишет: В папку "главного" сайта кладем файлы сайта
У меня они уже лежат в папке, но не совпадает название папки с названием сайта...
ili_a пишет: site1.ru, www.site1.ru
Так вот при таких вот обращениях к сайту, было бы обращение в одну и ту же папку
leka пишет: z:\wwwroot\папка для site1(не совпадающая с именем хоста)
но в то же время работало на разных портах, то же самое нужно сделать и с site2.ru
wikipost
ili_a30.10.2010 11:20
Честно говоря, не могу понять, что мешает переименовать папки сайта, чтоб соответствовали хосту.
leka пишет: чтобы переопределить на z:\wwwroot\
В E4.ini в секцию [Dirs] прописываем (если [Dirs] не существует, то создаем
[Dirs] Root=z:\wwwroot\

Далее, или переименовываем папки, или придется все равно создать папки с именем сайта в которые кладем OnRequest.rules.txt , где переопределяем DocumentRoot
DocumentRoot: z:\wwwroot\site1.ru

Хотя в этом случае можно и не переоределять {Dirs[Root]}, а просто в папке по умолчанию ДискГдеЕ4:\web создаем нужную структуру для Е4 и OnRequest.rules.txt с перенаправлением DocumentRoot.
leka пишет: Так вот при таких вот обращениях к сайту, было бы обращение в одну и ту же папку
смотрите
ili_a пишет: В папке {Dirs[Root]} создаем папку site1.ru, в ней папку wwwroot
Кладем туда файлы сайта
Теперь по адресу site1.ru и ЧтоУгодно.site1.ru , будет открываться одно содержание

leka пишет: но в то же время работало на разных портах, то же самое нужно сделать и с site2.ru

Для начала надо E4 научить отдавать на разных портах... по умолчанию acWeb4 работает на 2х портах, как добавить еще, не знаю, и зачем не понимаю...
wikipost
leka01.11.2010 10:11
Спасибо ili_a за быстрый ответ... Но из выше сказанного можно сказать, что все это так и неудобно и запутано.... для того чтобы опубликовать сайт, нужно прилепить там и не иначе и переименовать, долипить еще что то, потом, то что есть сломать и еще долипить, и в итого как то, что то вроде начинает работать... ну а логи уже нужно расшифровывать или догадываться, что и где означает...
ili_a пишет: Для начала надо E4 научить отдавать на разных портах... по умолчанию acWeb4 работает на 2х портах, как добавить еще, не знаю, и зачем не понимаю...
Ну здесь еще более запутано, по умолчанию порт устанавливается в E4.orig.ini 50080... что это за порт? публикации чего? но зато управление запускается, да, на 2х порту, точнее с начало на 2009, но и потом при перезапуске службы может запуститься на 2010 или 2011 порту и это я заметил, что не предсказуемо, на каком порту запуститься в следующий раз. Вот видите и Вам не понятно, как запускать публикации сайтов на разных портах и как вообще задавать, чтобы acWeb слушал тот или иной порт и публиковать на этих портах... Я выше показывал, как это все реализовано в PigMailPigProxy... как это все просто и удобно... задал порты, которые должен слушать веб-сервер, далее указал имя сервера который должен обработать он и в соответствии с этим именем перенаправляется на тот порт, который указан в настройках, путь и каталог расположенный на любом разделе... и не надо вот таких танцов с бубном, чтобы опубликовать, что то...
wikipost
ac01.11.2010 14:29
Leka, это не в E4 сложно, а у вас. Мы ведь уже разобрались выше, что вы использовали несколько портов, т.к. думали, что это что-то там ускорит. Но это не так, поэтому вы можете использовать один порт — проще и вам, и вашим пользователям.

По умолчанию 50080 вместо 80, чтобы исключить конфликт портов с IIS на этапе установки (это в программе установки поясняется). Если IIS нет, то поставьте там 80.

2009, и т.д. — порт консоли управления. Он выбирается динамически (в программе это поясняется). Сначала используется 2009, если никакой программой не занят. Если вы запускаете второй-третий-четвертый acWEB, то будет 2010, 2011, 2012, и т.д. Т.е. всё предсказуемо.
wikipost
alex112423.04.2012 22:22
В настоящий момент у меня сайт лежит D:\web\domen.ru
CNAME Record прописано www.domen.ru. — domen.ru.
Но при обращении к www.domen.ru меня перекидывает на d:\E4\DATA\wwwroot, а не на D:\web\domen.ru. А там, соответственно лежит другой сайт. Подскажите, куда копать?
wikipost
ac24.04.2012 09:21
ред: 24.04.2012 09:22
По domain.ru нормально выдается сайт?

Чтобы не получилось два одинаковых сайта www.domen.ru и domen.ru сделайте редирект к каноническому урлу, поместив в D:\web\domen.ru\OnRequest.rules.txt такую строку:

HOST =~ www.domen.ru | Moved http://domen.ru{URI?P} \EOF
wikipost
alex112424.04.2012 15:52
Да, по domain.ru нормально выдается сайт. Мне как раз и надо, чтобы набирая domain.ru или www.domain.ru попадали на один и тот же сайт. Прописал файл. При попытке обратиться к адресу с www перебрасывает на DATA\wwwroot
wikipost
ac24.04.2012 16:49
В {Dirs[Data]}/wwwroot он попадает после проверки такого списка:
{Dirs[Root]}/{L2HOST}/{HOST}/wwwroot {Dirs[Root]}/{L2HOST}/{HOST} {Dirs[Root]}/{L2HOST}/wwwroot {Dirs[Root]}/{HOST} {Dirs[Data]}/web/{HOST} {Dirs[Data]}/wwwroot


В случае www.domen.ru L2HOST=domen.ru. И вот как раз {Dirs[Root]}/{L2HOST} (чтобы попасть в D:\web\domen.ru) в этом списке нет. Значит проблема должна решиться перемещением содержимого D:\web\domen.ru\ в D:\web\domen.ru\wwwroot\, тогда оба сайта попадают под шаблон {Dirs[Root]}/{L2HOST}/wwwroot.
wikipost
alex112424.04.2012 17:36
А еще такой вопрос — слетела кодировка.
Заявляют разработчики, что для решения проблем с кодировкой необходимо на сервере установить кодировку UTF-8. Также, частично может помочь прописывание в .htaccess директивы AddDefaultCharset UTF-8. Как можно решить данный вопрос?
wikipost
ac24.04.2012 18:32
alex1124 пишет: Заявляют разработчики

Разработчики чего именно? DefaultCharset может помочь только для статических html-файлов, т.к. только для них Eserv сам выставляет Content-Type (в который можно дописать charset). Если там разработчики, то наверное cgi-скрипты, а раз скрипты, то Content-Type в их полной власти. Либо можно в шаблонах страниц этого сайта в заголовке добавить строку мета-тега:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
wikipost
alex112413.11.2012 08:18
Битрикс обновил свою оболочку и для работы требует PHP не ниже 5.3. Скачал PHP 5.4.8. Скинул в Е4/PHP5, перезапустил acWeb. При попытке зайти на страницу выдает EXEC_CGI result: err=0 (acWEB_SE 5322).
Если пробую запустить php-cgi.exe ругается на php5ts.dll
wikipost
ac13.11.2012 09:25
Может тогда на FastCGI переключиться (HTTP[PhpInterface])...
wikipost
alex112413.11.2012 11:09
ред: 13.11.2012 11:10
Если прописать в e4.ini
[HTTP] PhpBin=\E4\php5\php-cgi.exe # PhpInterface=CGI PhpInterface=FastCGI PhpFastCgiPort=9000 PerlBin=\E4\perl\bin\perl.exe
получаем на выходе: EXEC_FCGI result: err=0 (acWEB_SE 5322)
wikipost
ac13.11.2012 11:36
А FastCGI-серверы запускали?
set PHP_FCGI_MAX_REQUESTS=0 start php-cgi.exe -b 9000 start php-cgi.exe -b 9001 start php-cgi.exe -b 9002 start php-cgi.exe -b 9003 start php-cgi.exe -b 9004 start php-cgi.exe -b 9005 start php-cgi.exe -b 9006 start php-cgi.exe -b 9007
wikipost
alex112413.11.2012 16:06
Что-то у меня с PHP.ini. Буду разбираться с настройками
wikipost
alex112417.11.2012 14:14
Скачал с Денвера дистрибут с PHP, установил. Работает в CGI режиме. Спасибо.
wikipost
matveeva20.05.2013 15:20
ред: 20.05.2013 15:22
Прошу прощения за поднятие темы. Давно этим не занималась, сейчас понадобилось, и не могу ничего понять.
Есть у меня сайт локальный, давно работающий, в домене local. Все с ним здорово. Делаю еще один в том же домене. Тоже работает. Но вижу в логах HTTP-PROXY обращения к новому сайту. А обращения к старому сайту присутствуют только в HTTP журналах.
Оба сайта лежат в соседних директориях. В DNS сервере ( у меня 2003-й) был прописан старый сайт в домене local с привязкой к IP Eserv-а. Дописала туда новый сайт по той же схеме, потом добавила еще и "*", чтобы чтоугодно.local не искалось бы вне Eserv-а. Ничего не помогает. По-прежнему, старый сайт есть только в "местных" журналах, а все новые "отмечаются" в логах HTTP-PROXY (в логах HTTP новые сайты тоже есть).
В файле hosts только одна строка: 127.0.0.1 localhost
Ума не приложу, где еще покопать... Оно бы и не мешало — работает ведь, но мне кажется, что медленнее работает, чем должно было быть, ну и вообще — непорядок, нарушает картину мира
Спасибо.
wikipost
pig20.05.2013 16:02
Так исключения для прокси в настройках браузеров надо прописывать. Если централизованно — то через политики раздавать или через wpad (вот я какое волшебное слово знаю).
wikipost
matveeva20.05.2013 16:33
Блин Точно Вот, что значит, давно этим не заниматься! Ведь проходила это сто раз! И политики сделаны, и настроено все, как надо. Только не с тем профилем в домен зашла ))
Спасибо огромное!
wikipost
Работает на Eserv/5.05567 (10.02.2020)