* 各種インストール(D-Chaより) [#r017f2d5]
* Webサーバで一般的によく使うと思われるプログラム [#j97397b3]
** 必要なプログラムのインストール [#k24e0ea2]
- openssh-server
- openssh-clients
- wget
- sudo
- portmap
- build-essential
** プログラムのインストール [#m53b5f50]
D-Cha4ではレスポンスの高速化を目指して、コンパイルはすべてIntel Compilerで行う。ただし、Perlモジュールのコンパイルの際はgccが使われてしまうのでgccをiccのリンクにして対処する。
** Intel Compilerのオプション [#u873dc8b]
必要な各プログラムをコンパイルするときにIntel Compilerを使用するが、その際、Ver.9.xと10.xではオプションが変わっている。従ってコンパイル時のCFLAGSがコンパイラバージョンによって
異なるので注意!
*** Intel Compiler Ver.9.x [#i426584a]
CFLAGS="-O3 -tpp7 -xWNB -axWNB -ip"
*** Intel Compiler Ver.10.x [#w2ed558e]
# CFLAGS="-O3 -xW -axT -openmp -parallel -no-prec-div -ipo"
CFLAGS="-O3 -xW -axT -mtune=pentium4 -parallel -no-prec-div -ip"
ただし-xW,-axTオプションはCPUによって異なるので要確認。
** 実際のインストール [#y270690b]
*** D-Chaユーザーの作成 [#d814fdce]
# adduser -g 100 -m -u 1001 -s /bin/tcsh dcha
# passwd dcha
UID,GIDは環境に応じて変更する。
*** Intel Compiler 9.1.042 [#r403340c]
&color(red){10.0でもほぼ同じ};
- インストール
''sudo''でインストールするとエラーは出ないが、''su -''でルートになってインストールするとスクリプトエラーが出た。~
% cd l_cc_c_9.1.042
% sudo ./install.sh
ここではC/C++コンパイラとデバッガをインストールした。
- ld.so.confに以下の行を追加
/opt/intel/cc/9.1.042/lib
- ldconfigのキャッシュを更新
# ldconfig
*** Apache 2.0.63 [#saf5fb9b]
- apt
-- openssl-devel
- Intel Compilerでコンパイル~
SSL、Headers、Rewriteモジュールが必要になるのでEnableにする。
% cd httpd-2.0.63
% ./configure CC=icc CFLAGS=IntelCompilerオプション LIBS=-lpthread \
--enable-ssl --with-ssl=/usr --enable-headers --enable-rewrite
% make
% sudo make install
- アカウント:apache(id=81)を作成(Vine4では48)
*** mod_perl 2.0.3 [#t222b5ba]
- apt
-- gdbm-devel
- gccをiccへのリンクにする
# mv /usr/bin/gcc /usr/bin/gcc.bk
# ln -s /opt/intel/cc/9.1.042/bin/icc /usr/bin/gcc
- Intel Compilerでコンパイル
% unsetenv LANG <-- LANGが日本語だとerror_logが文字化けする
% perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs OPTIMIZE=IntelCompilerオプション
% make
% sudo make install
*** PHP 5.2.5 [#db520100]
- apt
-- libxml2-devel
WebサーバにPHPをインストールするためにIntel Compilerでコンパイル。
% CC=icc CFLAGS="-O3 -tpp7 -xWNB -axWNB" ./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-safe-mode \
--enable-mbstring
% make
% make test
で大丈夫みたいだ。
- 2007/12/13追記~
PHP 5.2.5でenable-safe-modeでコンパイルした場合、テストで警告が出た。テスト結果ではsafe-modeを使っている場合、いくつかの警告が出ると書いてあるから多分OKかな?~
今回はsafe-modeを切ってみた。
インストール後libtoolを実行した
libtool --finish /home/nobrin/progs/php-5.2.5/libs
% sudo make install
% sudo libtool --finish /home/nobrin/progs/php-5.2.5/libs
- 2007/12/15追記~
ApacheのMPMスレッドモデルをpreforkではなくworkerで起動しようとするとPHPがthreadsafeではない、と怒られる。どうやらPHPをコンパイルしたときにApacheがpreforkだったのが原因らしい。
Apacheをworkerにしてインストール後PHPをコンパイルするとthreadsafeになるそうな。~
つまり、コンパイルするときは、
++ Apache2を--with-mpm=workerでビルドおよびインストール
++ PHPのビルドおよびインストール
という順が必要になるらしい。
*** PostgreSQL 8.3.0 [#xcdb1e53]
パフォーマンスが劇的に変わったという8.3を試す。
- apt
-- bison
-- readline-devel
-- flex
-- zlib-devel
- Intel Compilerでコンパイル
% ./configure CC=icc CFLAGS=IntelCompilerオプション
% make
% sudo make install
コンパイル時相当時間がかかるが待てば終わるはず。とにかく長い・・・
- postgres(id=70)ユーザーを作成
# groupadd -g 70 postgres
# useradd -d /var/lib/postgresql -g 70 -m -s /bin/tcsh -u 70 postgres
- postgresユーザーの設定
.cshrcファイルに以下の行を追加
setenv PGDATA /var/lib/postgresql/data
setenv PATH /usr/local/pgsql/bin:${PATH}
- postgresユーザーでデータベースを初期化する
% source .cshrc
% mkdir data
% initdb
- D-Cha用データベースアカウントを作成
% createuser dcha
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
% createdb dcha4
*** ImageMagick 6.3.7-2 [#gb119242]
aptでインストールしてもおそらく構わないが、依存プログラムが大量に入るため、ソースからインストールした。~
&color(red){ImageMagick 6.3.3-3ではPerlMagick使用時に実行時エラーが出て使用できなかった};~
&color(red){ImageMagick 6.3.2-9はOK。6.3.7-5はlibperl.aがない、と怒られてビルドできない};
-apt
-- libpng-devel,libjpeg-devel,libtiff-devel,libxml2-devel,netpbm-devel,freetype2-devel,gd-devel,bzip2-devel
- Intel Compilerでコンパイル
% ./configure CC=icc CFLAGS="-O3 -tpp7 -xWNB -axWNB -ip" LIBS=-lsvml
しかし、なぜかLIBSが反映されないのでMakefileを修正する。(6.3.7では反映されていた)
1984: LIBS = -lsvml
svmlリンクオプションの問題はEMBOSSのインストールと同様。~
また、C++のオプションで-O2がオーバライドされた、と何度も出て気持ち悪いので、
1914: CXXFLAGS = -g -Wall -W -pthread
2008: MAGICK_CXXFLAGS = -g -Wall -W -pthread
これらの''-O2''オプションをはずした。その他、-Wは対応していない、という警告も出るので-Wも消してもいいのかもしれない。~
さらに、PerlMagickコンパイル時のOPTIMIZEオプションを指定
2053: PERL_MAKE_OPTIONS = OPTIMIZE="-O3 -tpp7 -xWNB -axWNB -ip"
% make
% sudo make install
これもコンパイルに結構時間がかかる。
*** GNUPLOT [#o4ca7984]
XAFSをプロットする際に必要。aptでインストールする。
*** Subversion [#ud08b955]
Vine 4.2ではaptでインストールできるため、aptを使用。
- subversion
Vine 3.2ではneonのバージョンなどとの兼ね合いで1.3.2をインストールした。
- apt
-- ruby-devel, db4-devel, neon-devel, python-devel
*** VLゴシック [#uc7e5245]
getsp8.cgi(SPring-8環境カメラ画像)取得時に文字を埋め込むためにインストール。
- apt
-- TrueType-sazanami
*** GhostScript [#q3a0a3ab]
- apt
-- ghostscript
** システム設定 [#w1f10996]
*** rc.localの編集 [#p80a352e]
/etc/rc.localの末尾に以下のコマンドを追加
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /var/lib/postgresql/data -l /var/lib/postgresql/pgsql.log start
/usr/local/apache2/bin/apachectl startssl
これで起動時にPostgreSQLとApacheが起動する。
*** GnuPGを使う場合の設定 [#q1501e9c]
GnuPGで公開鍵暗号を使う場合はApacheアカウントの設定が必要。大まかな流れは以下の通り。
- &color(red){Apacheのホーム/home/apacheに.gnupgディレクトリを作り''--gen-key''をする};
- &color(red){使用する公開鍵に内部署名する''--lsign-key''};
- .gnupgディレクトリのパーミッションは700にしておく
- gpgにsuidしておいた方が警告が出なくてよい(chmod u+s gpg)
パーミッションの関係は、.gnupgディレクトリパーミッションは--no-permission-warning、安全でないメモリの警告は--no-secmem-warningで消せるが煩雑になるので(というか問題が解決して>
いない)。
- 手順
-- apacheのホームディレクトリを/home/apacheとし、一時的にログインできるようにpasswdファイルを書き直す。~
--- ''/bin/false''なので''/bin/tcsh''など。
-- ディレクトリを構成する(後ろの数字は属性)
/home/apache (700)
+- .gnupg/ (700)
-- Insecure memoryエラーが出ないように、gpgにsuidする。
# chmod u+s /usr/bin/gpg
-- ユーザーapacheになり、GnuPGをセットアップする。
apache% gpg --gen-key
この時鍵長は2048bitにした。
-- 使用する公開鍵にサインする
apache% gpg --lsign-key 'D-Cha System'
*** iptablesでポート転送する [#z63de1f6]
10223へのアクセスを80に転送する。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10223 -j REDIRECT --to-port 80
* Perlモジュールのインストール [#o53f73d3]
** 初期設定 [#l334de16]
Policy on building prerequisites (follow, ask or ignore)? [ask] follow
ftp://ftp.riken.jp/lang/CPAN
** CPANモジュールの設定 [#c0f49a4f]
ルートになってCPANモジュールでインストールする。perl Makefile.PLオプションの設定の時に、
OPTIMIZE="-O3 -tpp7 -xWNB -axWNB -ip"
を指定しておく。
** CPANモジュールのアップデート [#ve8ff5ab]
install Bundle::CPAN
reload CPAN
** D-Cha Bundlesのインストール [#aba05771]
一つ一つインストールするのは大変なのでBundleを使ってインストールする。
*** Bundleインストール前の準備 [#j2c512d2]
- apt
-- expat-devel
-- libxml2-devel
- その他、設定で細かいところ
-- CGI.pm~
CGI.pm 3.31ではこれまでの表示方法ができない。mod_perlのやり方通りが必要。~
とりあえずCGI.pmは3.29を使う。
-- PostgreSQLの共有ライブラリ~
ld.so.confに/usr/local/pgsql/libを追加
-- Net::SSLeayをあらかじめインストール~
CPANでインストールしようとするとOPTIMIZEオプションがOpenSSLのコンパイル環境と異なる、とエラーが出て停止するのでaptを使ってインストールする。パッケージは''perl-Net_SSLeay''。
-- Diffractionモジュール群
--- Diffraction
--- Diffraction-MarMosaic
--- Diffraction-Jupiter
--- Diffraction-RAXIS
- Bundleファイルをコピー~
DCha.pmを/root/.cpan/Bundle/Personal/DCha.pmとしてコピーしておく。
*** インストール [#ee7fd877]
CPANを使ってインストールする。Perl6::Slurpはエラーメッセージを確認するので''unset LANG''を実行しておく。
# unset LANG
# cpan
cpan> install Bundle::Personal::DCha
これでPerlモジュールの環境がセットアップされた。
** インストールしたモジュール [#a6973279]
- DBI
- DBD::Pg
- Class::DBI -- 使わない
- DBIx::Class
- Exception::Class
- FormValidator::Simple
- Net::SSLeay
-- コンパイラの種類があわないとか文句を言われるので.cpan/build中でコンパイルしてインストールする~
# perl Makefile.PL /usr OPTIMIZE="-O3 -tpp7 -xWNB -axWNB -ip"
# make
# make test
# make install
Net::SSLeayをインストールすればIO::Socket::SSLも問題なくインストールできる。
** Etermで日本語入力 [#z01df3bc]
WindowMaker + Etermで日本語入力します。今どきWindowMakerを使っている人がいるかどうかは疑問ですが((少なくとも私は使ってます))、設定してみます。Vine 4.0ではあらかじめ日本語入力>
の設定ができているので、設定をちょっといじればOK。でも、Eterm-0.9.4じゃないとダメみたいです。0.9.3ではダメでした。~
IMEの設定を確認する(Vine固有?)
$HOME/.vine/system/imeファイル
EMACS_IME=scim
XIM_PROG=scim
JSERVER=localhost
WNN8_FRONT_END=kinput2
WNN7_FRONT_END=kinput2
WNN6_FRONT_END=kinput2
WNN8_SERVER=localhost
WNN7_SERVER=localhost
WNN6_SERVER=localhost
CANNA_SERVER=unix
GTK_IM_MODULE=scim
多分XIM_PROGとかGTK_IM_MODULEをscimにすればおっけー。
Etermの設定ファイル(全ユーザーへの設定なら/usr/share/Eterm/themes/Eterm/theme.cfg、個別なら~/.Eterm/user.cfg)で
begin xim
input_method scim
preedit_type OverTheSpot
begin xim
を追加します(theme.cfgならコメントアウトを外せばいいはず)。これでSCIM + Anthyの設定で日本語入力を使うことができます。後はAnthyでキーバインドの設定をいじればいいでしょう。