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; ...
随机推荐
- 批判性思维——Asking The Right Questions
我们生活在一个纷繁复杂的数字世界中,每天都在信息海洋中遨游.如果不想被其淹没,继而成为别人思想的傀儡,就有必要对你接受的信息进行批判.筛选,自己决定该相信什么不该相信什么,进而形成自己的观点,而不是一 ...
- php7.0.12 laravel 链接sqlserver数据库
https://www.microsoft.com/en-us/download/details.aspx?id=20098 下载最后一个,然后这个工具可以将dll扩展下载下来,选择一个空白的文件夹就 ...
- 画布清理////////////////////////////zzzz
HTML5画布清理,重绘,旧的线条也会出现 <!DOCTYPE html> <html> <head> <title>HTLM5</title&g ...
- jquery jQuery-File-Upload 例子
网上jquery-file-upload的例子 都过于简单,在项目中这个插件经常使用,写个例子供参考. 下面介绍 用插件实现图片异步上传的代码. 1 比要的js一个都不能少,他们之间是有依赖关系的 ...
- mysql 常用语句模板
插入INSERT IGNORE INTO test (`f1`, `f2`, `f3`) VALUES (v1,v2,v3); 更新update test set f1=v1,f2=v2 where ...
- 夺命雷公狗-----React---21--小案例之心情留言板
这个功能如果是用传统型的jquery来写都要花费很多时间才可以完成的案例, 亲测jquery配合bootstrap来写和bootstrap配合react.js来写,不知不觉中有点震惊... jquer ...
- Mysql数据库的使用总结之ERROR 1146 (42S02)
在使用mysql数据库过程中,遇到了错误ERROR 1146 (42S02):Table doesn't exist,经过了两天,终于解决了这个问题.引起该错误的原因不同,对应的解决方法也不同.这里只 ...
- Magento-找出没有图片的产品
最近维护网站,发现网站的产品很多都没有图片显示,看了一下是因为没有在后台勾选图片,就是 image small_image thumbnail 这三项,就算有图片如果没有勾选的话也不会显示出来,产品 ...
- android 布局学习
各种layout用到的一些重要属性 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertic ...
- HttpHander与httpModel配置与应用
ASP.NET对请求处理的过程: 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll, ...