タグ : サーバー

Node.jsでSSL通信(iOS8, iOS9のサファリでは注意)


Node.jsでSSL通信させる書き方

var https = require('https');
var fs = require('fs');
var options = {
    key: fs.readFileSync('キーのファイルパス'),
    cert: fs.readFileSync('証明書のファイルパス'),
    ca: fs.readFileSync('中間証明書のファイルパス')
};
https.createServer(options, function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(1337, "0.0.0.0");

ここで重要なのが中間証明書(ca)の設定で、
以前はこのcaの設定が無くても動いてたのに、
iOS8以降のサファリでは動かない場合あり。
特にsquidなどのプロキシ経由など。

Amazon LinuxにRuby2.0とRails4.0をインストール


AWS EC2(Amazon Linux)にRuby2.0とRails4.0をインストール

環境

AWS EC2
OS: Amazon Linux (2013.09-release)
Ruby: 2.0.0p247
Rails: 4.0.0

手順

  1. 必要なパッケージのインストール
    sudo yum -y install gcc
    sudo yum -y install gcc-c++
    sudo yum -y install zlib-devel
    sudo yum -y install httpd-devel
    sudo yum -y install curl-devel
    sudo yum -y install sqlite-devel
  2. ruby2.0.0のインストール
    mkdir src
    cd src
    wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
    tar xzf  ruby-2.0.0-p247.tar.gz
    cd ruby-2.0.0-p247
    ./configure
    make
    make test
    sudo su -
    cd /home/user/src/
    make install
  3. OpenSSLモジュールのインストール
    cd ext/openssl
    ./configure
    make
    make install
  4. railsインストール
    gem install bundler
    gem install rdoc
    gem install rails
    rails -v
  5. sqlliteインストール
    gem install sqlite3
  6. Unicornインストール
    gem install unicorn
  7. nginxインストール
    sudo yum -y install nginx
    sudo /etc/init.d/nginx start
  8. nginx設定編集中

Mac上にMySQL・Railsな環境を作る


MacにMySQLをローカルインストールしRailsで使えるようにする

環境

MySQL 5.6.10 x86_64
Mac: OS X 10.8.3(Mountain Lion)
XCode: 4.6.2 →コマンドラインツールの為
Ruby: 1.9.3-p429
Rails: 3.2.13
rbenv: 0.4.0
ruby-build: 20130518
Homebrew: 0.9.4

RubyやRailsの環境構築については「Mac(Mountain Lion)にRubyとRailsをインストール」を参照

手順

  1. MySQLのダウンロード&インストール
    brew install mysql
  2. MySQLの起動
    mysql.server start
  3. MySQLにログインしテスト用データベース構築
    sudo mysql
    CREATE DATABASE test_db;
    CREATE USER test_user@localhost IDENTIFIED BY 'test_pass';
    GRANT ALL PRIVILEGES ON test_db.* TO test_user;
  4. Railsアプリ枠組みの生成(好きなディレクトリ上で)
    rails new test1 -d mysql
  5. Railsアプリのデータベース設定
    development:
      adapter: mysql2
      encoding: utf8
      reconnect: false
      database: test_db
      pool: 5
      username: test_user
      password: test_pass
      host: localhost
    
    test:
      # 省略
    production:
      # 省略
    
  6. テーブルに対応したモデルの作成とマイグレーション
    rails generate model TestTable title:string
    rake db:migrate
  7. 初期データをインサートするためにseeds.rbを編集
    # encoding: utf-8
    TestTable.create(title: 'タイトル01')
    TestTable.create(title: 'タイトル02')
    
  8. rakeコマンドで初期データの投入
    rake db:seed
  9. 初期データを表示させるコントローラの作成と記述
    rails generate controller Test
    class TestController < ApplicationController
      def list
        @test_tables = TestTable.all
      end
    end
    
  10. 初期データを表示するビューの作成と記述
    <% @test_tables.each do |test_table| %>
    タイトル: <%= test_table.title %><br />
    <% end %>
  11. ルーティング(URLとコントローラの紐付け)の設定
    match 'list' => 'test#list'
    
  12. Railsサーバの起動
    rails server
  13. ブラウザで下記URLへアクセス
    http://localhost:3000/list