プログラム備忘録

あくまで、対処療法てき備忘録集です。 誤った知識を述べている場合も多々考えられますので、鵜呑みにしないように。 あくまで対処と結果の事実集です。

マルコフ確率 記念わぴこ

dhcpのインストール

後日トライしてみようかな、と。自宅以外のPCには入れたんですが。

Sambaのインストール

Sambaは、Unix系マシンをWin系のファイルサーバやプリントサーバにするソフトウェアです。 具体的にどういうことができるかというと、 WindowsマシンのエクスプローラからUNIXマシン上のファイルを透過的に扱うことができます。

インストール

2004.05.08

ダウンロード、展開、configure、make install。 この辺は、日本Sambaユーザー会のサイトを参照して下さい (Samba2.2 日本語版インストール)。

smb.confの設定

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用アカウントの作成

Samba用のアカウントを作成します。 システム上と同じユーザー名にして下さい。 smbpasswdの作成先は、privateDirで指定した場所にして下さい(smb.confと同じ場所?)。

# smbpasswd -a bokupi

smbpasswdで指定できるオプションです。

-a 新規追加
-d 無効化
-e 有効化
-x 削除

自動起動の設定

自動起動するように設定しましょう。

# /sbin/chkconfig smb on

起動

Sambaを起動します。

# /sbin/service smb start

phpでxslを処理するには

2004.05.08

XSLT拡張関連モジュール(Expat,Sablotron)が必要になります。 インストールされていない場合は、先にインストールして下さい。

phpのインストール

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拡張関数を使う際に指定が必要
※SablotronとExpatのインストールが必要

expatのインストール

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のインストール

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

400エラーがhtaccessの独自ページに遷移しない

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を反映できるようなものが、あるかもしれません。


トップへ戻る