文档章节

Nginx + Passenger部署rails

quanpower
 quanpower
发布于 2014/08/23 23:12
字数 944
阅读 87
收藏 0

Nginx + Passenger

Nginx則是另一套在Rails世界上還蠻常被使用的第二選擇,相較於Apache雖然功能較少,但運作效率更為良好。要讓Nginx裝上Passgener不需要先裝Nginx,只需要執行以下指令:

$ sudo gem install passenger
$ sudo passenger-install-nginx-module

依赖PCRE

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gz
三部曲:
./configure

make

sudo make install


报错:

error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or

ubuntu@ip-172-31-25-125:/usr/local/lib$ ln -s libpcre.so.1 /lib/libpcre.so.1

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:


tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory


原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.

另外一个原因就是已经安装了该共享库, 但 执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.

所以安装共享库后要注意共享库路径设置问题, 如下:

1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令

ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.

2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

3) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下,  但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.

LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:

export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH   


一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.

4)如果程序需要的库文件比系统目前存在的村文件版本低,可以做一个链接
比如:
error while loading shared libraries: libncurses.so.4: cannot open shared
object file: No such file or directory

ls /usr/lib/libncu*
/usr/lib/libncurses.a   /usr/lib/libncurses.so.5
/usr/lib/libncurses.so  /usr/lib/libncurses.so.5.3

可见虽然没有libncurses.so.4,但有libncurses.so.5,是可以向下兼容的
建一个链接就好了
ln -s  /usr/lib/libncurses.so.5.3  /usr/lib/libncurses.so.4


這是因為Passenger必須與Nginx一起編譯的關係,所以Passenger的安裝指令就包括了安裝Nginx。安裝完成之後,編輯/opt/nginx/conf/nginx.conf這個設定,將server那段改寫成如下:

http {
    passenger_root /home/ubuntu/.rvm/gems/ruby-2.1.1/gems/passenger-4.0.49;
    passenger_ruby /home/ubuntu/.rvm/gems/ruby-2.1.1/wrappers/ruby;

server {
    listen       80;
    server_name  www.yourhost.com;
    root /somewhere/public;
    passenger_enabled on;
}

© 著作权归作者所有

quanpower
粉丝 65
博文 166
码字总数 104911
作品 0
嘉定
CTO(技术副总裁)
私信 提问
Mac 下用 Nginx + Passenger 部署 Rails 的运行环境。

系统需求 Mac OSX Lion 步骤0 安装环境依赖 安装Xcode 4.1,Xcode4.2以及更高的版本在 Lion 仍然存在一些兼容性问题,强烈建议使用XCode 4.1,下载地址: https://developer.apple.com/down...

孔俊
2013/07/09
232
0
在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用

前言 本教程只适合 Ubuntu Server 用于部署项目到线上,建议使用同样的 Ubuntu 版本,以免遇到一些版本不同带来的问题。 本教程适合新手初次部署 Rails 应用; 本文测试通过环境 Ubuntu 12....

zzc3516
2013/11/01
127
0
Phusion Passenger 2.2.9 发布

mod_rails,又名Phusion Passenger,是一个旨在从Apache和Nginx网页服务器上更便捷的部署Ruby on Rails项目的Apache模块和Nginx扩展。 此版本主要是提供对Bug的修复以及性能的提升,对Rails...

红薯
2010/01/18
327
0
Rails 支持模块--Phusion Passenger

Phusion Passenger,原名 mod_rails ,是一个旨在从Apache和Nginx网页服务器上更便捷的部署Ruby on Rails项目的Apache模块。 该项目的创始人如此介绍这个东西: Phusion是我们公司的名字,然...

匿名
2009/01/27
4.4K
1
Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails

本教程将会涉及以下工具: Ubuntu 14.04 LTS RVM Ruby 2.1.1 Rails 4.0.3 Passenger 4.0+ Nginx(由 Passenger 编译) 推荐通过 Vagrant 搭建虚拟机环境进行练习。 创建帐号 假设你已经用 ro...

小自在
2014/07/17
3.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

以GPS为例,深入浅出讲解射频接收路径的匹配调试流程

RF接收路径的匹配流程----以GPS为例 调Matching前,至少准备两块板子。 一块完整PCB,有上全部零件 : 一块裸版,完全都没上零件 : 匹配前注意事项—铜管 可能很多人忽略这点,但其实这才是...

demyar
28分钟前
11
0
TI AM570x浮点DSP C66x + ARM Cortex-A15开发板的LCD触摸屏接口、LED指示灯

TL570x-EVM是一款由创龙基于SOM-TL570x核心板设计的开发板,它为用户提供了SOM-TL570x核心板的测试平台,用于快速评估SOM-TL570x核心板的整体性能。 TL570x-EVM底板采用沉金无铅工艺的4层板设...

Tronlong创龙
28分钟前
8
0
docker部署springboot项目

前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfile文件 首先在xshell中连接服务器,然后再创建docker_test,在docker_test下创建jar...

故久呵呵
33分钟前
6
0
MaxCompute问答整理之10月

本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、DataStudio中是否可以通过shell节点调取MaxCompute sql语句? 不...

一肥仔
34分钟前
7
0
GMAT阅读高速解题6招秘籍分享

在做GMAT阅读题时,你是否曾因为文章内容无聊昏昏欲睡?是否看到第二段就神游不知所云?又是否看完问题选择觉得似乎每个都是正确答案?如果上面这些情况曾经发生在你身上,那么你的阅读方式和心...

bole6
35分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部