小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache。

安装apache服务器

命令是sudo apt-get install apache2

安装passenger插件

安装完毕还不能立刻用,因为想运行rails应用的话,还要为apache服务器安装插件passenger。

passenger是一个gem包,安装命令是gem install passenger

passenger集成进Apache

执行命令passenger-install-apache2-module,进入安装程序。

abbuggy@abbuggy-ubuntu:~$ passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v3.0.18.This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.Here's what you can expect from the installation process:1. The Apache 2 module will be installed for you.2. You'll learn how to configure Apache.3. You'll learn how to deploy a Ruby on Rails application.Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.Press Enter to continue, or Ctrl-C to abort.

回车确定之后,会进行依赖关系的检查,有部分内容不通过没有关系,回车之后会提示如何解决。

Checking for required software...* GNU C++ compiler... found at /usr/bin/g++* Curl development headers with SSL support... found* OpenSSL development headers... found* Zlib development headers... found* Ruby development headers... found* OpenSSL support for Ruby... found* RubyGems... found* Rake... found at /home/abbuggy/.rvm/wrappers/ruby-1.9.2-p320/rake* rack... found* Apache 2... found at /usr/sbin/apache2* Apache 2 development headers... not found* Apache Portable Runtime (APR) development headers... not found* Apache Portable Runtime Utility (APU) development headers... not foundSome required software is not installed.
But don't worry, this installer will tell you how to install them.Press Enter to continue, or Ctrl-C to abort.

按照提示将缺少的依赖包,比如我缺少apache2-perfork-dev,libapr1-dev,libaprutil1-dev这三个包。

--------------------------------------------Installation instructions for required software* To install Apache 2 development headers:Please run apt-get install apache2-prefork-dev as root.* To install Apache Portable Runtime (APR) development headers:Please run apt-get install libapr1-dev as root.* To install Apache Portable Runtime Utility (APU) development headers:Please run apt-get install libaprutil1-dev as root.

程序也给出了解决方法。虽然是分别给出的,但我们可以一并执行。你的环境可能和我不一样,按照上面的提示来九成。

abbuggy@abbuggy-ubuntu:~$ sudo apt-get install apache2-prefork-dev libapr1-dev libaprutil1-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列【新】软件包将被安装:apache2-prefork-dev libapr1-dev libaprutil1-dev
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 0 B/1,718 kB 的软件包。
解压缩后会消耗掉 11.3 MB 的额外空间。
Selecting previously unselected package libapr1-dev.
(正在读取数据库 ... 系统当前共安装有 230693 个文件和目录。)
正在解压缩 libapr1-dev (从 .../libapr1-dev_1.4.6-1_i386.deb) ...
Selecting previously unselected package libaprutil1-dev.
正在解压缩 libaprutil1-dev (从 .../libaprutil1-dev_1.3.12+dfsg-3_i386.deb) ...
Selecting previously unselected package apache2-prefork-dev.
正在解压缩 apache2-prefork-dev (从 .../apache2-prefork-dev_2.2.22-1ubuntu1.2_i386.deb) ...
正在处理用于 man-db 的触发器...
正在设置 libapr1-dev (1.4.6-1) ...
正在设置 libaprutil1-dev (1.3.12+dfsg-3) ...
正在设置 apache2-prefork-dev (2.2.22-1ubuntu1.2) ...

再次执行passenger-install-apache2-module安装,编译完毕之后,给出了成功提示。还要求将以下内容放到apache的配置文件中。

The Apache 2 module was successfully installed.Please edit your Apache configuration file, and add these lines:LoadModule passenger_module /home/abbuggy/.rvm/gems/ruby-1.9.2-p320/gems/passenger-3.0.18/ext/apache2/mod_passenger.soPassengerRoot /home/abbuggy/.rvm/gems/ruby-1.9.2-p320/gems/passenger-3.0.18PassengerRuby /home/abbuggy/.rvm/wrappers/ruby-1.9.2-p320/rubyAfter you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!Press ENTER to continue.

apache的配置文件位于/etc/apache2/httpd.conf,编辑并添加之。到目前为止,httpd.conf是这样的。

LoadModule passenger_module /home/abbuggy/.rvm/gems/ruby-1.9.2-p320/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /home/abbuggy/.rvm/gems/ruby-1.9.2-p320/gems/passenger-3.0.18
PassengerRuby /home/abbuggy/.rvm/wrappers/ruby-1.9.2-p320/ruby

部署Rails应用

我想通过类似于“localhost/simple-cms”的地址访问我的例子站点,后续更多的站点都可以按照形如

localhost/site1

localhost/site2

的格式。

首先得配置一个基准目录也就是apache的根目录。

向httpd.conf中添加如下的配置,将/var/www设置为web的根目录,回头要往这个目录中放置各个站点。

<VirtualHost *:80>ServerName localhostDocumentRoot /var/www<Directory /var/www>Allow from all</Directory>
</VirtualHost>

接下来把一个具体的站点挂在web根目录下面,比如这个simple-cms。还是向/etc/apache2/httpd.conf配置,后面的四行是新加的。/simple-cms是相对于上面localhost的访问地址

   <VirtualHost *:80>ServerName localhostDocumentRoot /var/www<Directory /var/www>Allow from all</Directory>RailsBaseURI /simple-cms<Directory /var/www/simple_cms>Options -MultiViews</Directory></VirtualHost>

/var/www/test_site是一个软连接,指向开发环境中的public目录。

sudo ln -s /home/abbuggy/workspace/simple_cms/public  /var/www/simple-cms

不过我自己配置的时候,死活配不对,总是提示"We're sorry,but something went wrong!"临近崩溃边缘时终于找到解决方案。”The defaultRAILS_ENV environment in which deployed Rails applicationsare run, is “production”. You can change this by changing theRailsEnv configuration option.“ --来自于Phusion Passenger users guide

即缺省生效的是production环境,如果在调试时使用development环境的话需要在apache配置文件中增加一行RailsEnv development,所以正确的配置是。

   <VirtualHost *:80>ServerName localhostDocumentRoot /var/www<Directory /var/www>Allow from all</Directory>RailsBaseURI /simple-cmsRailsEnv development<Directory /var/www/simple_cms>Options -MultiViews</Directory></VirtualHost>

重启apache,sudo service apache2 restart,访问localhost/simple-cms成功。

apache服务器安装以及使用passenger插件部署rails应用,基于ubuntu 12.04 LTS相关推荐

  1. OpenStack Mitaka for Ubuntu 16.04 LTS 部署指南

    [声明] 欢迎转载,转载本文请注明作者和出处 https://www.zybuluo.com/ncepuwanghui/note/389373 http://blog.csdn.net/ncepuwa ...

  2. Ubuntu 12.04 64bit上安装Apache Traffic Server 4.1.2

    说明: 对于企业级服务器来说,一般是使用Redhat或是CentOS上来跑Apache traffic server作为代理缓存服务器, 一般使用Ubuntu的机会很少,我这里探讨安装在Ubuntu ...

  3. 服务器显示521,apache 在 ubuntu 18.04 LTS 设定多个网域连同一服务器,使用 Cloudflare 出现 521 错误?...

    第一次遇到这个问题,还是我少做了什么⋯⋯?虽然离上次类似操作应该有半年了,不至于忘记什么呀 ubuntu 18.04 LTS apache 2.4.29 我的DNS在 Cloudflare ,首先去域 ...

  4. ubuntu 12.04下搭建web服务器(MySQL+PHP+Apache) 教程

    最近,经理让我搭建一个服务器,我从网上找了一篇比较好的教程,按教程一步步执行感觉挺顺利,所以准备整理一下这个教程.尊重原版注明出处:http://news.2ky.cn/Linux/ubuntu-12 ...

  5. linux源码下载阿帕奇,Ubuntu 12.04下源码安装Apache

    环境:Ubuntu 12.04 [简单安装] 一般第一次安装Apache都较为顺利. 1. 下载并解压 root@ubuntu:/home/qy/share#tar zxvf httpd-2.2.22 ...

  6. Ubuntu 12.04下搭建Web服务器 (MySQL+PHP+Apache)(转)

    看了网上很多关于用linux操作系统搭建网站服务器的教程,于是我自己也测试了很多,但今天所测试的 Ubuntu 12.04下搭建Web网站服务器 (MySQL+PHP+Apache环境),感觉这个适合 ...

  7. Ubuntu 12.04 eclipse 安装 svn插件

    为什么80%的码农都做不了架构师?>>>    在Ubuntu 12.04 下, eclipse 安装 svn插件一般会遇到两个问题: 1)Failed to load JavaHL ...

  8. Ubuntu 12.04 安装 banshee 和豆瓣插件

    一.安装Banshee播放器 Ubuntu 12.04 自带的是Rhythmbox播放器,在安装banshee-doubanfm之前,需先安装Banshee 播放器.打开终端,输入以下命令安装即可. ...

  9. Ubuntu 16.04 LTS版本部署Virtualmin

    时间:2022-06-27 部署环境:Ubuntu 16.04 LTS版本  IP:192.168.3.153 我尝试过再Centos8上部署,但安装过程会因为找不到依赖软件而报错,修改过几次yun源 ...

最新文章

  1. sublime text常用快捷键
  2. LeetCode 460. LFU缓存(哈希双链表)
  3. nodejs轻量服务器后端
  4. debian查询端口进程_Linux查看端口、进程情况及kill进程
  5. 判断字符串是否为null、是否为空
  6. Newton's Dark Secrets《牛顿探索》
  7. python 空数组_Python笔记
  8. 学而思python分几个level_学而思新概念英语课程体系表
  9. 流量高峰时期的性能瓶颈有哪些、以及如何来解决
  10. 面试复盘系列:从象棋提升之道趣说面试提升之法
  11. 一起学JAVA线程-JAVA Thread的基础
  12. go 怎么等待所有的协程完成_优雅地等待子协程执行完毕
  13. Cesium Primitives加载大量图标点
  14. 记一次cnpm install的各种报错深刻记忆
  15. 安卓APP源码和设计报告——仿淘宝水果商城
  16. 瞎姬霸写之畅想互联网
  17. html form表单提交
  18. 使用stm32c8t6和mpu6050制作一台穿越机
  19. win10 bat执行cmd命令
  20. 监控系统中的服务器,监控系统中服务器的作用

热门文章

  1. 关于币圈炒币 你必须要知道的风险
  2. (matlab代码分享,可运行) 多技能员工排班调度多目标优化(技能熟练度包含学习型、遗忘型)(Part 1)
  3. Android 鼠标样式修改
  4. 简单的Dos命令/一行代码实现恶意程序
  5. 用c语言实现cyk算法,从CYK算法(自然语言处理)生成解析树的步骤
  6. 干货,分享!09-基于layui后台html模板!!!
  7. edge等浏览器打开开发者工具(F12)之后在NetWork看不到请求头等信息
  8. ARM指令寻址方式及RealView MDK开发环境ARM汇编程序实践
  9. java php python校园通知事项打卡 微信小程序系统
  10. 分库分表实战(第1期):一叶知秋 —— 图览分库分表外卖订单项目