美文网首页代码改变世界
ruby on rails + postgresql + ngi

ruby on rails + postgresql + ngi

作者: wytrivail | 来源:发表于2015-03-30 14:30 被阅读0次

    操作系统: linux(centos6.5)

    为什么选择postgresql

    1. postgresql支持全文检索;

    2. 在创建一些数据库对象如索引时,不会加表锁,使得部署和迁移应用更加平滑;

    3. 支持过程化编程语言;

    4. 数据库复制模式灵活,异步复制模式下仍可以对特定操作进行同步复制。

    安装postgresql

    1. 下载源码包:9.4.1

    wget https://ftp.postgresql.org/pub/source/v9.4.1/postgresql-9.4.1.tar.gz

    2.  安装系统依赖:  

    yum install openssl openssl-devel libxml2 libxml2-devel 

    3.  编译安装源码包

    mkdir -p /opt/postgresql

    ./configure --prefix=/opt/postgresql

    make && make install

    4. 添加一个用户专用于操作postgresql并初始化数据库

    useradd postgres

    mkdir -p /home/postgres/data

    /opt/postgresql/bin/initdb -D /home/postgres/data

    5.  启动数据库

    /opt/postgresql/bin/posgres -D /home/postgres/data

    安装ruby on rails

    1. 下载ruby源码包

    wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.1.tar.gz

    2. 安装依赖(可选)

    yum install libyaml libyaml-devel

    3. 编译安装ruby

    mkdir -p /opt/ruby

    ./configure --prefix=/opt/ruby

    make && make install

    4. 安装bundler

    /opt/ruby/bin/gem install bundler

    5. 下载ruby on rails项目

    git clone project_url

    6. 进入项目目录中,修改gemfile,将如下文本加入。

    gem 'pg'

    如果需要使用unicorn,则在gemfile中加入如下文本

    gem 'unicorn'

    然后bundle install安装项目所有依赖

    另外,在安装依赖时需要配置pgconfig的路径,因为我们并没有将postgresql装到系统默认路径下。

    bundle config pg.build -- --with-pg-config=/opt/postgresql/bin/pg_config

    bundle install --path=./vendor

    7. 初始化项目的数据库,首先要创建一个postgresql用户,然后使用这个用户连接并创建数据库。

    /opt/postgresql/bin/createuser -d -P 'username'

    bundle exec rake db:setup RAILS_ENV=production 

    8. 如果是产品环境,则需要编译压缩前端文件,这些文件会被生成在public下。

    bundle exec rake assets:precompile RAILS_ENV=production

    9. 使用unicorn启动server, -D表示unicorn将作为守护进程运行。

    bundle exec unicorn -E production -D 

    nginx

    1. 安装依赖, pcre是一个正则表达式的轻量级函数库,比boost的正则表达式库小得多,pcre的作用在于让nginx支持rewrite功能。

    yum install pcre-devel

    2. 编译安装(编译static_gzip模块)

    mkdir -p /opt/nginx

    ./configure --prefix=/opt/nginx --with-http-gzip-static-module

    make && make install

    3. 配置nginx.conf, 开启gzip,gzip_static; 配置静态文件root路径;按系统核数配置work进程数。以下是部分配置。

    worker_processes  4;

    gzip  on;

    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss application/javascript;

    location ~ ^/(assets)/  {

    root  /opt/virus-backend/manage-backend/public;

    gzip_static on; # to serve pre-gzipped version

    expires max;

    add_header Cache-Control public;

    4. 启动nginx

    /opt/nginx/sbin/nginx

    自此,服务已可访问!

    相关文章

      网友评论

        本文标题:ruby on rails + postgresql + ngi

        本文链接:https://www.haomeiwen.com/subject/qntoxttx.html