Debian 8 使用 Apache 部署 Ruby on Rails

· · 506 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

安装Passenger和依赖关系

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

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

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

sudo gem install fastthread

3.安装Ruby On Rails:

sudo gem install rails

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

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

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

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

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

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

配置Apache以使用Passenger

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

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

2.重启Apache

sudo systemctl restart apache2

部署多个Rails应用程序

有许多方法可以使用Passenger部署多个Rails应用程序。 最简单的方法是运行如上配置的多个不同的虚拟主机来托管单个Rails应用程序。 或者,您可以在单个虚拟主机中托管多个Rails应用程序。 本节介绍一个。

1.添加RailsBaseURI指令,指定虚拟主机配置中Rails应用程序的路径,如以下示例所示, /etc/apache2/sites-available/example.com.conf:

DocumentRoot /var/www/html/example.com/public_html/
RailsBaseURI /app1
RailsBaseURI /app2
RailsBaseURI /app3

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

ln -s /var/www/html/example.com/app1/public/ /var/www/html/example.com/public_html/app1/
ln -s /var/www/html/example.com/app1/app2/ /var/www/html/example.com/public_html/app2/
ln -s /var/www/html/example.com/app1/app3/ /var/www/html/example.com/public_html/app3/

关注本站微信公众号(和以上内容无关)InfraPub ,扫码关注:InfraPub

506 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传