とりあえず、まずはOSのインストールから。
OpenSUSE は完全に日本語化されていて、インストーラもかなり使いやすい。
初心者にもオススメ。
最初にインストールする人はデフォルト設定のままでも良いが、今回は
以前に使ってたハードディスクに追加インストールする形なので
以下のようにデフォルトから変更した。
GUIが無いパッケージが選択できるのは嬉しい。
大抵他のディストリビューションだと、GUI外すと自分でパッケージ選んだり
しないといけないのだが、SUSEならクリック一つでOK。
が、今楽な分後で苦しむことになるのだが…
デフォルトだと無効になっている。
もちろん後からでも簡単に入れられるが、今回は最初から入れておく。
すんなりインストールは完了。
まずはSSHの設定から。
基本的にテキストベースのサーバでは
そのマシンで直接作業するということはしない。
他のマシン(うちの場合はWindowsクライアント)からSSH経由で作業するので、SSH導入は最初にやる。
デフォルトだとプロトコルが2になっていて、これだとWindowsのSSHクライアントから
ログインできないこともある。
なので以下のように変更。設定ファイルは /etc/ssh/ssh_config
Protocol 1 PasswordAuthentication yes
これは平文でパスワードを管理するプロトコル1のモード。Unixユーザのユーザ名とパスワードをそのまま使う。
外部にSSHポートを公開しないのなら、これで充分。
うちの場合はルータでポート遮断してるので、SSHで侵入される危険は無い。
外からSSH接続したい人は、プロトコルを2にして暗号ファイルを使うこと。
SSHは外部公開するポートの中で最も危険なもの。作業は慎重に。
次はWebサーバ。w3m は標準で入ってるので、HTTP経由でソースをダウンロード。
http://httpd.apache.org/Linux version : OpenSUSE 11.2Apache : 2.0.63
しかしSuSEのデフォルトインストールには開発環境が入っていないようだ。
なので make と gcc を追加インストール。
Linux version : OpenSUSE 11.2make : 3.81gcc : 4.4
sudo zypper install make sudo zypper install gcc
SUSE のインストールは zypper というパッケージを使うらしい。
見ての通り、非常に簡単。
しかも、make と打ってコマンドが見つからないとき
make をインストールするための上記コマンドがメッセージに出て教えてくれる。なんて便利なんだ。
./configure make sudo make install
以上であっさりインストール成功。
cd /usr/local/apache2/bin ./apachectl start
これで Apache が起動。80番のポートを使うので root で起動する必要がある。
TODO: 自動起動は、また今度。
Apache も zypper で入れればいいじゃないかという意見もあるかと思うが
一応自分のポリシーとしては
というようにしている。
例えば同時に異なるバージョンのApacheを入れたいような場合、インストーラでやっていると対応できない。
Apache のログローテート管理に。
http://cronolog.org/Linux version : OpenSUSE 11.2eRuby : 1.6.2
zypper のリポジトリには無いので、ソースから。
./configure.rb make sudo make install
httpd.conf は、こんな感じにする。
CustomLog "|/usr/local/sbin/cronolog /var/log/apache/access_log.%Y%m" combined env=!dontlog
上の例だと、月毎にログファイルがローテートされる。
Apache のログファイルは結構巨大になる(もちろん閲覧者数による)ので、古いログは圧縮したり別へ移しておく運用も必要。
とりあえず Ruby は必要。
Linux version : OpenSUSE 11.2Ruby : 1.8.7.p72
sudo zypper install ruby sudo zypper install ruby-devel
devel の方も入れておく(後続の mod_ruby で必要となる)。
http://www.modruby.net/ja/index.rbx/mod_ruby/download.htmlLinux version : OpenSUSE 11.2mod_ruby : 1.3.0
Apache から Ruby を使えるようにするモジュール。
自分のサイトはトップページが rhtml なので、これが必要。
./configure.rb --with-apxs=/usr/local/apache2/bin/apxs
で、Makefile が作成される。
make sudo make install
これで、/usr/local/apache2/modules/mod_ruby.so がインストールされた。
http://www.modruby.net/ja/index.rbx/eruby/download.htmlLinux version : OpenSUSE 11.2eRuby : 1.0.5
HTML に Ruby スクリプトを埋め込むためのライブラリ。JSPみたいなものだ。
なんか configure でエラーになったので、configure.rb をちょっと修正。309行目あたり。
$XLDFLAGS = "" # CONFIG["XLDFLAGS"]
あとは通常通りインストール。
./configure.rb make sudo make install
ここまで準備できたら、Apache の設定ファイルに以下を記述する。
LoadModule ruby_module /usr/local/apache2/modules/mod_ruby.so
<IfModule mod_ruby.c>
RubyRequire apache/ruby-run
RubyRequire apache/eruby-run
<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance
</Files>
</IfModule>
これで、拡張子 rhtml のファイルは mod_ruby 経由で eRuby が使えるようになった。
昔は時間合わせには ntpdate を使っていたのだけど
今このコマンドは deprecated となっているらしい。理由は知らんが。
sntp -P no -r pool.ntp.org
代わりに上記コマンドでOK。
毎日一回時間合わせをするが、その方法はあとでまとめて紹介する。