あくまで、対処療法てき備忘録集です。 誤った知識を述べている場合も多々考えられますので、鵜呑みにしないように。 あくまで対処と結果の事実集です。
マルコフ確率 記念わぴこ後日トライしてみようかな、と。自宅以外のPCには入れたんですが。
Sambaは、Unix系マシンをWin系のファイルサーバやプリントサーバにするソフトウェアです。 具体的にどういうことができるかというと、 WindowsマシンのエクスプローラからUNIXマシン上のファイルを透過的に扱うことができます。
2004.05.08
ダウンロード、展開、configure、make install。 この辺は、日本Sambaユーザー会のサイトを参照して下さい (Samba2.2 日本語版インストール)。
smb.confファイルを用意しなくてはなりません。 ソースのexamplesディレクトリ内にあるsmb.conf.defaultをコピーして、 configure時に指定したディレクトリへコピーしましょう。
# cp ./examples/smb.conf.default /etc/samba/smb.conf
[global]セクションにある項目を指定します。
workgroup | ワークグループ名 |
server string | 説明文 |
security | 共有時のセキュリティ |
encrypt passwords | パスワード暗号化の有無 |
securityの設定は、以下の用途に基づいて行います。
まず、パスワードでユーザー認証を行う場合です。 もしUNIXマシン上に存在するユーザー名を使うのなら、userを指定します。 逆にUNIXマシン上に存在しないユーザー名を使うのなら、shareを指定します。
パスワードなしのゲスト共有にする場合は、shareを指定します。
その他、serverやdomainという値も指定できますが、まだよく理解していません。
パスワード認証を行う場合は、encrypt passwordsの行のセミコロンを除いて下さい。 デフォルトでは無効になっているはずです。きちんと設定しないと、Win側から参照できないみたいです。
[private]セクションにある項目を設定します。 幾つか例が記述されているので、それに習えば大丈夫です。
[pokota_share] comment = Pokota Server Share Directory path = /usr/public valid users = bokupi public = no browsable = yes writable = yes
Samba用のアカウントを作成します。 システム上と同じユーザー名にして下さい。 smbpasswdの作成先は、privateDirで指定した場所にして下さい(smb.confと同じ場所?)。
# smbpasswd -a bokupi
smbpasswdで指定できるオプションです。
-a | 新規追加 |
-d | 無効化 |
-e | 有効化 |
-x | 削除 |
自動起動するように設定しましょう。
# /sbin/chkconfig smb on
Sambaを起動します。
# /sbin/service smb start
XSLT拡張関連モジュール(Expat,Sablotron)が必要になります。 インストールされていない場合は、先にインストールして下さい。
phpのサイトからソースコードをダウンロードします(ファイル名:php-4.3.6.tar.gz)。 インストールするOSはVineLinux2.6r1で、既にphp4.2.3がインストールされています。
まずはダウンロードしたファイルを展開して、展開したディレクトリ内に移動します。
$ tar zxvf php4.3.6.tar.gz $ cd php-4.3.6
続いてconfigureのオプションを設定します。 ここではコンパイル前に様々な内容を指定します。
./configure \ --prefix=/usr/local \ --enable-debugger \ --disable-debug \ --enable-inline-optimization \ --with-apxs=/usr/sbin/apxs \ --with-exec-dir=/usr/bin \ --enable-magic-quotes \ --enable-ftp \ --with-xml \ --enable-iconv \ --enable-mbregex \ --enable-mbstring \ --enable-zend-multibyte \ --with-pgsql \ --with-mysql=/usr/local/mysql \ --with-config-file-path=/etc \ --enable-xslt \ --with-xslt-sablot \
オプションの意味を幾つか説明します。
--prefix | インストールする場所 |
--with-config-file-path | php.iniを置く場所 |
--enable-xslt | xslt拡張関数を使う際に指定が必要 |
--with-xslt-sablot | xslt拡張関数を使う際に指定が必要 |
ExpatはXMLパーサです。
Expatのソースコードをダウンロードします(こちら)。 Expatのインストールは簡単です。まずダウンロードしたファイルを展開します。
$ tar zxvf expat-1.95.7.tar.gz $ cd expat-1.95.7
configureオプションを指定します。
$ ./configure --prefix=/usr/local
後はコンパイルしてインストールです。
$ make # make install
SablotronはXSLT解析エンジンです。 Sablotronの動作にはExpatが必要になりますので、事前にインストールして下さい(前節参照)。
Sbrotlonのソースコードをダウンロードします(こちら)。 ダウンロードしたファイルを展開します。
$ tar zxvf Sablot-1.0.1.tar.gz $ cd Sablot-1.0.1
configureオプションを指定します。 Expatの場所を指定してあげましょう。
$ ./configure --prefix=/usr/local\ --with-expat-prefix=/usr/local
後はコンパイルしてインストールです。
$ make # make install
NNでURLパラメータに空白を含めて、BadRequestを発生させました(Apache1.3.23では使えない。1.3.28はok)。 しかし、アクセスしたファイルと同階層のhtaccessファイルに書かれている、 独自ページへ遷移しません。
結構悩みましたが、そもそもリクエストが正しくない場合は、 実際にそのURLを見に行く前に弾かれるのではないのでしょうか?
404エラーは、実際にそのURLを叩いて存在しないことを確認、
403エラーは、実際にそのURLを見て、禁止されていることを確認、
500エラーは、実際にそのURLにあるスクリプト等を叩いて、実行中にエラーが発生。
そのため、htaccessファイルを見て、その設定を反映できるのでしょう。
逆に実際にURLを参照する前に弾かれるようなエラー、414の「長すぎるURI」などは、 htaccessでの設定は反映されないということです。 これらで独自ページを用意したい場合は、 apacheのhttpd.confに直接ErrorDocumentで指定すればよいみたいです。 場所はタグに囲まれていなければ、どこでもいいかと思います(Directoryの指定は無意味かと。階層別指定はムリ?)。 ただ、apacheが各種エラーをどのように処理しているか分からないので、 400エラーでもhtaccessを反映できるようなものが、あるかもしれません。