【问题标题】:How to configure Vagrant + Apache + Passenger with Rack-based application?如何使用基于 Rack 的应用程序配置 Vagrant + Apache + Passenger?
【发布时间】:2017-07-03 22:36:24
【问题描述】:

我正在研究 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)

【问题讨论】:

  • 您如何运行/启动您的应用程序?你如何访问它?
  • 我只运行“vagrant up”命令,然后我转到 127.0.0.1:8080,apache 配置由 vagrant provision 中的 shell 脚本更改

标签: ruby apache vagrant passenger rack


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-02
    • 2011-03-23
    • 2019-03-30
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多