2012/09/17

モダン環境物語 - インストール編

最近プロダクト開発の妄想ばっかりしてますこんにちは。

その関係でいろんなものに手を出しては頭をかしげてるわけですが
よくネットで目にする新しいあれこれだけで環境を組み上げられるか
一度試してみたくなったというわけです。

で、今回試してみる環境は以下。

  • lighttpd(Web Server)
  • Nginx(Proxy)
  • HTML5
  • CSS3
  • jQuery(JavaScript)
  • Python3系
  • MongoDB

流行り物とはいえ若干ピークはすぎてますが
この組合わせすべて載せたブログエントリを見ないのでやってみます。
この中から2、3種類拾って組合わせってのはよく見るんですけどねー。
ちなみにHTML5やCSS3はプログラミング言語とかパッケージとはまた違いますが
流行りものということとPython3系でのJinja2の扱いを試す意味合いで選択しました。

操作環境はざっくりと下記の通り。
  • Debian Squeeze on Parallels
  • ZSH
  • Vim7.3
ちなみにbashやemacsを使っている人は読み替えて下さい。

lighttpdのインストール


NginxひとつでCGIを動かせるWebサーバをやらせても良いんですが
CGIダメー(正確にはfcgiはOK)とか書いているので分離してみます。

あとNginxに全部やらせるのではなくWeb Serverは
別にあった方が良いのでは、という考もあります。


下記コマンドで簡単に
確認とインストールが完了します。

% aptitude show lighttpd
% aptitude install lighttpd

環境によってはX云々のwarningが出たりしますが、とりあえず無視。
さてここで一気に起動スクリプトを叩いて起動したくなりますが、
ApacheのようにIt Works!なindex.htmlが配置されていないため
レスポンステスト用のファイルを作成してあげる必要があります。
(より正確にはindex.lighttpd.htmlは配置されます。)

デフォルト設定のドキュメントルートは/var/wwwになっています。
ちなみにコンフィグファイルは/etc/lighttpd/lighttpd.confです。
そこで、適当に下記のようなhtmlファイルを作成してしまいましょう。

<html>
  <head>
    <title>It Works!</title>
  </head>
  <body>
    <h1>It Works!</title>
  </body>
</html>

さて、ようやくWebページの表示が可能になりました。
細かな設定はひとまず横に置いておいて、
サーバのIPもしくはホスト名等を指定してブラウザからアクセスしてみましょう。

あなたの予想に反してこのページが見えているでしょうか?

というわけでWebサーバの起動は確認できました。
続いてCGIの動作確認、と行きたいところですがいったん後回し。

Nginxのインストール


Nginxの役割は順当にProxyとし、
静的ファイルの扱いのみを任せるために構成していきます。

こちらもインストールだけは非常に単純。

% aptitude show nginx
% aptitude install nginx

ここではまだ何かをさせるわけではない(URLも決まってない)のでこのまま放置。

Python3.1のインストール


Pythonはそのままデータの処理を担当してもらいます。
調べてみると現時点でDebianのPythonは3.1が最新の模様。
よって手順は以下のようになります。

% aptitude show python3
% aptitude install python3

明示的に"python3.1"としないのには訳があって、
依存して自動的にインストールされるパッケージが
python3としておくと都合がいいという理由です。

さて、pythonといえばeasy_installやpipといった
PyPIを利用するためのコマンドが用意されています。

そういったところを手軽に弄ることができるような環境も
一緒に作ってしまった方が後々楽になります。
なので、まずはpipを構築します。

% aptitude show python-pip
% aptitude install python-pip

場合によってはここで一度環境変数を再読み込みした方が良いです。

% source $HOME/.zshrc

で、インストールすべきはvirtualenvとvirtualenvwrapper。

% pip install virtualenv virtualenvwrapper

virtualenvwrapperを利用するためにはちょっとだけ設定が必要です。
まず$HOME/.zshrcに下記を追記します。

export WORKOH_HOME=$HOME/.virtualenvs
source `which virtualenvwrapper.sh`

またまた環境変数を再読み込みすることで初期設定が行われます。

% source $HOME/.zshrc

さて、これでコマンドを利用する準備ができましたので
早速環境のチェックもかねてコマンドを入力してみましょう。

% pip freeze
% workon

最初の"pip freeze"というコマンドでは何か文字が表示されたはずです。
これは今デフォルトでインストールされているパッケージの一覧です。
ただしpipコマンドが認識できる範囲のものしか表示されません。
次のコマンドはvirtualenvwrapperのコマンドのひとつで、
作成したpythonの仮想環境一覧を表示するためのものですが
まだひとつも作成していないため何も表示されなかったはずです。

そこで、まずは先ほどインストールしたpython3.1へ
切り替えられるようにさっさと環境を作ってしまいましょう。

% mkvirtualenv -p python3.1 python3.1
% python -V
python3.1.3

mkvirtualenvの書式は"mkvirtualenv -p pythonのバージョン 仮想環境名"です。
このコマンドを入力したことによっていくつか画面に表示がありました。
そして実際にpythonのバージョンが切り替わっているのが確認できましたね。
ここで再度"pip freeze"とでも入力すると表示する内容が変わっているはずです。
mkvirtualenvコマンドのデフォルトでパッケージも
作成した仮想環境ごとに切り替えられるよう設定されているためです。
なお明示的にオプションを指定する場合は"--no-site-packages"で、
システム環境のパッケージを継承する場合は"--system-site-packages"となります。
なおpython3系では2系のパッケージをほとんど扱えないため、
--system-site-packageとしてもエラーが出てしまいます。
同系統のpythonでのみ利用するようにしましょう。

さてここまでやると不安になるのが仮想環境から抜けたり消したりという動作。
消すためには抜ける必要があるので以下のコマンドを入力します。

% deactivate

ちなみに抜けた後また仮想環境に入る場合は下記。

% workon python3.1

"workon 仮想環境名"というのが書式となるわけですね。
そして環境の削除はさらに以下のコマンドを入力します。

% rmvirtualenv python3.1
% workon

削除されたのは確認できたでしょうか。
今はこういった使い方でpython3.1を使うのが一般的なようです。
というわけでとりあえずpythonの構築はここまで。

MongoDBのインストール


PostgreSQLも考えたんですが9.1の不具合周りと
9.2が公開されたばかりでdebianのリポジトリに無いということで
MongoDBで行ってみたいと思います。
というかPostgreSQLはモダンじゃないか。

さてここまで来ると手順も似通ってきますが、
以下のコマンドでインストール自体はさくっと完了します。

% aptitude show mongodb
% aptitude install mongodb

ちなみに起動はこの時点でされていますので制御は下記コマンドのいずれかにて。

% service mongodb {start|stop|force-stop|restart|force-reload|status}

ひと通り終えて


とりあえず個々の要素に関してはこれで完了となります。
あとはそれぞれがしっかり連携するようにアレコレ弄っていくわけですが、
これは次にまわしてみたいと思います。


それでは、電波送信終了ー。

0 件のコメント:

コメントを投稿