タグ別アーカイブ: 構築手順

DTI VPS 初期設定

はじめに

 DTI VPS の初期設定では、root アカウントにパスワードでリモートログインできるため、下記 3 点をセキュリティ対策として実施したいと思います。

  • リモートログインができる作業用の一般ユーザーを作成して、パスワードではなく SSH Key を使ったログインにする
  • root でのリモートログインを禁止する
  • SSHサーバーのポート番号を変更する
続きを読む

Python venv 環境構築

はじめに

 Python でプログラムを作成するとき、あるいはデプロイするとき、プロジェクトに応じて都度外部のパッケージを使用する事が多いと思います。また、1つのホストに複数のプロジェクトをデプロイすることもよくあると思います。ホスト共通の領域に追加のパッケージをインストールしてしまうと、すべてのプロジェクトで同じバージョンのものを使う必要が出てきます。
 このとき問題になるのが、使用したいパッケージのバージョンがプロジェクト毎に異なる場合です。こういうときはプログラム毎に個別のバーチャル環境 venv を用意して、他のプロジェクトとは独立した環境を構築して対応できます。
 今回、デフォルトでインストールされている Python に影響を与えずに、Python 2.7 と Python 3.5、Python3.6 の環境を構築する手順を紹介します。この手順は CentOS5~CentOS7、AmazonLinux 、Ubuntu14.04LTS(Desktop) に適用できます。

2016/09/08 時点の状況
OSデフォルトの Python のバージョン
CentOS52.4.3
CentOS62.6.6
CentOS72.7.5
AmazonLinux(2016.03)2.7.11
Ubuntu14.04LTS(Desktop)2.7.6
Ubuntu16.04LTS(Desktop)2.7.12
続きを読む

CentOS7 に Nginx をインストールする

はじめに

 Nginx は Web サーバーです。他の有名な Web サーバーに Apache がありますが、違いはプロセス(あるいはワーカー) ベースの処理か、イベントベースの処理か、になります。Nginx はイベントベースの Web サーバーで、同時リクエストの処理を得意とします。一方で、レスポンスまでに時間がかかるような、サーバーサイドで実行するプログラムのハンドリングは苦手です。このようなスクリプトは、FastCGI プロセスや uWSGI プロセスに中継して実行してもらうようにすることで、Nginx がボトルネックにならないように構成する必要があります。Nginx に uWSGI を連携させる手順についてはこちらの投稿を参照してください。
 今回、Nginx を CentOS7 にインストールする手順と、PHP スクリプトを FastCGI で実行できるようにする PHP FPM のインストール手順を紹介します。

続きを読む

MongoDB サーバーを CentOS7 にインストールする

はじめに

 MongoDB は NoSQL タイプ(ドキュメントベース)のデータベースシステムです。
 SQL タイプ(テーブルベース)のデータベースとの大きな違いは、格納する項目を事前に定義する必要がないため柔軟な拡張ができる点と、複雑な階層をもったデータでもインデックスを作成できるためデータ構造に悩む事が少なくなる点でしょうか。もっとも、無計画に設計するとレスポンスが遅くなったり、消費するリソースが増えたりするでしょう。
 今回、MongoDB3.0 を yum コマンドを使って CentOS7 にインストールする手順を紹介します。

続きを読む

CentOS7 に EPEL リポジトリをインストールする

はじめに

 EPEL リポジトリは Redhat 系 Linux にインストールできる、標準リポジトリにはない便利なパッケージを取り扱っています。  ソースからビルドする手間が不要になり、環境構築なのでよくお世話になっています。CentOS を扱う際はぜひ使ってみてください。

続きを読む

SSL 証明書の作成とインストール

はじめに

 SSL 証明書は SSL 証明書発行機関によって、対象のドメインが実際にどの組織によって運営されているかを保障するための証明書です。今回、SSL 証明書の申請からインストールまでの手順を紹介します。
 組織の実体証明の厳密さにより、SSL 証明書のグレードが設けられています。呼び方、認証方法は SSL 証明書発行機関により差がありますが、大まかには次の 3 グレードがあるようです。

  • Class1 … ドメインの所有者をオンラインにより確認。
      ドメイン名宛のメールアドレスなど、例えば postmaster@example.com 宛に届く確認メールで運営者を確認できれば認証 OK となります。
  • Class2 … ドメインの所有者を電話により確認。
      ドメイン名宛のメールアドレスに加えて、運営者の電話番号宛の電話などで運営者を確認できれば認証 OK となります。
  • Class EV … ドメインの所有者を書類により確認。
      ドメイン名宛のメールアドレス、運営者の電話番号宛の電話に加えて、書類の送付などにより運営者を確認できれば認証 OK となります。

 どのグレードの SSL 証明書でも、サーバーへのインストール手順は同じです。
 CentOS の場合、次のようなディレクトリ・ファイル構成で管理するとよいでしょう。この構成は SSL 証明書の他に、中間証明書を 2 つ必要とする 4 層構成の SSL 証明書をインストールする場合の構成です。

 なお、SSL 証明書関連のファイルがいくつか出てきますが、すべて PEM 形式とよばれるテキスト文字列のファイルです。本投稿ではファイルの役割を拡張子に付ける事で、わかりやすくなるようにしています。また、年度の更新がしやすいよう、ファイルの末尾には有効期限日を付けておきます。ただし、本番用にリリースするときは、サーバーの設定ファイルを編集しなくて済むよう、有効期限日は削除します。日付付きのファイルで一式を準備してから、日付なしのファイルにコピーして本番環境に適用する、という流れを想定しています。

(作業用ユーザーエリア)
~/tls/
  certs/                     ← 外部に公開するファイルを格納するディレクトリ
    example.com.crt.20160519 ← SSL 証明書
    example.com.ca.20160519  ← 中間証明書(3層目、2層目、の順で結合したもの)
  private/                   ← 外部に公開してはいけない/公開する必要がないファイルを格納するディレクトリ
    example.com.ca2.20160519 ← 中間証明書(2層目、クロスルート証明書と呼ばれることがある)
    example.com.ca3.20160519 ← 中間証明書(3層目)
    example.com.csr.20160519 ← CSR
    example.com.key.20160519 ← 秘密鍵

(本番用グローバルエリア)
/etc/pki/tls/
  certs/                     ← 外部へ公開するファイルを格納するディレクトリ
    example.com.crt          ← SSL 証明書
    example.com.ca           ← 中間証明書(3層目、2層目、の順で結合したもの)
  private/                   ← 秘密鍵を格納するディレクトリ
    example.com.key          ← 秘密鍵

 大まかな流れは次のとおりです。

  • SSL 証明書の申請
  • SSL 証明書の受領
  • SSL 証明書のインストール
続きを読む

CentOS6 の libstdc++ を更新する

はじめに

 CentOS6 で比較的新しいソフトウェアを実行しようとすると、

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by <new software>)

のようなエラーが発生する事があります。
 これは CentOS6 にインストールされているライブラリが古く、ソフトウェアが要求するバージョンと合わないためです。
 今回、libstdc++ ライブラリを例にとって、CentOS6 に新しいバージョンのライブラリをインストールする方法を紹介します。

続きを読む

CentOS6 上で karma + Jasmine + Chrome を使った JavaScript のテスト監視システムを作る

はじめに

 AngularJS や React.js といったクライアントサイド JS フレームワークや、Node.js のようなサーバーサイド JS フレームワークを使ったプロジェクトに対して、karma + Jasmine + Chrome でテストできるような環境が欲しくなりましたので、今回構築してみました。
 構築する OS は CentOS6 で、Chrome を起動する必要があるため、Gnomeデスクトップ環境で構成します。

 大まかな構築手順は下記のとおりです。

  • 構築手順
    • node.js と npm のインストール
    • Chrome のインストール
    • karma と Jasmine のインストール
  • 動作確認
    • サンプルプロジェクトの準備
    • テスト設定生成
    • テスト実行
続きを読む

CentOS6 に Chrome をインストールする

はじめに

 CentOS6 でデフォルトのブラウザーは Firefox だと思いますが、Chrome にしたい場合があります。Chrome は CentOS6 に正式に対応したものがありませんが、サードパーティーのインストーラーがあります。

続きを読む

CentOS6 に Node.js と npm をインストールする

はじめに

 EPEL リポジトリから yum コマンドで nodejs と npm をインストールします。
 EPEL リポジトリ の設定が済んでいない場合は、EPEL リポジトリのインストール手順 を参照してください。

続きを読む