как настроить Apache Conf и, возможно, Passenger, чтобы больше vhosts работало на одной кодовой базе - PullRequest
0 голосов
/ 31 марта 2011

Моя кодовая база сегментирует пользователей по идентификатору (OXID), но я бы хотел, чтобы у сегментированных пользователей были отдельные публичные папки, а для меня отключил бы сайт , не причиняя беспокойства другим сайтам - вот почему я хотел бы, чтобы мое включение в httpd.conf выглядело так:

<VirtualHost *:80>
    ServerName ny1.alco.dk
    DocumentRoot /var/www/html/alco/current/sites/user_A/public
    PassengerAppRoot /var/www/html/alco/current
    SetEnv OXID 23
</VirtualHost>

<VirtualHost *:80>
    ServerName ny2.alco.dk
    DocumentRoot /var/www/html/alco/current/sites/user_B/public
    PassengerAppRoot /var/www/html/alco/current
    SetEnv OXID 25
</VirtualHost>

Apache хорош с этим - но Passenger лает, что «нет такого файла для загрузки - упаковщик» - так что, очевидно, это неправильно!

Возможно ли это вообще (по крайней мере, для Apache / 2.2.14 (Unix), Ruby 1.8.7 p330, Rails 3.0.3 и Passenger 3.0.2)

Обновление!
Оказывается, пассажирский «лай» был на мне: (

У меня 2 сайта запущены и работают, но оба сайта сообщают ENV ['OXID'] первого доступного хоста !? То есть. если я просматриваю ny1.alco.dk/something - я получаю «23», что хорошо, но я также получаю «23», если потом перехожу на ny2.alco.dk !? Аналогично - если я сначала перехожу к ny2.alco.dk/something после касания tmp / restart.txt, я получаю «25», которое будет таким же значением, которое я получу при последующем просмотре к ny1.alco.dk - Хмммм

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Rails 3.2.0 включает config.ru, который действительно кажется виновником - удаление его полностью решило мою проблему с несколькими сайтами.

Итак, урок - пока что - то, что приложения на Rails нелегко взломать, если вы хотите делиться кодом между похожими сайтами!

0 голосов
/ 01 апреля 2011

Возможно, это взлом - мне нужно исследовать дальше, но:

Если я делаю

ln -s /data/www/html/alco/current ny1
ln -s /data/www/html/alco/current ny2

, а затем отредактируйте мой /data/apache/conf.d/alco.conf для хранения

<VirtualHost *:80>
    ServerName ny1.alco.dk
    DocumentRoot /var/www/html/alco/ny1/sites/user_A/public
    PassengerAppRoot /var/www/html/alco/ny1
    SetEnv OXID 23
</VirtualHost>

<VirtualHost *:80>
    ServerName ny2.alco.dk
    DocumentRoot /var/www/html/alco/ny2/sites/user_B/public
    PassengerAppRoot /var/www/html/alco/ny2
    SetEnv OXID 25
</VirtualHost>

У меня все хорошо:)

Я все еще хотел бы получить второе мнение по этому вопросу - но пока; У меня все хорошо :)

...