部署/配置 Rails+Nginx+Passenger

15 篇文章 0 订阅
9 篇文章 0 订阅

Install ruby on rails on CentOS


不用apache,让我们换nginx玩玩;由于passenger的nginx模块安装的时候需要重新编译nginx,所以 pacman -S nginx 似乎是没有意义的,我们这里先skip掉,先安装passenger,然后在编译安装passenger的nginx模块的时候把nginx一并搞定。

安装passenger:

$ gem install passenger

安装passenger的nginx模块,同时安装nginx,默认的nginx安装地址是/opt/nginx(可以修改到不需要root的地址),需要root,我们可以用rvmsudo搞定:

$ cd ~/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11/bin
$ rvmsudo passenger-install-nginx-module

again,友好至极,装完连配置文件都帮你改好了,不过检查一下总不会错:

$ grep "passenger" nginx.conf
    passenger_root /home /samson /.rvm /gems /ruby-1.9.2-p180 @rails3 /gems /passenger-3.0.5;
    passenger_ruby /home /samson /.rvm /wrappers /ruby-1.9.2-p180 @rails3 /ruby;

配置一下,来跑一下之前创建的demo project:

server {¬
  listen 80;¬
  server_name demo.local;¬
  root /home/samson/code/demo/public;¬
  passenger_enabled on;¬
  rails_env development;¬
}¬

$ sudo /opt/nginx/sbin/nginx

我取的server name时demo.local,所以在hosts里面加上这条entry后,我们就可以用browser访问 http://demo.local 了.

如果遇到403 forbidden,在nginx.conf里面改下user即可:

user samson users;

reload, welcome aboard!

$ sudo /opt/nginx/sbin/nginx -s reload


[nginx 启动脚本]

cd /etc/init.d

sudo vim nginx

将一下的内容写到这个文件中。

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

#-----------------------------------------
# Source networking configuration.
#. /etc/sysconfig/network

# Check that networking is up.
#[ "$NETWORKING" = "no" ] && exit 0
#-----------------------------------------

nginx="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

sudo chmod +x nginx

Us/etc/init.d/nginx {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Phusion Passenger是一种基于Nginx或Apache的应用服务器,它可以帮助我们快速、稳定地部署Rails应用。下面以Redmine为例,介绍在CentOS下如何使用Phusion Passenger方式部署Rails应用。 1. 安装必要的软件 首先需要安装Ruby、RailsNginxPassenger等软件,可以使用以下命令: ``` sudo yum install epel-release sudo yum install ruby ruby-devel rubygems gcc gcc-c++ make sqlite-devel sudo gem install rails sudo gem install passenger ``` 2. 安装NginxPassenger 使用以下命令安装NginxPassenger: ``` sudo yum install nginx sudo passenger-install-nginx-module ``` 在安装过程中,需要选择“1. Yes: download, compile and install Nginx for me”选项,让Passenger自动编译和安装Nginx。 3. 配置NginxPassenger 默认情况下,Passenger会自动添加Nginx配置文件并启动Nginx服务,但是我们需要手动修改Nginx配置文件。 找到Nginx配置文件,一般是/etc/nginx/nginx.conf,添加以下内容: ``` http { # ... server { listen 80; server_name yourserver.com; root /path/to/your/redmine/public; passenger_enabled on; passenger_ruby /usr/bin/ruby; passenger_app_env production; } } ``` 其中,yourserver.com是你的服务器域名或IP地址,/path/to/your/redmine是你的Redmine应用所在路径。 4. 启动Nginx服务 启动Nginx服务: ``` sudo systemctl start nginx ``` 5. 配置数据库 修改/config/database.yml文件,配置Redmine连接数据库的相关信息。 6. 初始化Redmine 在Redmine目录下运行以下命令初始化数据库: ``` RAILS_ENV=production bundle exec rake db:create RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake redmine:load_default_data ``` 7. 启动Redmine 在Redmine目录下运行以下命令启动Redmine: ``` RAILS_ENV=production bundle exec rails server -e production ``` 现在你就可以在浏览器中输入yourserver.com访问Redmine了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值