LINUX.ORG.RU
ФорумAdmin

apache2 > mydomain.ru/site1/*.cgi & mydomain.ru/site2/*.cgi


0

1

Здравствуйте.

Дано. Привязка к домену mydomain.ru В каталоге /var/www/ находится два каталога с разными сайтами, пусть будет site1 и site2. Внутри у них своя структура, где *.cgi и *.html Задача такая, чтобы по ссылке mydomain.ru/site1/index.cgi - запускался один сайт, а по ссылке mydomain.ru/site2/index.cgi открывался второй сайт. Сколько я только не колдавал с вирутальными хостами, никак не получается разделить эти сайты на одном домене. Как я делаю вначале - для каждого сайта создаю свой файл с конфигом в sites-available, «включаю» его. Т.е. на этой стадии я понимаю что делаю. А вот с конфигами как-то никак. В гугле материалы по той ситуации что у меня, я так и не нашел( Буду признателен даже за пинок в нужное русло.


Вам следует конфиги показать.

Вообще вроде

NameVirtualHost 127.0.0.1  
  
<VirtualHost 127.0.0.1>  
ServerName mysite1.com 
DocumentRoot  /var/www/test2   
</virtualHost>  
  
<VirtualHost 127.0.0.1>  
ServerName mysite2.com  
DocumentRoot  /var/www/test2   
</virtualHost>
alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Вот смотрите, у вас просто mysite1.com mysite2.com, а мне надо - mydomain.ru/site1/index.cgi чтобы открывался и mydomain.ru/site2/index.cgi Конфигов нет, т.к. все они не рабочие. Я просто не могу понять как их разделить в данном случае.

Neat
() автор топика
Ответ на: комментарий от Neat

mydomain.ru/site1/index.cgi чтобы открывался и mydomain.ru/site2/index.cgi

Вообще тогда не понимаю в чем проблема. У вас же открывается, например, www.linux.org.ru/gallery/ и www.linux.org.ru/news/ - так по описанию у вас то же самое - один сайт с двумя разными разделами.

Но я предлагаю при переходе на mysite1.com открывать mydomain.ru/site1/index.cgi, при переходе на mysite2.com открывать mydomain.ru/site2/index.cgi - так вроде визуально правильнее.

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

Вот именно так и я хочу. За основу я брал конфиг с debian-administration.org - вот он http://pastebin.com/zjb3LuQt Тут как раз, чтобы мои cgi'ники ткрывались, но поскольку я не системный администратор, мне немного тяжело организовать «разделения» по домену. Я рад чтобы поняли как я реализовать хочу.

Neat
() автор топика
Ответ на: комментарий от Neat

Ну так а проблема в чем? Вам нужны VirtualHost'ы, я дал пример конфига.

В вашей ссылке есть

 ScriptAlias /cgi-bin/ /home/www/www.example.org/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>

Это и есть описание того, где лежат CGI. Можно просто на паку в Options указать ExecCGI .

alozovskoy ★★★★★
()
Ответ на: комментарий от Neat
ScriptAlias /site1/ /var/www/mycompany/site1/www
        <Location /var/www/mycompany/site1/www>
                Options +ExecCGI
        </Location>

У вас прописан путь до скриптов только для одного каталога, а по условию у вас их два. Да и по условию путь до скрипта mydomain.ru/site1/index.cgi, а по конфигу как минимум должно быть mydomain.ru/site1/www/index.cgi.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)

В чём вообще должна проявляться многосайтовость? То что вы описали это не два сайта, а один сайт (один виртуальный хост) с двумя директориями (site1 и site2). В этих директориях могут содержаться как совершенно независимые сайты, так и разделы одного сайта, с точки зрения конфигурации веб-сервера это не имеет значения. С точки зрения веб-сервера это один сайт хранящийся в директории /var/www/ и имеющий имя mydomain.ru

Так-же хочу отметить что в силу ряда причин (от организационных до эстетических) независимые сайты лучше размещать различных доменах. т.е. не http://mydomain.ru/site1/ а http://site1.mydomain.ru или site1.ru (в зависимости от поставленных целей и имеющихся средств).
Как настроить apache подобным образом вам уже подсказали выше.

Думаю если вы подробнее опишите ситуацию мы достигнем большего взаимопонимания и я смогу лучше помочь вам.

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Получается я не корректно изложил свою задачу. Извиняюсь. Спасибо что дали понять, что это будет считаться одним сайтом. Я попробую начать сначала. У меня есть два проекта, которые активно используют и собственно запускаются через .cgi файлы. Я их разместил в /var/www/ - project1 и project2. Далее я свято верил в то, что для каждого проекта, чтобы они были доступны для конечного пользователя по ссылке в таком виде - http://mydomain.ru/site1/main.cgi и http://mydomain.ru/site2/main.cgi нужно сделать отдельный виртуальный хостинг в apache. Приступил к созданию одного виртуального хостинга. Создал файл, подключил его, начал править-пробовать. В конце концов я понял вроде как запускать мои cgi файлы, т.к. пошла ошибка 500. Как только я не игрался с правами - никак не убрать. В общем я все грешу на криво настроенный конфиг. До меня все работало, но админ, как я выяснил, в самом apache2.conf сделал все так, что набрав ссылку до main.cgi открывался в браузере каталог с файлами и исходниками - ну это абзац. Сейчас он в отпуске и мне приходится самому разбираться. К сожалению пока придётся использовать не очень корректный метод ведения ссылок как я писал в этом посте сначала, в скором времени, если проект одобрят скажем так, все будет по человечески.

Neat
() автор топика
Ответ на: комментарий от Neat

В вашем случае нужен один виртуальный хост с DocumentRoot (расположение файлов) /var/www/ и ServerName mydomain.ru

Ошибка 500 это «внутренняя ошибка сервера», она может быть вызвана проблемой с правами доступа, но не только ей.
Покажите конфиги апача.

P.S. для запрета просмотра содержимого директории в apache используется опция -Indexes, например:
<Directory />
Options -Indexes
</Directory>
/ здесь это корень сайта, например http://mydomain.ru/
По умолчанию просмотр содержимого директории и так запрещён, так-что можно просто убрать соответствующую разрешаюую опцию из apache2.conf или где она там прописана.

В общем случае если вы не хотите что-бы посетителю были доступны какие-то файлы — просто не кладите их в DocumentRoot.

MrClon ★★★★★
()
Ответ на: комментарий от Neat

Не прописан ServerName, лучше всё-таки прописать, и я не понял что за колдунство со ScriptAlias.

Попробуйте так http://pastebin.com/n4PzqQ8B

Правда нужно уточнить, я с cgi никогда не работал, кажется там есть какие-то тонкости с безопасностью которые нужно учитывать. Так-что приведённый выше конфиг если и заработает то годится только для прототипа.

MrClon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.