如何在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