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; ...
随机推荐
- 从零开始攻略PHP(7)——面向对象(上)
1.理解面向对象的概念 面向对象软件的一个重要优点是支持和鼓励封装的能力.封装也叫数据隐藏. 在面向对象的软件中,对象是一个被保存数据和操作这些数据的操作方法的唯一.可标识的集合. 对象可以按类进行分 ...
- XML的一些事
XML文件的优缺点: 使用XML作为传输格式的优势: 1. 格式统一, 符合标准 2. 容易与其他系统进行远程交互, 数据共享比较方便 3.调用将 XML 用作传输的现有服务. 4.使用 XSLT 可 ...
- 接口测试(二)—HttpClient
使用HttpClient进行接口测试,所需要使用的相关代码 HttpClient进行接口测试所需jar包:httpclient.jar.httpcore.jar.commons-logging.jar ...
- freemarker配置信息
<!-- <!– freemarker的配置 –> <bean id="freemarkerConfigurer" class="org.spr ...
- 纳尼,java可以在接口中实现非抽象方法了?
纳尼,接口中可以定义实例方法了?! 纳尼,接口中还可以定义静态方法了?! 没错,在Java8中新增了很多新的特性,其中就包括可以在接口中添加方法和变量. 首先我们来看下代码 public interf ...
- Keras学习~试用卷积~跑CIFAR-10
import numpy as np import cPickle import keras as ks from keras.layers import Dense, Activation, Fla ...
- 论文阅读(Zhuoyao Zhong——【aixiv2016】DeepText A Unified Framework for Text Proposal Generation and Text Detection in Natural Images)
Zhuoyao Zhong--[aixiv2016]DeepText A Unified Framework for Text Proposal Generation and Text Detecti ...
- Hdu 5493 合肥网络赛 1010 Queue
在线求第k大,第一次用二分+树状数组写...比赛的时候分治啊,splay啊,主席树啊换来换去,然而以前为什么不知道可以这么写... #include <iostream> #include ...
- Fuel UX wizard example
<!DOCTYPE html> <html class="no-js fuelux"> <head> <meta charset=&quo ...
- centos7下搭建nginx+php7.1+mariadb+memcached+redis
一.环境准备 1.首先介绍一下环境,以及我们今天的主角们 我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是 ...