如何在Ubuntu和Debian上使用Apache和Passenger一起部署Ruby应用

时间:2019-05-19 01:25:52  来源:igfitidea点击:

Phusion Passenger是一个应用服务器,可以集成到Apache和Nginx等web服务器中,并允许通过web服务器提供Ruby/Rails应用。
在生产系统上部署Ruby on Rails应用程序是一个不错的选择。
本文将在像Ubuntu和Debian这样的Linux系统上部署带有Apache的Ruby应用程序。
我们可以将本教程用于登台部署和生产部署。
首先,我们假设系统已经安装了Ruby。

步骤1 -准备工作

首先,启用Apt存储库的HTTPS支持,并在系统上安装passenger 包的PGP密钥。

$ sudo apt-get install -y dirmngr gnupg
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
$ sudo apt-get install -y apt-transport-https ca-certificates

然后,将passenger 存储库引用添加到以下文件。
' lsb_release -cs '将设置操作系统的代号。
我们还可以手动更改此设置并设置代号。

$ sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger `lsb_release -cs` main > /etc/apt/sources.list.d/passenger.list'

步骤2 -安装Apache passenger 模块

现在在系统上安装Apache passenger模块。
我们还可以指定安装Apache2或将其升级到最新版本。

$ sudo apt-get install -y apache2 libapache2-mod-passenger

现在使用以下命令启用passenger模块(如果还没有启用)。
然后重启Apache服务以重新加载新设置。

$ sudo a2enmod passenger
$ sudo systemctl restart apache2.service

步骤3 -创建Apache虚拟主机

现在,我们可以在这个服务器上部署Ruby/Rails应用程序了。
创建一个Apache配置文件并配置虚拟主机。

$ vim /etc/apache2/sites-available/example.com.conf

根据应用程序在磁盘上的位置更改文档根目录。

<VirtualHost *:80>
    ServerName <orange>example.com</orange>

    ### Path to Ruby Application's 'public' directory ### 
    DocumentRoot /path-to-your-app/public

    <Directory /path-to-your-app/public>
	  Allow from all
	  Options -MultiViews
	  ### Uncomment this if you're on Apache > 2.4: ### 
	  # Require all granted
    </Directory>
    </Directory>
</VirtualHost>

现在,启用新创建的Apache站点配置文件。

$ sudo a2ensite example.com

步骤4 -验证设置并重新启动Apache

执行以下命令以验证系统上的passenger 安装。

$ sudo /usr/bin/passenger-config validate-install

所有检查都要通过。

重启apache:

$ sudo systemctl restart apache2.service