我正在尝试在 Ubuntu 服务器上使用 Passenger 和 Apache 提供 Rails 应用程序。
Passenger 安装说明说我应该将以下内容添加到我的 Apache 配置文件中 - 我假设这是 /etc/apache2/httpd.conf。
<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /somewhere/public # <-- be sure to point to 'public'!
<Directory /somewhere/public>
AllowOverride all # <-- relax Apache security settings
Options -MultiViews # <-- MultiViews must be turned off
</Directory>
</VirtualHost>
但是,我还没有指向我的服务器的域,所以我不确定应该在 ServerName 参数中输入什么。我试过输入 IP 地址,但当我这样做时,重新启动 Apache 会给出
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sun Jan 17 12:49:26 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sun Jan 17 12:49:36 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
并将浏览器指向该 IP 地址会出现 500 内部服务器错误。
我最接近合理的是
<VirtualHost efate:80>
ServerName efate
DocumentRoot /root/jpf/public
<Directory /root/jpf/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
其中“efate”是我的服务器的主机名。但是现在将浏览器指向服务器的 IP 地址只会显示一个页面,提示“成功了!”——这可能是一个默认页面,但我不确定该页面是从哪里提供的。
我可能错了,认为我无法让它工作的原因与没有域名有关。这是我第一次直接使用 Apache - 任何帮助都将不胜感激!
答案1
您有几个选择。首先,您可以直接浏览到您的服务器主机名,例如: http://efate/? 如果是这样,您就大功告成了。
或者,你可以使用 apache 的默认主机设置。
类似这样的事情应该对你有用:
<VirtualHost *:80>
ServerName _default_
DocumentRoot /root/jpf/public
</VirtualHost>
最后,您可以在本地主机文件中设置一个域,并将其指向您的服务器的 IP,然后使用该域访问服务器。
答案2
在进行服务器迁移之前,我发现自己处于这种情况。
在服务器端,我正确配置了服务器,然后在本地使用“ghost”rubygem 修改我的主机(相当于 OS X),这样我就可以在翻转 DNS 之前测试所有是否正确
答案3
我的 rails 也遇到了类似的问题,只不过在这种情况下,我不需要域名。我所做的就是将 vhost 容器设置在不同的端口上:
<VirtualHost *:1234>
ServerName domain.com
RailsEnv development
DocumentRoot /path/to/app/public
<Directory /path/to/app/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
然后设置 apache 来监听该端口:
Listen 1234
这对我有用。
答案4
我使用的 Ubuntu 版本在 /etc/apache/sites-enabled 中有虚拟服务器配置文件。我怀疑“It works”页面是从 /var/www/htdocs 提供的,并在 /etc/apache/sites-enabled/000-default 文件中指定。编辑此配置文件后,您可能只需使用机器名称即可访问它。