openldap + samba ドメイン Windows7 のログインが遅い [samba]
結構はまった。日本語のサイトには解決策は見つけられなかった。
環境は、CentOS5.6 + samba3x パッケージ(ver 3.5.4)
ユーザ名・パスワード入力後の動作をwiresharkでパケットキャプチャをしてみると、
samba(PDC)に対しIPC$へのアクセスや、netlogon共有に対するアクセスをしきりに
行っている。30秒経過したくらいでやっとログインの認証パケットが飛んでくる。
何じゃこりゃ??(と心の声)
解決策がなかなか見つからない。そもそもWindows7はNTドメイン非対応。
sambaドメインも非サポート。やっぱりやっている人が少ないのですねきっと。
ちなみに今回の構成は、移動プロファイルは使わない構成です。
移動プロファイルを使い、ホームディレクトリの共有や、netlogon共有が有効に
なっている環境では遅延は発生するのかな?
時間が無くて試せてません。
※知っている方教えて下さい。
本題の解決(回避)策です。
Windows7の「ローカルグループポリシー」の設定で回避する事が可能でした。
※設定変更は、ドメインの管理者アカウントでも、ローカルの管理者アカウントの
どちらでもOKです。
1.「プログラムとファイルの検索」に、「gpedit.msc」を入力し「Enter」
「ローカルグループポリシーエディター」が起動します。
2.「コンピューターの構成」→「管理用テンプレート」→「システム」→
「ユーザープロファイル」とたどって行く。
3. 一番下に「ユーザーに移動ユーザープロファイルまたはリモートホームディレクトリ
がある場合にネットワークの最大待機時間を設定する」
という項目が有るので、それをダブルクリッック。
4. 「未構成」から「有効」に変更。「オプション」の
「最大時間(秒)ネットワークを待機する」を「0秒」に変更。
以上で完了です。
ドメインユーザーでログインしてみて下さい。すぐにログイン出来るようになっているはずです。
やはり移動プロファイルなどが影響しているのでしょうかね。netlogon共有の処理がうまく出来ていないような気もします。
環境は、CentOS5.6 + samba3x パッケージ(ver 3.5.4)
ユーザ名・パスワード入力後の動作をwiresharkでパケットキャプチャをしてみると、
samba(PDC)に対しIPC$へのアクセスや、netlogon共有に対するアクセスをしきりに
行っている。30秒経過したくらいでやっとログインの認証パケットが飛んでくる。
何じゃこりゃ??(と心の声)
解決策がなかなか見つからない。そもそもWindows7はNTドメイン非対応。
sambaドメインも非サポート。やっぱりやっている人が少ないのですねきっと。
ちなみに今回の構成は、移動プロファイルは使わない構成です。
移動プロファイルを使い、ホームディレクトリの共有や、netlogon共有が有効に
なっている環境では遅延は発生するのかな?
時間が無くて試せてません。
※知っている方教えて下さい。
本題の解決(回避)策です。
Windows7の「ローカルグループポリシー」の設定で回避する事が可能でした。
※設定変更は、ドメインの管理者アカウントでも、ローカルの管理者アカウントの
どちらでもOKです。
1.「プログラムとファイルの検索」に、「gpedit.msc」を入力し「Enter」
「ローカルグループポリシーエディター」が起動します。
2.「コンピューターの構成」→「管理用テンプレート」→「システム」→
「ユーザープロファイル」とたどって行く。
3. 一番下に「ユーザーに移動ユーザープロファイルまたはリモートホームディレクトリ
がある場合にネットワークの最大待機時間を設定する」
という項目が有るので、それをダブルクリッック。
4. 「未構成」から「有効」に変更。「オプション」の
「最大時間(秒)ネットワークを待機する」を「0秒」に変更。
以上で完了です。
ドメインユーザーでログインしてみて下さい。すぐにログイン出来るようになっているはずです。
やはり移動プロファイルなどが影響しているのでしょうかね。netlogon共有の処理がうまく出来ていないような気もします。
SMTP AUTH 簡易テストスクリプトを更新。ちょっとだけマイナージェンジ。 [SMTP-AUTH]
SMTP AUTH 簡易テストスクリプトを更新しました。 [SMTP-AUTH]
久しぶりになってしまいました。
以前作った、SMTP AUTH 簡易テストスクリプトを更新しました。
新たに、opensslコマンドを使用して STARTTLS、SMTP over SSLに
対応させました。PLAIN、LOGINを使う場合は必須なので。
下記URLに置いてあります。
http://www006.upp.so-net.ne.jp/akab/smtpauth_script/smtpauth.0.8.0
opensslコマンドは、標準出力と標準エラー出力がtelnetととは違うため
結構面倒でした。なので無くても問題ないエラーチェック部分を削りました。
とりあえずこれで一区切り。(他のメカニズムに対応させたい気もしますが)
今は、VB.NETを使用して、Windows上からチェック出来るツールを作ってます。
こんな感じ。
もう少しで出来上がります。
以前作った、SMTP AUTH 簡易テストスクリプトを更新しました。
新たに、opensslコマンドを使用して STARTTLS、SMTP over SSLに
対応させました。PLAIN、LOGINを使う場合は必須なので。
下記URLに置いてあります。
http://www006.upp.so-net.ne.jp/akab/smtpauth_script/smtpauth.0.8.0
opensslコマンドは、標準出力と標準エラー出力がtelnetととは違うため
結構面倒でした。なので無くても問題ないエラーチェック部分を削りました。
とりあえずこれで一区切り。(他のメカニズムに対応させたい気もしますが)
今は、VB.NETを使用して、Windows上からチェック出来るツールを作ってます。
こんな感じ。
もう少しで出来上がります。
checkinstall を RHEL 5.4 x86_64 で使ってみた。 [checkinstall]
checkinstall という便利なものがある事を知って早速試してみました。
http://www.asic-linux.com.mx/~izto/checkinstall/
RHEL のリポジトリにはあるのかな~
# yum install checkinstall
無いっすね。。。
Downloadページを見たら、rpmパッケージが無い。
chekinstall自体はsourceから入れないとだめなのか~と、思っていたところ
とても参考になるページが。
http://okatanainfo.web.fc2.com/checkinstall/checkinstall.html
source からインストールした後、checkinstall自体のrpmをcheckinstallコマンドで作成して、
rpm から、再インストールすれば良いということですね。 すばらしい!
うりゃー
ERROR: ld.so: object '/usr/local/lib64/installwatch.so' from LD_PRELOAD cannot be preloaded: ignored.
ぶ!!
64bit 環境のパスにインストールされてないって事のようね。
なのでシンボリックリンクを作成。
ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so
ドキュメントが色々インストールされるので --nodoc オプションをつけました。
いいなーこれ。
http://www.asic-linux.com.mx/~izto/checkinstall/
RHEL のリポジトリにはあるのかな~
# yum install checkinstall
無いっすね。。。
Downloadページを見たら、rpmパッケージが無い。
chekinstall自体はsourceから入れないとだめなのか~と、思っていたところ
とても参考になるページが。
http://okatanainfo.web.fc2.com/checkinstall/checkinstall.html
source からインストールした後、checkinstall自体のrpmをcheckinstallコマンドで作成して、
rpm から、再インストールすれば良いということですね。 すばらしい!
うりゃー
ERROR: ld.so: object '/usr/local/lib64/installwatch.so' from LD_PRELOAD cannot be preloaded: ignored.
ぶ!!
64bit 環境のパスにインストールされてないって事のようね。
なのでシンボリックリンクを作成。
ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so
ドキュメントが色々インストールされるので --nodoc オプションをつけました。
いいなーこれ。
Apache 2.2.17 のsource から rpmbuild を使って パッケージを作成。 [apache 2.2]
sourceからインストールしたApacheをパッケージにして保存しておきたかったので
rpmbuild コマンドを使ってみたっす。
今までの知識では、src.rpm から作り直す事しか知らなかったのですが、オリジナルの
source から作れるということで、ちょっと食いつきました。
rpmbuild のオプションで -ta, -tb というものがある事を知った。
今回、src.rpmは必要ないので、 -tbオプションを使います。
テストとして、ダウンロードしてきたそのまんまのsourceを試してみることにした。
httpd-2.2.17.tar.bz2 を /usr/src/redhat/SOURCES/ にアップ。
移動。
------------------------------------------------------------------------
# cd /usr/src/redhat/SOURCES/
------------------------------------------------------------------------
早速実行。
------------------------------------------------------------------------
# rpmbuild -tb httpd-2.2.17.tar.bz2
エラー: ファイル /usr/src/redhat/SOURCES/src/httpd-2.2.17.tar.gz: そのようなファイルやディレクトリはありません
------------------------------------------------------------------------
へぇ??
原因判明。source を展開したときに出来る、httpd-2.2.17/httpd.spec に書いてある
これか!
------------------------------------------------------------------------
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
------------------------------------------------------------------------
面倒だけど、解凍 & 圧縮やり直し。 ファイル名を httpd-2.2.17.tar.gz にしてリトライ!
すると、
------------------------------------------------------------------------
checking whether Distcache is required... yes (specified)
checking distcache/dc_client.h usability... no
checking distcache/dc_client.h presence... no
checking for distcache/dc_client.h... no
configure: error: distcache support failed: can't include distcache headers
エラー: /var/tmp/rpm-tmp.23669 の不正な終了ステータス (%build)
RPM ビルドエラー:
/var/tmp/rpm-tmp.23669 の不正な終了ステータス (%build)
------------------------------------------------------------------------
distcache を include 出来ないといってる。 へぇ~ こんなのが必要なんだ。
distcache パッケージ関連を追加しましょ。 そしてリトライ。
------------------------------------------------------------------------
・
・
・
伸張ファイルの検査中: /usr/lib/rpm/check-files /var/tmp/httpd-2.2.17-1-root
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-devel-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-manual-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/mod_ssl-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-debuginfo-2.2.17-1.x86_64.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.20526
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd httpd-2.2.17
+ rm -rf /var/tmp/httpd-2.2.17-1-root
+ exit 0
------------------------------------------------------------------------
おーっと! さっくり終了。 こんなに簡単なのかい!
/usr/src/redhat/RPMS/x86_64/ 配下を見てみると、ご丁寧に複数のパッケージに
分けて作成されてます。
こんな感じ。
------------------------------------------------------------------------
# ls /usr/src/redhat/RPMS/x86_64/
httpd-2.2.17-1.x86_64.rpm
httpd-debuginfo-2.2.17-1.x86_64.rpm
httpd-devel-2.2.17-1.x86_64.rpm
httpd-manual-2.2.17-1.x86_64.rpm
mod_ssl-2.2.17-1.x86_64.rpm
------------------------------------------------------------------------
うまくいったので、本番をやりましょ。
configure , make , make install を実行した httpd-devel-2.2.17 ディレクトリを
tar.gz で固めて/usr/src/redhat/SOURCES/に配置。
さぁ実行!
------------------------------------------------------------------------
# rpmbuild -tb httpd-2.2.17.tar.gz
・
・
・
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:35:23: error: test_char.h: No such file or directory
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c: In function 'log_escape':
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: 'test_char_table' undeclared (first use in this function)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: (Each undeclared identifier is reported only once
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: for each function it appears in.)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: 'T_ESCAPE_FORENSIC' undeclared (first use in this function)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c: In function 'count_string':
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:154: error: 'test_char_table' undeclared (first use in this function)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:154: error: 'T_ESCAPE_FORENSIC' undeclared (first use in this function)
make[4]: *** [mod_log_forensic.slo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork/modules/loggers'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork/modules/loggers'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork'
make: *** [all-recursive] Error 1
エラー: /var/tmp/rpm-tmp.11443 の不正な終了ステータス (%build)
RPM ビルドエラー:
/var/tmp/rpm-tmp.11443 の不正な終了ステータス (%build)
------------------------------------------------------------------------
ぶっ! 怒られた。
意味は分かんないけど、make してるからかな? と、システムエンジニアの勘が
そう感じたので一度 make clean してやり直してみる。
うりゃ~ とリトライしたら、またもやさっくり成功~~
便利だ~
内容確認。
------------------------------------------------------------------------
# rpm -qlp httpd-2.2.17-1.x86_64.rpm
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf/extra/httpd-autoindex.conf
・
・
・
------------------------------------------------------------------------
おや、/usr/local/apache2 じゃないっすね。
いくらSE経験が長いとはいえ、未経験分野の無知度というのは恐ろしい。。
SPECファイルの内容にしたがってrpm を作成しているということを知らなかった。
という事で、ApacheのSPECファイル、http.specを編集して configureオプションと同様に
インストール出来るSPECファイルの作成に挑戦l。
かなり苦戦です。かなりいいところまでは行ったのですが、Try & Error でかなりくたびれました。
挫折しかけているときに、checkinstall というアプリを発見! こんなのがほしかった。
まさにこれじゃ!
インストールして確認してみよっと。
という事で、SPECファイルで何とかするのは一旦諦めることにしました。
でもSPECファイルの書き方はいい勉強になりました。
rpmbuild コマンドを使ってみたっす。
今までの知識では、src.rpm から作り直す事しか知らなかったのですが、オリジナルの
source から作れるということで、ちょっと食いつきました。
rpmbuild のオプションで -ta, -tb というものがある事を知った。
今回、src.rpmは必要ないので、 -tbオプションを使います。
テストとして、ダウンロードしてきたそのまんまのsourceを試してみることにした。
httpd-2.2.17.tar.bz2 を /usr/src/redhat/SOURCES/ にアップ。
移動。
------------------------------------------------------------------------
# cd /usr/src/redhat/SOURCES/
------------------------------------------------------------------------
早速実行。
------------------------------------------------------------------------
# rpmbuild -tb httpd-2.2.17.tar.bz2
エラー: ファイル /usr/src/redhat/SOURCES/src/httpd-2.2.17.tar.gz: そのようなファイルやディレクトリはありません
------------------------------------------------------------------------
へぇ??
原因判明。source を展開したときに出来る、httpd-2.2.17/httpd.spec に書いてある
これか!
------------------------------------------------------------------------
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
------------------------------------------------------------------------
面倒だけど、解凍 & 圧縮やり直し。 ファイル名を httpd-2.2.17.tar.gz にしてリトライ!
すると、
------------------------------------------------------------------------
checking whether Distcache is required... yes (specified)
checking distcache/dc_client.h usability... no
checking distcache/dc_client.h presence... no
checking for distcache/dc_client.h... no
configure: error: distcache support failed: can't include distcache headers
エラー: /var/tmp/rpm-tmp.23669 の不正な終了ステータス (%build)
RPM ビルドエラー:
/var/tmp/rpm-tmp.23669 の不正な終了ステータス (%build)
------------------------------------------------------------------------
distcache を include 出来ないといってる。 へぇ~ こんなのが必要なんだ。
distcache パッケージ関連を追加しましょ。 そしてリトライ。
------------------------------------------------------------------------
・
・
・
伸張ファイルの検査中: /usr/lib/rpm/check-files /var/tmp/httpd-2.2.17-1-root
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-devel-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-manual-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/mod_ssl-2.2.17-1.x86_64.rpm
書き込み完了: /usr/src/redhat/RPMS/x86_64/httpd-debuginfo-2.2.17-1.x86_64.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.20526
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd httpd-2.2.17
+ rm -rf /var/tmp/httpd-2.2.17-1-root
+ exit 0
------------------------------------------------------------------------
おーっと! さっくり終了。 こんなに簡単なのかい!
/usr/src/redhat/RPMS/x86_64/ 配下を見てみると、ご丁寧に複数のパッケージに
分けて作成されてます。
こんな感じ。
------------------------------------------------------------------------
# ls /usr/src/redhat/RPMS/x86_64/
httpd-2.2.17-1.x86_64.rpm
httpd-debuginfo-2.2.17-1.x86_64.rpm
httpd-devel-2.2.17-1.x86_64.rpm
httpd-manual-2.2.17-1.x86_64.rpm
mod_ssl-2.2.17-1.x86_64.rpm
------------------------------------------------------------------------
うまくいったので、本番をやりましょ。
configure , make , make install を実行した httpd-devel-2.2.17 ディレクトリを
tar.gz で固めて/usr/src/redhat/SOURCES/に配置。
さぁ実行!
------------------------------------------------------------------------
# rpmbuild -tb httpd-2.2.17.tar.gz
・
・
・
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:35:23: error: test_char.h: No such file or directory
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c: In function 'log_escape':
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: 'test_char_table' undeclared (first use in this function)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: (Each undeclared identifier is reported only once
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: for each function it appears in.)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:126: error: 'T_ESCAPE_FORENSIC' undeclared (first use in this function)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c: In function 'count_string':
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:154: error: 'test_char_table' undeclared (first use in this function)
/usr/src/redhat/BUILD/httpd-2.2.17/modules/loggers/mod_log_forensic.c:154: error: 'T_ESCAPE_FORENSIC' undeclared (first use in this function)
make[4]: *** [mod_log_forensic.slo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork/modules/loggers'
make[3]: *** [shared-build-recursive] Error 1
make[3]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork/modules/loggers'
make[2]: *** [shared-build-recursive] Error 1
make[2]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork/modules'
make[1]: *** [shared-build-recursive] Error 1
make[1]: Leaving directory `/usr/src/redhat/BUILD/httpd-2.2.17/prefork'
make: *** [all-recursive] Error 1
エラー: /var/tmp/rpm-tmp.11443 の不正な終了ステータス (%build)
RPM ビルドエラー:
/var/tmp/rpm-tmp.11443 の不正な終了ステータス (%build)
------------------------------------------------------------------------
ぶっ! 怒られた。
意味は分かんないけど、make してるからかな? と、システムエンジニアの勘が
そう感じたので一度 make clean してやり直してみる。
うりゃ~ とリトライしたら、またもやさっくり成功~~
便利だ~
内容確認。
------------------------------------------------------------------------
# rpm -qlp httpd-2.2.17-1.x86_64.rpm
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf/extra/httpd-autoindex.conf
・
・
・
------------------------------------------------------------------------
おや、/usr/local/apache2 じゃないっすね。
いくらSE経験が長いとはいえ、未経験分野の無知度というのは恐ろしい。。
SPECファイルの内容にしたがってrpm を作成しているということを知らなかった。
という事で、ApacheのSPECファイル、http.specを編集して configureオプションと同様に
インストール出来るSPECファイルの作成に挑戦l。
かなり苦戦です。かなりいいところまでは行ったのですが、Try & Error でかなりくたびれました。
挫折しかけているときに、checkinstall というアプリを発見! こんなのがほしかった。
まさにこれじゃ!
インストールして確認してみよっと。
という事で、SPECファイルで何とかするのは一旦諦めることにしました。
でもSPECファイルの書き方はいい勉強になりました。
Apache で動的にモジュールを追加してみた。 [apache 2.2]
忘れるのでメモメモ。
httpd-2.2.17をビルドしたときに、デフォルトで server-info が組み込まれていなかったので追加しました。
追加するのは、mod_info なので、
# /usr/local/apache2/bin/apxs -i -a -c modules/generators/mod_info.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o modules/generators/mod_info.lo modules/generators/mod_info.c && touch modules/generators/mod_info.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o modules/generators/mod_info.la -rpath /usr/local/apache2/modules -module -avoid-version modules/generators/mod_info.lo
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' modules/generators/mod_info.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp modules/generators/mod_info.la /usr/local/apache2/modules/
cp modules/generators/.libs/mod_info.so /usr/local/apache2/modules/mod_info.so
cp modules/generators/.libs/mod_info.lai /usr/local/apache2/modules/mod_info.la
cp modules/generators/.libs/mod_info.a /usr/local/apache2/modules/mod_info.a
chmod 644 /usr/local/apache2/modules/mod_info.a
ranlib /usr/local/apache2/modules/mod_info.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apache2/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_info.so
[activating module `info' in /usr/local/apache2/conf/httpd.conf]
自動で httpd.conf に下記の行が追加される。
LoadModule info_module modules/mod_info.so
次は /usr/local/apache2/conf/extra/httpd-info.conf を編集。
<Location /server-info> の Allow from 行に許可ホストを追加。
apacehe をリスタート。
httpd-2.2.17をビルドしたときに、デフォルトで server-info が組み込まれていなかったので追加しました。
追加するのは、mod_info なので、
# /usr/local/apache2/bin/apxs -i -a -c modules/generators/mod_info.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apache2/include -I/usr/local/apache2/include -c -o modules/generators/mod_info.lo modules/generators/mod_info.c && touch modules/generators/mod_info.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o modules/generators/mod_info.la -rpath /usr/local/apache2/modules -module -avoid-version modules/generators/mod_info.lo
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' modules/generators/mod_info.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp modules/generators/mod_info.la /usr/local/apache2/modules/
cp modules/generators/.libs/mod_info.so /usr/local/apache2/modules/mod_info.so
cp modules/generators/.libs/mod_info.lai /usr/local/apache2/modules/mod_info.la
cp modules/generators/.libs/mod_info.a /usr/local/apache2/modules/mod_info.a
chmod 644 /usr/local/apache2/modules/mod_info.a
ranlib /usr/local/apache2/modules/mod_info.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apache2/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_info.so
[activating module `info' in /usr/local/apache2/conf/httpd.conf]
自動で httpd.conf に下記の行が追加される。
LoadModule info_module modules/mod_info.so
次は /usr/local/apache2/conf/extra/httpd-info.conf を編集。
<Location /server-info> の Allow from 行に許可ホストを追加。
apacehe をリスタート。
Apacheの起動スクリプト [apache 2.2]
うーん。知らなかった。
Apache 2.2 のSourceのこんな所にLinux用の起動スクリプトが入っていたとは。
どっかから移植してくる必要なんてなかったのね。。orz
httpd-2.2.17/build/rpm/httpd.init
これを /etc/rc.d/init.d/ へ httpd にリネームしてコピー。
環境に合わせて修正して、chkconfig --add httpd
次からは少し楽が出来そうですな。
ちなみに他のUnix系用は無いのか?と思いあさったけど無い。。。
Apacheのドキュメント見たら
「apachectl スクリプトは通常は、標準的な SysV init スクリプトとして動作するように設計されています。 」
「ですから、通常は単に適切な init ディレクトリ内から apachectl へリンクすることができます。」
との事。
今まで邪道だと思ってました。
ドキュメントに書いてあってもなんか実際にやるのは戸惑ってしまう。
色々なWebや本を散々見たけどただ単にリンクを張るなんて見たこと無かったなぁ。。
じゃぁ、apachectlは何のためにあるんじゃい!!って突っ込みが聞こえてきそうじゃ。
Apache 2.2 のSourceのこんな所にLinux用の起動スクリプトが入っていたとは。
どっかから移植してくる必要なんてなかったのね。。orz
httpd-2.2.17/build/rpm/httpd.init
これを /etc/rc.d/init.d/ へ httpd にリネームしてコピー。
環境に合わせて修正して、chkconfig --add httpd
次からは少し楽が出来そうですな。
ちなみに他のUnix系用は無いのか?と思いあさったけど無い。。。
Apacheのドキュメント見たら
「apachectl スクリプトは通常は、標準的な SysV init スクリプトとして動作するように設計されています。 」
「ですから、通常は単に適切な init ディレクトリ内から apachectl へリンクすることができます。」
との事。
今まで邪道だと思ってました。
ドキュメントに書いてあってもなんか実際にやるのは戸惑ってしまう。
色々なWebや本を散々見たけどただ単にリンクを張るなんて見たこと無かったなぁ。。
じゃぁ、apachectlは何のためにあるんじゃい!!って突っ込みが聞こえてきそうじゃ。
我が息子 もうすぐ1歳 ゼンさんの冬のある日 [猫]
昨年の4月我が家にやってきた猫ちゃん。ゼンマイくん。オス。
シッポの先が 、「Z」の形に曲がってます。そのせいでシッポの先だけ毛がフッサ〜
見た目がゼンマイの様です。
我が家では「ゼンさん」とよばれてます。
そんなゼンさん、こんな感じで寝ます。
まぶしいならこたつに入ればいいのにと思ったのでした。
人気ブログランキングへ
シッポの先が 、「Z」の形に曲がってます。そのせいでシッポの先だけ毛がフッサ〜
見た目がゼンマイの様です。
我が家では「ゼンさん」とよばれてます。
そんなゼンさん、こんな感じで寝ます。
まぶしいならこたつに入ればいいのにと思ったのでした。
人気ブログランキングへ
初めてperlをコンパイル。しかも古~い perl 5.005_4 On RHEL 5.4 [SE日記その他]
RHELならコンパイル楽でしょ、と またもなめてかかってました。
うまくいかね。。。
make たたいて直ぐエラー。まったく進みません。
make: *** `miniperlmain.o' に必要なターゲット `<built-in>' を make するルールがありません. 中止.
結構あちこち探したら、こんなページが。。
http://mity.blog85.fc2.com/blog-category-4.html
このページには解決方法が直接は書いていない。この方が参考にしたページへジャンプ〜
http://d.hatena.ne.jp/naablaa/searchdiary?word=miniperlmain.o
自分の環境は、最初のサイト同様 gccは4.2ではなく4.1系。なので
[ perl5.005_04]# gcc -E - < /dev/null
# 1 "<stdin>"
# 1 "<built-ingt;"
# 1 "<コマンドライン>"
# 1 "<stdin>"
当然結果も同じ。じゃ、どうやって解決しよう。。
gcc 4.2系の解決策を参考にして苦し紛れに、makedepend.SHを変更してみる。
--- makedepend.SH
$sed \
-e '/^#.*<stdin>/d' \
-e '/^#.*<builtin>/d' \
-e '/^#.*<built-in>/d' \
-e '/^#.*<command line>/d' \
-e '/^#.*<コマンドライン>/d' \
-e '/^#.*"-"/d' \
-e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
-e 's/^[ ]*#[ ]*line/#/' \
---
カタカナで「コマンドライン」って。^^;)
さぁ、Let's go 'make'
お〜っと〜 make 進んじゃった。
そして、make test
はは、同じだ。100% OK にはならなかった。どうすっぺなぁ〜。
自分家のテスト環境じゃなくて客先のシステムだし。。。
カタカナが妙にきになって、export LANG=C で、configure、make、
make test までリトライじゃ〜
そしたらなんと。100% 成功~~~~
-e '/^#.*<コマンドライン>/d' \
この行の追加も必要なかったのね。
SE続けて11年、perlをコンパイルしたのは初めてだし、LinuxでLANG=C
じゃないとうまくいかないなんて記憶にないなぁ。。
たまたま出くわさなかっただけか?
Solaris ではコンパイルにさんざん苦労したけど、Linux で苦労するとは。
ま、99% パッケージだし。
ここ数年、コンパイルのやり方覚えるよりアプリの熟知にウェイトをおいてたからな〜
Solarisも2年近くさわってないし。。。
Solaris11がリリースされたらまたモチベーションあがるかな。
良かった。とりあえずスケジュール押さなくて。
うまくいかね。。。
make たたいて直ぐエラー。まったく進みません。
make: *** `miniperlmain.o' に必要なターゲット `<built-in>' を make するルールがありません. 中止.
結構あちこち探したら、こんなページが。。
http://mity.blog85.fc2.com/blog-category-4.html
このページには解決方法が直接は書いていない。この方が参考にしたページへジャンプ〜
http://d.hatena.ne.jp/naablaa/searchdiary?word=miniperlmain.o
自分の環境は、最初のサイト同様 gccは4.2ではなく4.1系。なので
[ perl5.005_04]# gcc -E - < /dev/null
# 1 "<stdin>"
# 1 "<built-ingt;"
# 1 "<コマンドライン>"
# 1 "<stdin>"
当然結果も同じ。じゃ、どうやって解決しよう。。
gcc 4.2系の解決策を参考にして苦し紛れに、makedepend.SHを変更してみる。
--- makedepend.SH
$sed \
-e '/^#.*<stdin>/d' \
-e '/^#.*<builtin>/d' \
-e '/^#.*<built-in>/d' \
-e '/^#.*<command line>/d' \
-e '/^#.*<コマンドライン>/d' \
-e '/^#.*"-"/d' \
-e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
-e 's/^[ ]*#[ ]*line/#/' \
---
カタカナで「コマンドライン」って。^^;)
さぁ、Let's go 'make'
お〜っと〜 make 進んじゃった。
そして、make test
はは、同じだ。100% OK にはならなかった。どうすっぺなぁ〜。
自分家のテスト環境じゃなくて客先のシステムだし。。。
カタカナが妙にきになって、export LANG=C で、configure、make、
make test までリトライじゃ〜
そしたらなんと。100% 成功~~~~
-e '/^#.*<コマンドライン>/d' \
この行の追加も必要なかったのね。
SE続けて11年、perlをコンパイルしたのは初めてだし、LinuxでLANG=C
じゃないとうまくいかないなんて記憶にないなぁ。。
たまたま出くわさなかっただけか?
Solaris ではコンパイルにさんざん苦労したけど、Linux で苦労するとは。
ま、99% パッケージだし。
ここ数年、コンパイルのやり方覚えるよりアプリの熟知にウェイトをおいてたからな〜
Solarisも2年近くさわってないし。。。
Solaris11がリリースされたらまたモチベーションあがるかな。
良かった。とりあえずスケジュール押さなくて。
ミニマルPerl ―Unix/LinuxユーザのためのPerl習得法
- 作者: Tim Maher
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/06/21
- メディア: 大型本
かなり久しぶりにapache2.2をコンパイル。 On RHEL 5.4 [apache 2.2]
もう1年以上apacheのコンパイルなんてやってない上に、Linuxでコンパイルなんて、
Solarisに比べりゃ楽勝でしょ、と思ったらひどいもんでした。
configure で、--enable-ssl=shared 指定して、--enable-so と、--with-ssl 指定わすれて
httpd -M で、
invalid command 'sslpassphrasedialog'
怒られました。(T_T)
起動しようと思って、
apachectl startssl で、
そんなオプションサポートしてねーよ!!ってまた怒られた。
SSLの設定して、 apachectl start でよかったのね。
やばい、浦島状態だ。。。
Solarisに比べりゃ楽勝でしょ、と思ったらひどいもんでした。
configure で、--enable-ssl=shared 指定して、--enable-so と、--with-ssl 指定わすれて
httpd -M で、
invalid command 'sslpassphrasedialog'
怒られました。(T_T)
起動しようと思って、
apachectl startssl で、
そんなオプションサポートしてねーよ!!ってまた怒られた。
SSLの設定して、 apachectl start でよかったのね。
やばい、浦島状態だ。。。
Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集
- 作者: Ken Coar
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/09/26
- メディア: 大型本