我的代码库根据标识符(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']! IE浏览器。如果我浏览ny1.alco.dk/something-我得到'23'这是好的,但如果我然后浏览到ny2.alco.dk我也得到'23'!同样 - 如果我在触摸tmp / restart.txt之后浏览到ny2.alco.dk/something作为第一件事,我得到'25',这将是我得到的相同值,当随后浏览到ny1.alco.dk时 - 嗯
答案 0 :(得分:0)
也许这是一个黑客 - 我需要进一步调查,但是:
如果我这样做
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>
我很好:)
我仍然喜欢这个的第二个意见 - 但是现在;我很好:)
答案 1 :(得分:0)
Rails 3.2.0包含一个config.ru
,它似乎真的是罪魁祸首 - 完全删除它解决了我的多站点问题。
所以,到目前为止,如果您想在类似网站之间共享代码,那么Rails应用程序不会轻易耙!