Solaris10 x86_64のパッチ当てを普通に
# smpatch update
と行ったのだが、139556-08カーネルパッチで見事にハマリ。
症状は起動しなくなるというもの。(起動途中で止まる)
とりあえずSafe Modeで起動して、init 6で再起動させるとbootadm update-archiveが走ったようなメッセージが表示されてログオンプロンプトまでは表示されたものの、非大域ゾーンが一つも立ち上がらない。。。
とりあえず手が無いので、スナップショットからパッチ当て以前の状態にリストアしました。
最初どのパッチが原因かは掴めなかったので、色々検索していると
139556-08カーネルパッチで似たような症状を発見。
とりあえず、手で一つずつパッチを当てていき、問題のカーネルパッチは書かれている通りにSafe Modeで起動し直して、
# cd /a/var/sadm/spool
# patchadd -n -R /a 139556-08.jar
# bootadm update-archive -R /a
とやってみたところ、無事に起動した。
教訓1 パッチ当ての前には必ずスナップショットかバックアップを取っておく
# zfs snapshot [プール名]@before
教訓2 パッチを当てるときは事前にある程度情報収集を行う。
・・・大事ですねぇ。
Solaris10でGNU Screenがコンパイルできないで記載したとおり、何とかSolaris10でGNU Screenが使えるようになった訳ですけど。。。
ネタもないので、自分の.screenrc(GNU Screenの設定ファイル)を晒してみます。
escape ^Tt
startup_message off
hardstatus on
hardstatus alwayslastline "screen %{= wk} %`%-w%{=b bw}%n %t%{-}%+w %u %= %{= KG} %02m/%02d %{= KM}[%02c] "
autodetach on
defscrollback 20000
vbell on
bell ^G
idle 180 blanker
blankerprg fortune meigen
bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind -c REGION ^ resize
bind x command -c REGION
bind w windowlist -b
bindkey "\033[5D" prev
bindkey "\033[5C" next
工夫というか、hardstatusで常に最下行にScreenのウインドウ一覧と日時が表示されるようになっています。キーバインドはCtrl+T。デフォルトのCtrl+Aは使いにくいし、Ctrl+XはEmacsと被るし、Ctrl+Zはシェルと被るので、、、不都合の少ないであろうキーを割り当てました。(昔はCtrl+Xだったんですが・・・)
あと、fortuneを入れておいて、3分放置すると名言集辞書が表示されるようになってます。
結構、ssh接続しっぱなしで放置する事が多いもんで。(^^;
BSDとかLinuxに標準で含まれているfortuneですが、Solarisには標準で含まれていないので。
fortune ・・・ ジョークツールなんですが、格言辞書を用意すると、コマンドを実行する度にランダムに格言を表示してくれるツールです。
Solaris10上でGNU Screenをコンパイルしようとするとエラーになる件。
$ ./configure --enable-pam --enable-locale --enable-colors256 --enable-rxvt_osc --enable-telnet --with-sys-screenrc=/etc
$ make
CPP="gcc -E " srcdir=. sh ./osdef.sh
AWK=nawk CC="gcc -g -O2" srcdir=. sh ./comm.sh
AWK=nawk srcdir=. sh ./term.sh
gcc -c -I. -I. -g -O2 screen.c
gcc -c -I. -I. -g -O2 ansi.c
gcc -c -I. -I. -g -O2 fileio.c
gcc -c -I. -I. -g -O2 mark.c
gcc -c -I. -I. -g -O2 misc.c
misc.c: In function `xsetenv':
misc.c:619: error: too few arguments to function `setenv'
*** Error code 1
make: Fatal error: Command failed for target `misc.o'
few arguments to functionと言っているのが何でかなぁと・・・
ともあれmisc.cの619行目の定義らしいので、その辺りを見てみる。
616 # if defined(linux) || defined(__convex__) || (BSD >= 199103)
617 setenv(var, value, 1);
618 # else
619 setenv(var, value);
620 # endif /* linux || convex || BSD >= 199103 */
617行目と619行目の違いに注目。
617行目はsetenv( var, value, 1 )と3つの引数が与えられているのに対し、619行目はsetenv( var, value )と2つの引数しか与えられていない。たぶん鍵は616行目にあって、プリプロセッサが、linuxと、BSDの場合はsetenv( var, value, 1 )が、それ以外の場合はsetenv( var, value )が使われるようだ。
で、Solarisの場合、
気になるもの。の
Solaris 10 の setenv(3C), unsetenv(3C)によると
そういえば、昔は setenv(3C), unsetenv(3C) は、Standard C Library Functions として用意されていなかった気がしたので、ちょっと確認。
Solaris 8, Solaris 9 には、提供されていない。
Solaris 10 からみたい。
Solaris 10 の new feature として、announce あったっけ・・・
適当な source を見つけられないなぁ(´・ω・`)
という事で、もともとSolaris9まではsetenv()自体が提供されていなかったようだ。
で、
setenv(3c)/unsetenv(3c) は UNIX2003 仕様準拠により、Solaris 10 から libc によりサポートされるようになりました。
という事らしい。
tjmiuraの日記にも
どっちかっつうと、misc.c
の619行目
setenv(var, value);
を編集しちゃうよりは、この部分をくくってる条件マクロの方を編集するべきではないかと。
diff -ur screen-4.0.3.org/misc.c screen-4.0.3/misc.c
--- screen-4.0.3.org/misc.c 2003-12-05 22:45:41.000000000 +0900
+++ screen-4.0.3/misc.c 2008-07-21 17:55:44.950202000 +0900
@@ -613,7 +613,7 @@
*/
# endif /* NEEDSETENV */
#else /* USESETENV */
-# if defined(linux) || defined(__convex__) || (BSD >= 199103)
+# if defined(linux) || defined(__convex__) || (BSD >= 199103) || defined(__sun__)
setenv(var, value, 1);
# else
setenv(var, value);
補足すると、Solarisにsetenv(3C)
が備わったのはSolaris10以降なので、SunOSバージョン識別は結局不要で、条件分岐としてはこれでよかった。
Solaris9以前ではputenv(3C)
が使われるのでこれまで問題にならなかったわけだ。
とある。
なので、、、件のmisc.cは
616 # if defined(linux) || defined(__convex__) || (BSD >= 199103) || defined(sun)
617 setenv(var, value, 1);
618 # else
619 setenv(var, value);
620 # endif /* linux || convex || BSD >= 199103 || sun */
こう書き換えるのが正しいようだ。
最終的にmisc.cを上記のように書き換えて、
$ LDFLAGS="-m64" CPPFLAGS="-m64 -O3" CFLAGS="-m64 -O3" ./configure --prefix=/usr/local --enable-pam --enable-locale --enable-colors256 --enable-rxvt_osc --enable-telnet --with-sys-screenrc=/etc
$ gmake
# sudo gmake install
でインストールができた。(※例によって64ビット・バイナリでインストールしている。32ビット・バイナリの場合はLDFLAGS、CPPFLAGS、CFLAGSの設定は不要)
Solaris10でSquidをソースからインストールする手順(まとめ)
※ 32ビット版
ちょっと挫折中。
Solaris10(x86) + Apache + PHP + MySQLでサイト構築しようと企んでたんだけど。
OpenSSL0.9.8k → 何もせず64ビット版に。
libxml2, libjpeg(jpeg6a), libpng, gd → 問題なく64ビット版に。
MySQL5.1 → 問題なく64ビット版に。
Apache2.2 → 問題なく64ビット版に。
PHP5 →
問題なく64ビット版に。
いえ、問題ありました。
apxs2を組み込もうとすると、ldがapxsがelf32だというエラーになる。
apxsを調べてみると、Perlのスクリプト。(file apxs)
という事で、Solaris10標準のperlを調べてみると、見事に32ビット版。
(ldが吐くエラーはライブラリに対して・・・のはずなんだけど・・・という疑問はあるが、思い当たる部分はperlのみ・・・だから)
Perlも入れ直す必要があるな → 64ビットでコンパイル出来ず。
・・・
見事にハマリです。
妥協としては全て32ビットバイナリとしてコンパイルする事か、
全てパッケージ(32ビット版が、OS標準で含まれているので)でインストールする事。
・・・ちょっとイヤだが。
追記:
上記、かなり勘違い。
ライブラリ検索パスの話とか、各種ライブラリ(xml2, jpeg, png, gd)の話とかが重なっていただけ。
結論としては、zlibを--sharedオプション付きでコンパイルして解決。
せっかくなので手順を記載(備忘録としてメモ)します。
方針として、インストールは
32ビットバイナリ → /usr/local/bin
32ビットライブラリ → /usr/local/lib
64ビットバイナリ → /usr/local/bin
64ビットライブラリ → /usr/local/lib/64
に行うものとします。
前提としてOpenSSLの最新版が
32ビット版 → /usr/local/ssl
64ビット版 → /usr/local/ssl64
にインストールされているものとします。
Solaris10は全体ディストリビューション異常でインストールされ、コマンドサーチパスは
最低限 /usr/local/bin、/usr/bin、/usr/ccs/bin、 /usr/sfw/binが設定されていると仮定。
64ビットのライブラリ検索パスをcrleで設定
# crle -64 -c /var/ld/64/ld.config \
-l /usr/local/httpd/lib:/usr/local/lib/64:/usr/sfw/lib/64:/usr/lib/64:/lib/64
Apache2.2のコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--prefix=/usr/local/httpd64 \
--enable-shared=all \
--enable-module=so \
--enable-dav=yes \
--enable-ssl \
--with-sslport=443 \
--with-ssl=/usr/local/ssl64 \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-proxy \
--enable-proxy-balancer \
--enable-rewrite
$ gmake
# gmake install
zlibをコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure --shared \
--prefix=/usr/local \
--libdir=/usr/local/lib/64
$ gmake
# gmake install
libxml2をコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64 \
--with-zlib
$ gmake
# gmake install
libjpeg(jpeg-6b)をコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64
$ gmake
# gmake install
libpngをコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64 \
$ gmake
# gmake install
GDをコンパイル&インストール
$ CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure \
--libdir=/usr/local/lib/64 \
$ gmake
# gmake install
PHP-5.2をコンパイル&インストール
$ LDFLAGS="-m64 -O3" \
CFLAGS="-m64 -O3" \
CPPFLAGS="-m64 -O3" \
CXXFLAGS="-m64 -O3" \
./configure --libdir=/usr/local/lib/64 \
--with-zlib --with-gd \
--enable-mbregex --enable-mbstring \
--with-mysql=/usr/local/mysql \
--with-xmlrpc \
--with-apxs2=/usr/local/httpd/bin/apxs
$ gmake
# gmake install
Solarisコンテナを使ってみることに。
コンテナって何?って場合は
@ITの記事が判りやすいかも。
XenとかVMwareのような仮想化技術の一つなんだけど、Solarisの上で複数のSolarisが動いてるイメージ。
最近Solaris10ばっかです。。。
以前のSolarisなら、推奨パッチクラスターをダウンロードして、シングルユーザモードで適用という流れだったのですが、Solaris9の中盤あたりからパッチクラスターがダウンロードできなくなって、smpatchかSun Update Managerで管理するようになりました。
で、折角なのでパッチの適用方法をさらっとまとめておこうと。
Bindですが、さっくりコンパイルする分には問題なかったのですが、
真面目に環境作ろうとすると、ちょっとつまずいたので。
どうせなら、OpenSSLも最新にしてやろうという考えだったんですが。
sunfreeware.comからダウンロードしたgcc3.4.6はどうも32ビット版のようで、OpenSSLのインストールが失敗する。
OpenSSL0.9.8k
$ ./config
$ gmake
gcc -I. -I.. -I../include -DOPENSSL_THREADS ¥
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H ¥
-m64 -O3 -Wall -DL_ENDIAN ¥
-DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT ¥
-DSHA1_ASM -DSHA256_ASM ¥
-DSHA512_ASM -DMD5_ASM -DAES_ASM ¥
-c -o cryptlib.o cryptlib.c
cryptlib.c:1: sorry, unimplemented: 64-bit mode not compiled in
gmake[1]: *** [cryptlib.o] Error 1
gmake[1]: Leaving directory `/usr/local/src/openssl-0.9.8k/crypto'
gmake: *** [build_crypto] Error 1
これは標準でインストールされているgcc(3.4.3)では、32ビット版と64ビット版のバイナリがどちらも生成できるようになっているので、不要なgccをアンインストールして対処。
$ sudo pkgrm SMCgcc
OpenSSL0.9.8k
$ ./config
$ gmake
$ sudo gmake install
で、OpenSSLのインストール完了。
この64ビット版と32ビット版の違いというヤツがbindでハマルもとになるのですが。
BIND 9.6.0-P1
$ ./configure --prefix=/usr/local/bind
checking for OpenSSL library... using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include
checking whether linking with OpenSSL works... no
configure: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
でOpenSSLのライブラリが見つからないと言っているので、
crle(Linuxで言うldconfigのようなコマンド)でOpenSSLのライブラリを追加した。(まずここが間違っている・・・crleで設定するのはデフォルトでは32ビットのライブラリ検索パス)
$ crle
構成ファイル [バージョン 4]: /var/ld/ld.config
デフォルトライブラリパス (ELF): /lib:/usr/lib:/usr/local/ssl/lib
トラステッドディレクトリ (ELF): /lib/secure:/usr/lib/secure (システムデフォルト)
コマンド行:
crle -c /var/ld/ld.config -l /lib:/usr/lib:/usr/local/ssl/lib
そして再び実行。
BIND 9.6.0-P1
$ ./configure --prefix=/usr/local/bind
checking for OpenSSL library... using OpenSSL from /usr/local/ssl/lib and /usr/local/ssl/include
checking whether linking with OpenSSL works... no
configure: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
当たり前ですが、結果同じ。
crleじゃなくて、エラーメッセージ通りにLD_LIBRARY_PATHを設定しても
BIND 9.6.0-P1
$ export LD_LIBRARY_PATH=/usr/local/ssl/lib:/usr/local/lib:/usr/lib:/lib:
$ ./configure --prefix=/usr/local/bind
checking for OpenSSL library... using OpenSSL from /usr/local/ssl/lib and /usr/local/ssl/include
checking whether linking with OpenSSL works... no
configure: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
やっぱり結果同じ。
このままだらだら調べても時間の無駄なので、config.logを眺めてみる事に。めんどくさいですが。
| #include <openssl/err.h>
| int main() {
| ERR_clear_error();
| return (0);
| }
|
configure:6152: result: no
configure:6157: error: Could not run test program using OpenSSL from
/usr/local/ssl/lib and /usr/local/ssl/include.
Please check the argument to --with-openssl and your
shared library configuration (e.g., LD_LIBRARY_PATH).
やはりsslのライブラリが無いと言っている・・・。(当然 /usr/local/ssl/libを見るとライブラリはある)
ここまで来て、やっとBINDが32ビットでコンパイルされている事に気がついたのですが。
ライブラリの検索パスから、全部設定するのかぁ。。。
crleも-64を指定することで64ビットライブラリの検索パスが指定できるので。
$ crle -64
デフォルト構成ファイル(/var/ld/64/ld.config) が見つかりません
デフォルトライブラリパス (ELF): /lib/64:/usr/lib/64 (システムデフォルト)
トラステッドディレクトリ (ELF): /lib/secure/64:/usr/lib/secure/64 (システムデフォルト)
当然未設定なので、設定して。
$ sudo crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/local/ssl/lib
gccに64ビットのオプション(-m64)を追加してコンパイル。
BIND 9.6.0-P1
$ CFLAGS="-m64" ./configure --prefix=/usr/local/bind --enable-ipv6=no
$ gmake
$ sudo gmake install
結局、環境構築の問題だった訳ですが。
OpenSSLが64ビットでコンパイルされたって事は、他も全部そうしなきゃいけないって事で。実は大問題だったり・・・。
ちなみにSPARC機の場合はOpenSSLはデフォルトでは32ビットでコンパイルされるので、気を遣わなくて良いです。
64ビットでコンパイルする場合は逆に
$ ./Configure solaris64-sparcv9-gcc
と明示指定する必要があります。
いまさらですが、Solaris10 10/08のx86版を試してみました。
以前、Solaris9のx86版を触ったときの印象が悪く、何となく不安定という印象だったのですが、それなりに安定して使えそうな感じです。さすがにこのところx86に力を入れているからかなぁ・・・という印象です。
いきなりDVD起動で、「Configure Devices」表示のままで固まったのはびっくりしましたが、刺さってたSound Blaster Live!のボードを取り外すと何事も無かったかのように動きました。
ただ、見た目はSPARC版と異なります。 OpenFirmwareが無いし、ブートローダがGRUBと言うのもあって、かなりLinuxっぽい雰囲気です。Xが上がってしまえばいつものSolarisなんですが。
ちょっと驚いたのが、コンパイルの速いこと。OpenSSLとかBindとか適当にコンパイルしてみたんですが、とにかく速い。
Pentium4 3GHzのマシンですから、Intelとしてはそれほど速くはないプロセッサなんですが、普段使っているUltraSPARC IIIiの1.5GHz×2と比較しても速く感じます。(UltraSPARC IIiの400MHzと比較すると雲泥の差です・・・) Solaris10のJava Desktopになってかなりもっさりというか遅く感じていたのですが、これなら全然気にならないです。
逆にちょっと面倒だなと思ったのが、ビデオカードの設定。最近のLinuxがかなり自動で色々設定してくれる事と比較すると、数年前のLinuxという感じ。この辺り、もうちょっと使い勝手が良くなればなぁと。
(Xsunを使う場合はkdmconfig、Xorgを使う場合はXorgcfgを使うかxorg.confを手で弄るか)
回線が細いせいもあってSolaris10のダウンロード、時間掛かりました。・・・と、ここで問題が・・・我が家のSPARCマシンはDVDドライブが装備されていなかったのです。いや実際にはDVDが付いてると思いこんでいたのですが。。CD-ROM版でダウンロードし直す事を考えると、相当面倒です。
・・・諦めてDVD-ROMドライブ買ってきたほうがはやいですか?
そこそこ新しいSPARCマシンの中古(Blade1000とか)はまだそれなりのお値段だし、マシン買い換えまは躊躇してしまいます。
個人的にはSolaris好きなんですけど、Intelマシン買って、LinuxかBSD使った方が金銭的にも楽な気がしてきました。低消費電力のサーバなんてかなり気になるところです。こんなのとか非常に面白そうです。
PentiumM 2GHz程度でもSPARC 1GHz程度の能力は発揮できそうです。(ちなみに、コンパイル時間とか比較すると、全然Intelの方が速いです。)
現状Solarisで動作する商用ウイルススキャンとしては、Sophosしか選択肢が無い。
リアルタイムスキャンも出来ない。
以前はTrend MicroのInter Scan Virus WALLという製品もあったのだが、InterScan がEnterpriseになった時点で、ローカルディスクへのスキャン機能がカットされてしまい、今はSophosのみという悲しい状況。Trend MicroかMcAfeeあたりの大手でSolaris用のウイルス対策ソフトだして欲しいですけど・・・。
そう言えば、MAC用のウイルススキャンに関しても寂しい状況。
またSolarisなんですけど、sarのレポートから、「報告用のレポート」を作成する必要があって、sarの出力結果をPerlに食わせて、CSVかHTMLに出力させることを考えた。
@buf = `LANG=C sar -f $sa_path/$filename`;
foreach (@buf) {
chomp($_);
next if($_ =~ /^$/);
$_ =~ s/\t+/ /g;
$_ =~ s/\s+/ /g;
@list = split(/ /, $_ );
next if(($list[1]+$list[2]+$list[3]+$list[4]) == 0);
next unless($list[0] =~ /[012][0-9]:[0-5][0-9]:[0-5][0-9]/);
$time = $list[0];
$usr = $list[1];
$sys = $list[2];
$wio = $list[3];
$idle = $list[4];
処理
}
とりあえず、sarの出力結果の内、頭4行と最終行は不要。
1行目:空行
2行目:「OS名 ホスト名 OSバージョン カーネルバージョン アーキテクチャ 日付」
3行目:空行
4行目:「時間 %usr %sys %wio %idle」
最終行:「Average 平均値」
headとlastを使って抜き出そうかとも思ったんですが、結局if/unlessで判断することに。もっと適切な方法もありそうなんですが...。
Solaris9上でWebmailとWebDAVをApache2.0系で構築するメモ
今日Apacheのバージョンアップを実施した時、以前書いたメモが見つかったので転記。
1. WebMailサーバの構築2
1.1. PHP-4.4.2RC2+WebDAVが利用可能なApache2.0.55環境の構築
1.1.1. Apache-2.0.55のコンパイル
$ ./configure \
--prefix=/usr/local/httpd \
--enable-module=all \
--enable-http=yes \
--enable-dav=yes \
--enable-ssl \
--enable-shared=yes \
--enable-so
$ make
# sudo make install
1.1.2. PHP-4.4.2RC2のコンパイル
$ ./configure \
--with-apxs2=/usr/local/httpd/bin/apxs \
--enable-mbstring
$ make
# sudo make install
1.1.3. httpd.confの編集
(ア) LoadModuleセクションに以下を追記する。
LoadModule dav_module libexec/libdav.c
LoadModule php4_module libexec/libphp4.c
(イ) AddModuleセクションに以下を追記する。
AddModule mod_dav.c
AddModule mod_php4.c
(ウ) IfModule mod_dir.cセクションにindex.phpを追加する
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
(エ) WebDAVがMacOSXやWindowsで誤動作するので、以下を追記
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
# for MacOS Protection
<Files ~ "^\.[Hh][Tt]">
Order allow,deny
Deny from all
Satisfy All
</Files>
<Files ~ "^\.[Dd][Ss]_[Ss]">
Order allow,deny
Deny from all
Satisfy All
</Files>
<Files "rsrc">
Order allow,deny Deny from all
Satisfy All
</Files>
<DirectoryMatch ".*?.?.namedfork">
Order allow,deny
Deny from all
Satisfy All
</DirectoryMatch>
(オ) WebDAVの設定を追加する
# WebDAV Configuration
DAVLockDB /usr/local/apache/var/DAVLock
DAVMinTimeout 600
Alias /dav /export/home2
<Directory /export/home2>
DAV On
AllowOverride AuthConfig Limit
Options None
</Directory>
<Location />
Header add MS-Author-Via "DAV"
</Location>
# mod_encording Configuration
LoadModule encoding_module libexec/mod_encoding.so
<IFModule mod_encoding.c>
EncodingEngine on
SetServerEncoding UTF-8
AddClientEncoding SJIS "Microsoft .* DAV"
AddClientEncoding SJIS "xdwin9x/"
AddClientEncoding EUC-JP "cadaver/"
AddClientEncoding "Goliath/" UTF-8
AddClientEncoding "WebDAVFS/" UTF-8
</IFModule>
(カ) PHPを実行できるするようにする
# feature
#
#AddHandler send-as-is asis
#
# If you wish to use server-parsed imagemap files, use
#
#AddHandler imap-file map
#
# To enable type maps, you might want to use
#
#AddHandler type-map var
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
1.2. SquirrelMail1.4.5のインストール
1.2.1. SquirrelMail1.4.5をApacheのhtdocsフォルダに解凍する。
1.2.2. SquirrelMailパッチをApacheのhtdocsフォルダに解凍する。
1.2.3. ./configureを実行して設定を行う。
これだけ。
簡単だけど、Apacheのconfigureだけが面倒くさい。
今更のネタですが、覚え書き。
まずvfstabのOPTION欄にrqを追加します。
ファイルシステムにquotaを有効にする設定です。
/dev/md/dsk/d6 /dev/md/rdsk/d6 /export/home ufs 2 yes logging,rq
quotaファイルを作成し、ファイルシステムのルート(上記の例では/export/home)に置きます。
# touch /export/home/quotas
# chmod 600 /export/home/quotas
# quotacheck -a
次にquotaを有効にします。再起動でも良いですが。
# quotaon -a
ユーザuser001にquotaを設定します。
user001に対してSoftQuota 9M、HardQuota10Mに設定します。
# edquota user000
fs /export blocks (soft = 9000, hard = 10000) inodes (soft = 0, hard = 0)
user002に対して、user001と同じ設定を適用するには、
# edquota -p user001 user002
quotaの設定状況を一覧表示します。
# repquota -a
quota設定変更後は再度quotacheckを実行します。
# quotacheck -a
サーバのディスクの残りも少なくなってきたのでディスクの引っ越しをした。
メールとか、ログとかも結構溜まるし、やっぱりディスクは大きい方がいい。
ちなみにIDEディスクの場合、OBPのバージョンによってディスクの大きさに制限があるので、交換時は注意する。
やっと構築できた。
何て言うか、普段やり慣れていない事だったので面倒だった
バージョン指定が無ければ
sunfreeware.comからpkgを落としてきて
pkgadd -d apache で終わりだからね。
ま、そういうわけで
GCCを使って、64ビットでコンパイルできない
OpenSSL0.9.7eだったりする訳ですが。
なんとかgcc+gmakeでコンパイル完了させてやりたいぞ。
./Configure solaris64-sparcv9-gcc
gmake
エラーです。
・・・・・
Solaris9-Sparc環境で
Apache 1.3.31 + mod_ssl 2.8.19 + openssl 0.9.7dの
インストールがうまくいかなくって、ここ数日はまり気味。
幸いにも自宅にもUltra10があるので(^^;;
今日も休日返上してお勉強。
色々やってみたけど結局ダメだったので
一旦 元に戻す意味で
gcc-3.3.2
make-3.80
autoconf-2.59
automake-1.9
flex-2.5.31
expat1.95.5
m4-1.4.2
mm-1.1.3
を全てアンインストールした。
で、OS添付CDから再度GCCとか、インストールした。
で何とGCC-2.95でがんばってみたんだけど、NGというか
openssl-0.9.7eの時点で32ビットでコンパイルされてしまう・・・
当然か。
GCC3.1以降だもんな。Solarisの64ビット環境をサポートしたのって。
GCCを最新の3.4.2にして再トライ。
やっぱりダメだぁ。
** 標準のmakeはNGってことと(→gmake)、64ビットコンパイルに
問題があるって事が判った。
GCC2.95に戻してフル32ビット環境で再トライっす。
今度は64ビットにはこだわらないぞ。。
うまくいった〜〜〜
GCC2.95が肝なんだぁ。。
どうやったらSolaris9-Sparc(64ビット環境ね)で
GCC3系使ってコンパイルできるのかなぁ。
やっぱForteじゃなくって、え〜っと何だっけ?開発環境。
あれ買えって事なのかなぁ。
いやSolaris9(2004/2Q)の話だったりしますけど
DiskSuiteって使いにくくないですか?
あれだったら、vmvmとかの方が楽じゃないです??
SMC集中管理状態ってのも・・・。
って仕事の愚痴です。
余談ですが、3台構成のRAID1っていうのは、かなり勿体ない気がしますが
どういうご判断なのでしょうか?
DAT72も接続されているのであれば、、ハードウェアRAIDは使わないのであれば
ディスク3台構成であれば、RAID1(2台)+RAID0(1台)という使い方で
RAID0をRAID1側のバックアップかもしくは、重要度の低いスライスに割り当てるのが
良いのではないでしょうか??