我已经花了几个小时彻底地试图找到答案。来自Site5的那些提供托管服务的人遇到了障碍。
我正在尝试做什么:从playplanit [dot] com / sfcal运行reils应用程序,而不是从playplanit [dot] com /运行。
目前的设置: - 应用程序本身在这里:/ home / playplan / apps / ppi / current / - 在.htaccess文件中 PassengerEnabled on PassengerAppRoot / home / playplan / apps / ppi / current - 公共文件在public_html中(以前在这里/ home / playplan / apps / ppi / current / public和public_html是一个sym链接,但我改变了,因为进行此更改的重点是我可以运行docRoot中的Wordpress博客
尝试了什么: - 创建sym链接:sfcal / - > /家庭/ playplan /应用/ PPI /电流/公 - 将RailsBaseURI / sfcal添加到.htaccess文件中 - 尝试更改routes.rb中的所有“路径” 这是在我可以考虑改变改变位置的路径之后的rake路由输出:http://cl.ly/2N2Q2z0N332v2B2F3r38 - 我想也许map.root需要以某种方式改变,但不能,然后其中一位技术人员帮助我将这一行添加到environment.rb:config.action_controller.relative_url_root =“/ sfcal” - 根据它们,httpd.conf文件中不需要更改任何内容 - 我还尝试通过在tmp /
中创建restart.txt文件来重新启动应用程序我知道sym链接有效,但应用程序中的某些内容会识别出它是一个subDir并将提供位于'public'目录中的404。
还有什么需要配置的想法?
谢谢!
答案 0 :(得分:1)
检查乘客文档Deploying to a sub URI。
编辑
您只需要遵循Passenger文档即可。您不必乱用rails路由或移动应用程序public
文件夹。
假设您已将rails应用程序部署到/home/playplan/apps/ppi/current
,并且/home/playplan/public_html
目录是虚拟主机的root,并且具有以下Apache配置:
<VirtualHost *:80>
ServerName playplanit.com
DocumentRoot /home/playplan/public_html
<Directory /home/playplan/public_html>
Allow from all
</Directory>
</VirtualHost>
要让您的应用程序从http://playplanit.com/sfcal访问,您需要执行以下操作:
确保在httpd.conf中为您的Options FollowSymLinks
启用了Apache AllowOverride Options
和VirtualHost
,否则后续操作无效。
在sfcal
目录中创建一个名为public_html
的链接,指向您的rails public
目录。
ln -s /home/playplan/apps/ppi/current/public /home/playplan/public_html/sfcal
将以下内容添加到/home/playplan/public_html/.htaccess
RailsBaseURI /sfcal
将以下内容放入/home/playplan/public_html/sfcal/.htaccess
Options -MultiViews