「Linux」カテゴリーアーカイブ

OpenShift: ssh で ログイン する方法


OpenShift へ ssh でログインする方法です。

試した環境

  • OS: Ubuntu
  • rhc 1.38.4
  • Openshift Gear: 1 small

事前準備

OpenShift の Webコンソール から、 ssh で使用する鍵を登録しておきます。

ログインする方法

rhc を使う

OpenShift のアプリケーション名を rhc ssh の後につけます。 たとえば OpenShift のドメインが app-domain.rhcloud.com となっているなら rhc ssh app となります。

認証トークンをローカルマシンに保存していない場合、接続時にパスワードを求められます。 認証トークンは rhc setup で作成することができます。

ssh を使う

rhc を経由せずに ssh を使う方法です。

OpenShift の Webコンソール 右下に表示されている ssh コマンド を実行します。 または、 rhc apps を実行すると ssh の欄に AAAAAABBBBBCCCCCCDDDDDD@app-domain.rhcloud.com という文字列が表示されるので、 それを ssh の後につけてコマンドを実行します。

パスワードの入力などは必要ありません。


crontab をコマンドで登録する方法


Rails などで、 setup を自動にしている人は多いと思います。 Rails だと whenever という gem を使って crontab をプログラムから設定してしまうことができるのですが、 メールサーバなど Rails をインストールしていない、 インストールするのも煩わしい環境だとそうはいきません。 そこで本記事では、 shell を使って crontab を設定する方法を紹介します。

続きを読む crontab をコマンドで登録する方法

Passenger と Nginx で Rails を動かす インストール手順


Passenger, Nginx で Rails を動かすこととなりました。 しかし、デフォルトのインストール方法ではレスポンスに不要なヘッダが含まれてしまいますので、これを除去するために モジュールを含めて nginx のコンパイル・インストールを行いました。 以下はその記録です。

環境

  • Ruby 2.2.2
  • Nginx 1.8
  • Passenger 5.0.18
  • EC2 Amazon Linux 2015.03

手順

ruby はインストールされているものとして進めます。

  1. Passenger の インストール
  2. Nginx のインストール
    • Nginx 及び 必要なモジュールのダウンロード
    • コンパイル・インストール
  3. nginx の設定
  4. nginx の再起動 (または起動)

Passenger のインストール

gem install passenger を実行して、 Passenger をインストールします。

Nginx のインストール

ここで root 権限 を使って passenger-install-nginx-module とやれば、 nginx のインストールはできます。 nginx のソースをダウンロードしてコンパイルしてくれます。 しかし、その状態だと レスポンスヘッダに Nginx や Passenger の名前・バージョンが出力されます。

そういったヘッダを出力させないために、 モジュールを含めて Nginx をコンパイルする必要があります。

Nginx 及び 必要なモジュールのダウンロード

まずは Nginx と 必要なモジュールをダウンロードします。

sudo su - で root ユーザ に変更して、 cd /usr/local/src を実行します。

Nginx のダウンロード

Nginx (tar.gz形式) をダウンロードします。 このとき最新の安定版だったのは Nginx 1.8.0 でした。 Nginx の公式ダウンロードページからダウンロードできます。

ダウンロードができたら展開しておきます。

headers-more-nginx-module のダウンロード

シンプルな Nginx と Passenger で運用すると、 ヘッダに Nginx や Passenger のバージョン、 処理時間などが出力されます。 サーバの内側の情報をできるだけ外に出さないようにするために、 Nginx では headers-more-nginx-module というのを使って対処します。

こちらのモジュールは github から最新のバージョン(tar.gz形式)のURLを取得します。

リリース一覧ページ : Releases · openresty/headers-more-nginx-module

ダウンロードができたら展開しておきます。

展開後は、展開前のファイル名をわかりやすいものに変更しておきます。 Tab を使えば、 展開後のディレクトリ名を利用して(ある程度)簡単に入力できます。

コンパイル・インストール

インストールの際には 次のものが必要ですので、 ない場合はあらかじめインストールしておいてください。 なかったとしてもメッセージが表示されますので心配はいりません。

  • C コンパイラ (/usr/bin/cc)
  • C++ コンパイラ (/usr/bin/c++)
  • wget または curl
  • SSL をサポートしている curl の development header
  • Openssl development header
  • Zlib development header
  • rake, rack, ruby development header, rubygems

Nginx を過去に同じ場所に同じようにインストールしていた場合は、古い nginx 実行ファイル が nginx.old という名前になります。

スワップ領域

EC2 micro instance などを使っている場合で、 メモリが十分に無い場合(1GB以下の場合)はスワップ領域が必要になります。 root 権限 で次のコマンドを実行します。

メモリが足りないままインストールを実行した場合でも、インストール中に案内が表示されますので心配はいりませんが。

passenger-install-nginx-module を実行します。 特にオプションは必要ありません。

ここからインストールが始まります。

まずは 処理の説明が表示され、 Press Enter to continue, or Ctrl-C to abort. と表示されます。 Enter を押して続行します。 途中で()めたくなったら いつでも Ctrl-C を押せば止められます。

続いて Which languages are you interested in? と表示されるので 必要なものを画面の指示にしたがって選択し、 Enter を押します。

インストールされているソフトウェアのチェックが終わると、Do you want this installer to download, compile and install Nginx for you? と、 インストール方法を聞かれます。 ソースからコンパイルを行うので 2. No: I want to customize my Nginx installation. (for advanced users) を選びます。

また、 私の場合は PCRE というのがインストールされていなかったようで、 途中で自動的にダウンロードされました。

次にソースファイルの場所とオプションの入力が必要になります。 次のように入力しました。

Where is your Nginx source code located?
/usr/local/src/nginx-1.8.0
nginx のソースの場所です。
Where do you want to install Nginx to?
デフォルトのまま何も入力せず Enter を押しました。
nginx のインストール先です。
Extra Nginx configure options
--add-module=/usr/local/src/headers-more-nginx-module-0.261
nginx をコンパイルする際のオプションです。 headers-more-nginx-module を使用するため、 --add-module オプションを設定しています。 デフォルトで設定されるオプションはコンソール上に表示されます。

最後の意志確認をされますので、 まちがっていなければ Enter を押します。 コンパイルとインストールが実行されます。

nginx の設定

私は /opt/nginx/conf/nginx.conf.default をコピーして /opt/nginx/conf/nginx.conf を作って編集しました。 (もっときれいなやり方もあると思いますが。)

Rails を動かすだけなら 次のようにすれば OK です。 抜粋してサンプルを掲載します。 client_max_body_size はクライアントからの画像アップロードのために設定しています。 (デフォルトでは1Mだそうです。) その他の設定値の意味は Phusion Passenger users guide, Nginx version などに説明がありますのでそちらをご参照ください。

そこにヘッダレスポンス変更のための記述を追加します。

設定が間違っていないことを次のコマンドでチェックします。 エラーが表示されなければ OK です。

Nginx の再起動 (または起動)

再起動のときには /opt/nginx/sbin/nginx -s reload とやることが多いのですが、 今回はそれではうまくいきませんでした。

/opt/nginx/sbin/nginx -s stop で nginx を止めてから /opt/nginx/sbin/nginx を実行するとうまくいきました。

初めて起動する場合は /opt/nginx/sbin/nginx のみ実行すれば OK です。