如何在Mac OS X上使用Passenger(mod_rails)设置Apache?

我是一名iOS开发人员,所以我对Apache和RoR的经验很less,而且这是我第一次尝试使用Mac OS X作为服务器。

http://rubyonrails.org/deploybuild议使用Apache的Phusion Passenger(mod_rails) 。 所以这就是我想要完成的,但是我已经走到了尽头。

这就是我所做的:

  1. 我启用了Apache(设置中的checkbox),并将浏览器指向本地主机给我的文本“它的工作!”。 我也可以通过我的dyndns来访问它。

  2. 我运行以下命令来安装乘客:

    sudo gem install passenger passenger-install-apache2-module 
  3. 我在/etc/apache2/httpd.conf添加了以下几行:

     LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7 PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 
  4. 然后我将以下内容添加到/etc/apache2/extra/httpd-vhosts.conf

     <VirtualHost *:80> ServerName my.dyndns.org DocumentRoot /Users/Shared/rails/project/public # <-- be sure to point to 'public'! <Directory /Users/Shared/rails/project/public> AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off </Directory> </VirtualHost> 
  5. 我使用以下命令重启Apache:

     sudo /usr/sbin/apachectl restart 

我有一个在/Users/Shared/rails/project ,即运行rails server工作的轨道应用程序。 这只是“欢迎登上,你正在使用Ruby on Rails!” 页面,但它的作品。

问题是我还没有想出如何通过Apache和Passenger访问该页面。 我不知道如何configuration虚拟主机,我几乎不知道它是什么。 任何人都可以向我解释我做错了什么,如何解决?

编辑:只是要清楚。 我希望my.dyndns.com/project在互联网上公开。 我现在得到的是“在此服务器上找不到请求的URL /项目”。

编辑2:似乎没有任何虚拟主机:

 $ sudo /usr/sbin/apachectl -S VirtualHost configuration: Syntax OK 

除了在/etc/apache2/extra/httpd-vhosts.conf添加虚拟主机之外还有什么需要做的吗?

我最近被授予这个问题的stream行问题徽章,所以我认为是时候我发布答案。 我只会发布我的conf文件的相关部分。

所以在/etc/apache2/httpd.conf我有以下几点:

 LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.7 PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 

另外请确保取消注释以下行:

 Include /etc/apache2/extra/httpd-vhosts.conf 

然后在/etc/apache2/extra/httpd-vhosts.conf我有以下几点:

 NameVirtualHost *:80 <VirtualHost *:80> ServerName example.dyndns.org DocumentRoot "/Users/Shared/rails/project/public" <Directory /Users/Shared/rails/project/public> AllowOverride all Options -MultiViews Order allow,deny Allow from all </Directory> </VirtualHost> 

今天之后,我将无法访问此服务器。 我们不再使用它了。 相反,我们使用Heroku 。 所以,如果它不适合你,出于某种原因,或者我已经忘记了一些重要的configuration部分,我将无法帮助你。 它可能已经过时,我不知道它是否适用于较新版本的乘客。 此外,服务器使用的是Mac OS X Snow Leopard,所以它可能不适用于其他版本的OS X.但是,我的猜测是,它并没有改变那么多,而且大部分这仍然是有效的。

我也想要另一个免责声明。 这可能不是最安全的configuration。 我不明白所有的select,但它似乎是非常容许的。 我有一个同事帮助我的configuration,这只是我们工作的第一个configuration版本。 我们并不关心安全性,因为它只是一个开发服务器而不是生产。

如果您对如何改进configuration有任何build议,请随时发布。 即使我对这些没有任何用处,其他人仍然可以。 毕竟,这是一个受欢迎的问题。

https://github.com/Fingertips/passengerpane

我会尝试下载Passenger Preference Pane并使用它来设置您的开发环境。 否则,如果你真的冒险,试试http://pow.cx 。 我使用Pow自己做我的Rails开发。

如果你和Pow一起去的话,我推荐粉末gem来pipe理你的Pow安装。 它应该像下面这样简单:

 gem install powder 

应该是所有你需要做的,然后在这里读粉: https : //github.com/Rodreegez/powder