Debian 8使用Apache部署Ruby on Rails

Ruby on Rails是一个快速开发的Web框架,Web设计人员和开发人员利用它能实现动态的全功能Web应用程序。 本文使用Phusion Passenger或mod_rails方法部署Rails应用程序。 Passenger允许您直接在Apache应用程序中嵌入Rails应用程序,而无需使用FastCGI或复杂的Web服务器代理。

安装Passenger和依赖关系



1.安装使用Ruby,构建Ruby模块和运行Rails应用程序所需的系统包:

  1. sudo apt-get install build-essential libapache2-mod-passenger apache2 ruby ruby-dev libruby zlib1g-dev libsqlite3-dev

2.使用gem模块的gem包管理器,安装fastthread gem:

  1. sudo gem install fastthread

3.安装Ruby On Rails:

  1. sudo gem install rails

4.(可选)为您的应用程序安装其他依赖项,例如MySQL支持:

  1. sudo apt-get install mysql-server libmysqlclient-dev mysql-client mysql-common
  2. sudo gem install mysql

5.将rails添加到$PATH环境变量。 请确保用正在运行的Ruby版本替换VERSION:

  1. ls /var/lib/gems
  2. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/VERSION/bin"

6.在您的网站的公共文件夹中启动一个新的rails项目,以确保一切正常配置。 替换为你的应用程序名称:

  1. sudo rails new /var/www/html/example.com/public_html/application

配置Apache以使用Passenger



1.打开配置文件,调整DocumentRoot
/etc/apache2/sites-available/example.com.conf:

  1. DocumentRoot /var/www/html/example.com/application/public

2.重启Apache

  1. sudo systemctl restart apache2

部署多个Rails应用程序



有许多方法可以使用Passenger部署多个Rails应用程序。 最简单的方法是运行如上配置的多个不同的虚拟主机来托管单个Rails应用程序。 或者,您可以在单个虚拟主机中托管多个Rails应用程序。 本节介绍一个。
1.添加RailsBaseURI指令,指定虚拟主机配置中Rails应用程序的路径,如以下示例所示:
/etc/apache2/sites-available/example.com.conf:

  1. DocumentRoot /var/www/html/example.com/public_html/
  2. RailsBaseURI /app1
  3. RailsBaseURI /app2
  4. RailsBaseURI /app3

这些指令配置Passenger在example.com站点上指定的三个位置运行三个Rails应用程序。
2.将应用程序的public/目录链接到public_html/的子目录:

  1. ln -s /var/www/html/example.com/app1/public/ /var/www/html/example.com/public_html/app1/
  2. ln -s /var/www/html/example.com/app1/app2/ /var/www/html/example.com/public_html/app2/
  3. ln -s /var/www/html/example.com/app1/app3/ /var/www/html/example.com/public_html/app3/
标签:部署DebianApache 发布于:2019-11-21 10:54:55