Eri*_*k B 6 mac-osx ruby-on-rails phusion-passenger apache-2.2
我是一名 iOS 开发人员,所以我对 Apache 和 RoR 的经验很少,这是我第一次尝试使用 Mac OS X 作为服务器。
http://rubyonrails.org/deploy建议将Phusion Passenger (mod_rails)与 Apache 一起使用。所以这就是我想要完成的,但我已经走到了死胡同。
这就是我所做的:
我已启用 Apache(设置中的复选框)并将我的浏览器指向 localhost 给我文本“It works!”。我也可以通过我的 dyndns 访问它。
我运行以下命令来安装乘客:
sudo gem install passenger
passenger-install-apache2-module
Run Code Online (Sandbox Code Playgroud)我添加了以下几行/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
Run Code Online (Sandbox Code Playgroud)然后我添加了以下内容/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>
Run Code Online (Sandbox Code Playgroud)我使用以下命令重新启动了 Apache:
sudo /usr/sbin/apachectl restart
Run Code Online (Sandbox Code Playgroud)我有一个正在运行的 rails 应用程序/Users/Shared/rails/project,即运行rails server作品。这只是“欢迎加入,您正在使用 Ruby on Rails!” 页,但它的工作原理。
问题是我还没有弄清楚如何通过Apache 和Passenger 访问该页面。我不知道如何配置虚拟主机,我几乎不知道它是什么。谁能向我解释我做错了什么以及如何解决它?
编辑:只是要清楚。我想my.dyndns.com/project在互联网上公开。我现在得到的是“在此服务器上找不到请求的 URL /project。”
编辑 2:似乎没有任何虚拟主机:
$ sudo /usr/sbin/apachectl -S
VirtualHost configuration:
Syntax OK
Run Code Online (Sandbox Code Playgroud)
除了添加虚拟主机之外还有什么需要做的/etc/apache2/extra/httpd-vhosts.conf吗?
我最近因这个问题获得了热门问题徽章,所以我想是时候发布答案了。我只会发布我的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
Run Code Online (Sandbox Code Playgroud)
另请确保取消注释以下行:
Include /etc/apache2/extra/httpd-vhosts.conf
Run Code Online (Sandbox Code Playgroud)
然后/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>
Run Code Online (Sandbox Code Playgroud)
今天之后我将无法访问该服务器。我们不再使用它了。相反,我们使用Heroku。因此,如果由于某种原因它不适合您,或者我忘记了配置的某些重要部分,我将无法帮助您。它可能已经过时了,我不知道它是否适用于新版本的乘客。此外,服务器使用的是 Mac OS X Snow Leopard,因此它可能无法与其他版本的 OS X 一起使用。但是,我的猜测是它并没有发生太大变化,并且其中大部分仍然有效。
我还想要另一份免责声明。这可能不是最安全的配置。我不明白所有的选项,但它似乎非常允许。我有一位同事帮助我进行配置,这只是我们开始使用的配置的第一个版本。我们不太关心安全性,因为它只是一个开发服务器而不是生产服务器。
如果您对如何改进配置有任何建议,请随时发布。尽管我对这些没有任何用处,但其他人仍然可能有用。毕竟,这是一个热门问题。
| 归档时间: |
|
| 查看次数: |
12613 次 |
| 最近记录: |