我正在尝试在新的虚拟机上托管rails2应用程序,该虚拟机是带有Parallels Plesk Panel 11(64位)的CentOS 6。 我已经使用here
给出的步骤成功安装了RVM,ruby,rails和passanger我已正确执行了所有步骤。 我已经安装了 ruby 1.8.7 和 rails 2.0.2
现在问题是,我能够在新服务器上使用3000端口的Webrick服务器运行应用程序。一切都很好。但是,当我想用apache运行它时,它不会运行。当我点击网址时它返回页面
未找到
在此服务器上找不到请求的网址/帐户/登录信息。阿帕奇 服务器在www.mem.com端口80
这是我的passanger.conf文件:
/etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.8.7-p371/gems/passenger-3.0.19
PassengerRuby /usr/local/rvm/wrappers/ruby-1.8.7-p371/ruby
这是我的虚拟主机代码:
/etc/httpd/sites-available/mem.conf
<VirtualHost *:80>
ServerAdmin youremail@example.com
DocumentRoot /var/www/mem/public
ServerName www.mem.com
ErrorLog /var/log/httpd/mem/error.log
CustomLog /var/log/httpd/mem/access.log common
</VirtualHost>
任何建议都将不胜感激。
答案 0 :(得分:1)
问题已经解决。已经由Web托管公司创建了具有不同Document Root的虚拟主机。我将我的app目录移动到该路径并启动了应用程序。感谢大家的建议。
答案 1 :(得分:1)
如果您设法将DocumentRoot
设置为错误或不存在的目录,也可能会看到此问题。如果你无法解决这个问题,请仔细检查它是否存在。
答案 2 :(得分:0)
尝试在VirtualHost中添加此目录块
<Directory /var/www/mem/public>
Allow from all
Options -MultiViews
</Directory>
答案 3 :(得分:0)
我正在运行带有Apache&amp;的CentOS 6盒子乘客模块。我的网站配置位于/etc/httpd/sites-enabled/
文件夹中。这是我的conf:
# /etc/httpd/sites-enabled/hello-world.conf
<VirtualHost *:80>
ServerName hello-world.localhost
DocumentRoot /var/www/hello/public
<Directory /var/www/hello/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
永远记得重新启动apache:
$ sudo apachectl restart
希望这对你有所帮助。祝你好运。
答案 4 :(得分:0)
我自己也遇到了同样的问题,不过在rhel 6.2(64bit)上使用rails3应用程序,在https上使用ruby-1.8.7。我通过在/etc/httpd/conf.d/myapp.conf中添加以下行(在“VirtualHost”部分之后)修复了我的问题:
PassengerPreStart https://<url-to-my-rails-app>
重新启动apache后,我的应用程序会正常显示。
您可以从apache的乘客用户指南中找到更多信息:http://www.modrails.com/documentation/Users%20guide%20Apache.html#User_switching
答案 5 :(得分:-5)
禁用selinux。
答案必须至少30个字符。