WHAT'S NEW?
Loading...

Linuxを使ったWeb開発環境を手早く構築する【1/3】

何度も言うけど、あくまで個人的な経験や思想になるが、Linuxで運用しているWebサーバにWebアプリをデプロイするためには、最初からLinuxクライアントで開発するのが手間が省けてよろしい思っている。思っているというか、事実だ。

現状、Linux(Fedora)で開発し、Linux(CentOS)にデプロイという流れでの作業を定番としているわけなんだけど、Windowsで開発してLinux(CentOS)にデプロイしてた時より遥かに良い。

なぜなら、コーディング中にデリミタを気にする必要もないしファイルシステム的にパーミッションの設定なども同じわけだから、開発マシンで動けば本番でも動くという可能性が極めて高いからだ。高いというより、普通はそのままで動く。

WindowsにXAMPPなんていうクソアプリを入れてしまっている人は、本来やらなくて良い作業が山盛りある事を理解したほうが良いと思っている。WindowsとLinuxの違いを意識しながらコーディングするなんて、精神衛生上、良い訳がない。



これは俺が現状でたどり着いた正解の一つだ。
例えばOSはLinuxサーバで動かすのが明確で且つDBMSはMySQLと決めてしまう場合、デリミタの定数化やORマッパはただのボトルネックでしか無い。処理速度を低下させているだけの無駄なモノ。
ここら辺、フレームワーク側でなんとかならんものか。例えばダウンロードする際に、まるでjQuery-UIの様に、ORマッパのアリ/ナシをチェックボックスで選択できるとか。
そもそも運用中にDBMS変えるなんてことはまずもって、ない。
コーディング中に便利なものが稼働中にも便利とは限らないことをもっとよく意識しておくべき。
しかし当然、正解はひとつだけではない。

本番サーバ上で開発し、正しく動くのを確認したらそのままリリース、という方法もある。
Gitなどを使って、本番環境そのままで別ブランチで動かすなんて愉快な事も十分可能だ。

個人的には徐々にこのステップに移行していこうと思っている。とにかく無駄をなくすんだ。なくせばなくすだけ精神的にも肉体的にも負担が減り、その分家族サービスや他の勉強なんかも充実してくるってわけだ。

しかし今回はあくまで、手元の開発環境の構築という話をするので、この件はまた別途。

前置きは終わり。本題に入る。

前回のシリーズ「Windowsにサヨナラだ!」ではひと通りLinuxクライアントの設定をざっくり説明したが、これからLinuxを使って開発したいと思う人は読んでおいてほしい。

別にOSをまるごとLinuxに入れ替えなくても、VMware Playerなどを使って、Windows上でLinuxを構築してもOKだと思う。ただし!間違ってもXAMPPなんか使うんじゃない(ブスでデブで頭の悪い女がブリトニーと同じ格好をしても、それはブリトニーではなく、ただの愚かなブタだということを知る必要がある)。

全体の流れは以下のように進めていく。

必要なパッケージの準備
  便利なアプリ、使うかもしれないアプリなどをひと通り揃える

バックエンド構築
  HTTPd、RDBMS、MTA、DNSなどをひと通りセットアップする

開発環境の構築
  eclipseやNetBeans、vim-X11、gEditや、
  gFTP、Filezillaなどのセットアップなど

というわけで、早速行ってみよう。

まずはパッケージの準備をしよう。
インストールするパッケージは以下になる。
すでに入れてしまっている場合は無視して次に進もう。
  • Apache 2.2
  • MySQL 5.5
  • PHP 5.3.8
  • Postfix
  • BIND
可能な限り新しいバージョンを入れるため、予めyumのリポジトリを設定しておくこととする。
追加するリポジトリは、
  • epel
  • remi
の2つだ。
※今回、あくまで俺のやり方なので、もっと良い方法があるかもしれないのを断っておく

■epelリポジトリの追加

まずepelリポジトリを入れる。
手順としては、
  1. epel-releaseダウンロード
  2. epel-release解凍
  3. RPM-GPG-KEY-EPEL、elep.repoをコピー
の3工程だ。

なんで解凍してから手動で設置するかというと、他の方法ではエラーが出ることがあったが、この方法では一度もエラーが出ないからだ。

少々面倒臭いが、この方法でいこうじゃないか。

http://download.fedora.redhat.com/pub/epel/5/i386/
このサイトから、「epel-release-5-4.noarch.rpm」をダウンロードする。
※バージョンは後日変わる可能性があるので注意

ダウンロードしたrpmはダブルクリックしないで、右クリックしてから書庫マネージャで開く。

書庫マネージャで開いたepel-release内の、
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPELを選択して「展開」。
同じように
/etc/yum.repos.d/epel.repoを選択して「展開」する。

端末を開いてrootになり、
RPM-GPG-KEY-EPELは/etc/pki/rpm-gpg/内へ、
epel.repoは/etc/yum.repos/d/へ、
それぞれファイルを移動する。

※epel.repo内のenabledは1になっているが、0にしておくことを強く勧める。

これでelepは完了だ。


■remiリポジトリの追加

次にremiリポジトリを入れる。
手順としては、
  1. remi-releaseダウンロード
  2. remi-release解凍
  3. RPM-GPG-KEY-EPELをコピー
  4. remi-enterprise.repoを作成
の4工程だ。

epelと同じく、なんで解凍してから手動で設置するかというと、他の方法ではエラーが出ることがあったが、この方法では一度もエラーが出ないからだ。

くどいようだが、少々面倒臭いが、この方法でいこうじゃないか。

http://rpms.famillecollet.com/el5.i386/
このサイトから、「remi-release-5-8.el5.remi.noarch.rpm」をダウンロードする。
※バージョンは後日変わる可能性があるので注意

ダウンロードしたrpmはダブルクリックしないで、右クリックしてから書庫マネージャで開く。

書庫マネージャで開いたremi-release内の、
/etc/pki/rpm-gpg/RPM-GPG-KEY-remiを選択して「展開」。

RPM-GPG-KEY-remiは/etc/pki/rpm-gpg/内へ、ファイルを移動する。

つぎに端末でrootになって、/etc.yum.repos.d/へ移動し、
remi-enterprise.repoを作成する。
# cd /etc/yum.repos.d
# vi remi-enterprise.repo
以下をそのまま貼りつければOK。
[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/remi/mirror
enabled=0
gpgcheck=1
gpgkey=http://rpms.famillecollet.com/RPM-GPG-KEY-remi
failovermethod=priority

[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=http://rpms.famillecollet.com/RPM-GPG-KEY-remi

これでremiはOKだ。

■Apache、PHP、MySQLのインストール

もしかしたらApacheは最初からインストールされているかもしれない。
以下のコマンドで調べてみよう。
# rpm -qa httpd
もし画面に
httpd-2.0.16-1.fc14.i686
などと表示されたら、最初からインストールされているということになる。

その場合は
# yum remove httpd
で消してしまおう。

Apacheもphpもmysqlも、remiリポジトリにあるものを入れるからだ。
これで何もない状態からApacheをインストールすることができる。

remiにあるApacheやPHPのバージョンを確認してみよう。
# yum --enalberepo=remi info httpd

Name        : httpd
Arch        : i686
Version     : 2.2.17
・・・
こんな文字が出力される。バージョンは2.2.17だそうだ。

同じ様に、phpも調べておく。
# yum --enablerepo=remi info php

Name        : php
Arch        : i686
Version     : 5.3.8
Release     : 2.fc14.remi
phpは5.3.7だ。

というわけで、Apacheとphp周りを早速インストールする。
# yum --enablerepo=remi install httpd php php-devel php-bcmath php-gd php-imap php-ldap \
    php-mbstring php-mcrypt php-mysql php-pdo php-pear\
    php-pspell php-snmp php-soap php-tidy php-xml php-xmlrpc
SVNを使ったり、SSL対応のサイトを開発するのが前提であれば、以下も入れておくことをオススメする。
当然、入れておいて使わないのも全然アリだ。
# yum --enablerepo=remi install mod_ssl mod_perl mod_dav_svn

次にMySQLをインストールする。
yum --enablerepo=remi install mysql-server

これでApache、PHP、MySQLが完了。

■Postfix、BINDのインストール

メールサーバにSendmailやqmailを使う人はこのまま詠み飛ばしても構わないが、Sendmailは歴史的経緯から、qmailは(確かにバグは発見されてはいないが)汎用性を考慮して使わないというのが俺のポリシーだ。
当然両方とも使ったことがある。その上で、Postfixを使うことを選んでいる。

というわけでPostfixをインストールする。
# yum install postfix

インストールはこれで終わり。
次にDNSであるBINDをインストールする。
# yum -y install bind bind-chroot caching-nameserver

これでBINDのインストールは終わりだ。


■次回は?

次回から、今インストールした必須パッケージの設定を行う予定。
特にBINDの設定は必読だと思う。

というのも、例えばあなたがノートPCにFedoraやUbuntuを入れて、その場で動くサイトのデモを行う場合、会場が無線LANのセミナールームだったり、職場の固定ローカルIPの場であったり、いろいろなケースがあるとおもうが、それらにも対応できるローカルDNSサーバを作るからだ。

このDNSが動いていれば、いちいちサブドメインを切ってバーチャルホスト対応しているドメインをhostsファイルにずらずらみっとも無く記述する必要が無くなるし、そもそもサブドメインをどこかで管理するという必要が全くなくなるわけだ。

というわけで、Apache、php、MySQL、Postfixなどの設定は軽く終わらせ、BINDのローカルDNSをメインに説明する予定。

乞うご期待。