apache服务器安装以及使用passenger插件部署rails应用
小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache。
安装apache服务器
命令是sudo apt-get install apache2
安装passenger插件
安装完毕还不能立刻用,因为想运行rails应用的话,还要为apache服务器安装插件passenger。
passenger是一个gem包,安装命令是gem install passenger
passenger集成进Apache
执行命令passenger-install-apache2-module,进入安装程序。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
abbuggy@abbuggy-ubuntu:~$ passenger-install-apache2-moduleWelcome to the Phusion Passenger Apache 2 module installer, v3.0.18.This installer will guide you through the entire installation process. Itshouldn'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 tosolve any problems.Press Enter to continue, or Ctrl-C to abort. |
回车确定之后,会进行依赖关系的检查,有部分内容不通过没有关系,回车之后会提示如何解决。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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这三个包。
|
1
2
3
4
5
6
7
8
9
10
11
12
|
--------------------------------------------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. |
程序也给出了解决方法。虽然是分别给出的,但我们可以一并执行。你的环境可能和我不一样,按照上面的提示来九成。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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的配置文件中。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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.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/rubyAfter you restart Apache, you are ready to deploy any number of Ruby on Railsapplications on Apache, without any further Ruby on Rails-specificconfiguration!Press ENTER to continue. |
apache的配置文件位于/etc/apache2/httpd.conf,编辑并添加之。到目前为止,httpd.conf是这样的。
|
1
2
3
|
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/ruby |
部署Rails应用
我想通过类似于“localhost/simple-cms”的地址访问我的例子站点,后续更多的站点都可以按照形如
localhost/site1
localhost/site2
的格式。
首先得配置一个基准目录也就是apache的根目录。
向httpd.conf中添加如下的配置,将/var/www设置为web的根目录,回头要往这个目录中放置各个站点。
|
1
2
3
4
5
6
7
|
<VirtualHost *:80> ServerName localhost DocumentRoot /var/www <Directory /var/www> Allow from all </Directory></VirtualHost> |
接下来把一个具体的站点挂在web根目录下面,比如这个simple-cms。还是向/etc/apache2/httpd.conf配置,后面的四行是新加的。/simple-cms是相对于上面localhost的访问地址
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<VirtualHost *:80> ServerName localhost DocumentRoot /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目录。
|
1
|
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,所以正确的配置是。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<VirtualHost *:80> ServerName localhost DocumentRoot /var/www <Directory /var/www> Allow from all </Directory> RailsBaseURI /simple-cms RailsEnv development <Directory /var/www/simple_cms> Options -MultiViews </Directory></VirtualHost> |
重启apache,sudo service apache2 restart,访问localhost/simple-cms成功。
apache服务器安装以及使用passenger插件部署rails应用的更多相关文章
- 使用Apache Tomcat Maven插件部署运行 Web 项目
什么是Apache Tomcat Maven Plugin? Maven Plugin 是Apache Tomcat 提供的一个Maven插件,它可以在你没有tomcat容器时将任何一个war项目文件 ...
- eclipse maven项目中使用tomcat插件部署项目
maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口 ...
- centos6 vps部署rails
centos 6 vps初始化部署rails应用1 ssh登录 vpsssh -p port root@server_ip_address 2 添加用户 adduser usernamepasswd ...
- Apache服务器安装SSL证书
Apache服务器安装SSL证书 在证书控制台下载Apache版本证书,下载到本地的是一个压缩文件,解压后里面包含_public.crt文件是证书文件,_chain.crt是证书链(中间证书)文件,. ...
- PassengerNginxdebian快速部署Rails
Passenger/Nginx/Debian快速部署Rails PassengerNginxdebian快速部署Rails 安装所需的linux包 sudo apt-get install ...
- Apache服务器安装配置
Apache服务器安装 1.Apache服务器安装 在Linux系统下,apache服务器的安装方式比较灵活,可以使用二进制包安装,比如:rpm包.deb包.已编译好的包.也可以简单的使用y ...
- 使用rsync+inotify+apache做分布式图片服务器的部署方法
图片服务器一般是做成分布式的,但要使得所有的图片服务器的文件一致,可以由一个主服务器将文件推送到各个备份服务器上. rsync:文件差异检查及文件推送 inotify:事件触发,实时检测到添加.删除. ...
- zz将 VSTO 插件部署给所有用户
原文:zz将 VSTO 插件部署给所有用户 注:本文原作者 Misha Shneerson 是 VSTO 团队的工程师.原文可以在下列地址找到:http://blogs.msdn.com/mshnee ...
- 插件部署【BE、BP、UI】
1.BE插件部署 XML部署位置:D:\yonyou\U9V50\Portal\bin: DLL部署位置:D:\yonyou\U9V50\Portal\ApplicationServer\Libs; ...
随机推荐
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- 第十二章Fundamental Data Types 基本数据类型
目录: 12.1 数值概论 12.2整数 12.3浮点数 12.4 字符和字符串 12.5布尔变量 12.6枚举类型 12.7具名常量 12.8数组 12.9创建你自己的类型 12.1 数值概论 ...
- zjuoj 3780 Paint the Grid Again
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780 Paint the Grid Again Time Limit: 2 ...
- 基础编程-java之股神
买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推. 为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算 ...
- vnc服务的安装与配置
1. 安装必要的软件包 系统为CentOS 6.0,为最小化安装. a. 安装vncserver服务端和客户端端 yum install tigervnc tigervnc-server -y b. ...
- C++预定义字符函数
利用 get 成员函数可读取文件中的一切字符,包括空白字符.文件结尾.用 >> 读取文件,会自动忽略空白字符(空格.换行符.制表符) C++ 预定义的字符函数(均在 cctype 库中定义 ...
- 安装Mysq方法
前言: 此方法只能借鉴,如果网友安装失败,后果自负. 借鉴的书籍<跟老男孩学Linux运维 Web集群实战> 文章所使用的Mysql:https://yunpan.cn/Oc6RkgKRF ...
- CEGUI0.8.4引入到自己工程中
首先要确定你的CEGUI已经完全编译好,若未进行这一步请参照http://www.cnblogs.com/wenguang1996/p/5027522.html 打开VS2012新建C++工程,然后添 ...
- XMLPuLL解析
1 package com.bawei.day14_xmlpull; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 i ...
- python 学习(二)--关于类
1.没有权限控制,在类方法或变量前加 "__" 两下划线,则变为"私有"变量(实际通过_<类名>__<变量或方法名> 可以访问) 2.类 ...