如何使用基于Rack的应用程序配置Vagrant + Apache + Passenger?

时间:2017-02-15 10:16:58

标签: ruby apache vagrant passenger rack

我正在研究Ruby并尝试使用Apache和Passenger在Vagrant上运行this application。如果我在我的本地计算机上运行它,应用程序工作正常,但如果我尝试在Vagrant上运行它,它只显示404“找不到”页面。 我想我的问题是我无法正确编写Vagrantfile和Apache中的所有配置。我有我的应用程序的页面404,因此它的工作原理。但它在我尝试输入的任何URL上显示404。 VagrantFile包括:

  config.vm.box = "ubuntu/trusty32"
  config.vm.network :forwarded_port, guest: 80, host: 8080
  config.vm.synced_folder "./html/", "/var/www/html"

并且还提供(安装apache2,Ruby 2.3.3,RVM和乘客)

在/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/public
    PassengerRuby /home/vagrant/.rvm/gems/ruby-2.3.3/wrappers/ruby

<Directory /var/www/html/public>
      PassengerEnabled on
      Allow from all
      Options -MultiViews
      Require all granted
</Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

在html文件夹中我也需要apache文件夹(tmp和public)

1 个答案:

答案 0 :(得分:0)

事实证明,REQUEST_PATH变量在Apache(REQUEST_URI)上有另一个名称,这就是路由器总是回复“Nothing found”的原因。 所以我只是改变了这个变量,现在一切正常。