BUG's Living Diary

Icon

蟲的生活日誌

當 LDAP Server 掛掉時

所有用到 nss_ldap 的 server 也跟著掛了… Orz

請修改 nss_ldap.conf 的下面設定

# Reconnect policy: hard (default) will retry connecting to
# the software with exponential backoff, soft will fail
# immediately.
#bind_policy hard
bind_policy soft

別懷疑… 改成 soft, 如果連不上就不連了
不然會卡在登入的狀態…不停的連

anyway
ldap 不能用, 還是有 local 的 account 能夠登入
—–

Filed under: 蟲的研究心得

Apache 2.2 + mod_jk + tomcat 5

話說 tomcat 沒辦法直接從 nss_ldap 抓到 user 的資料,
網路上有一招很管用的

<Listener className="org.apache.catalina.startup.UserConfig"
directoryName="public_html" userClass="org.apache.catalina.startup.PasswdUserDatabase"/>

可以抓使用者資料來做跟 apache http server 的使用者目錄一樣的功能 /~<使用者帳號>
但, 僅此於 /etc/passwd… nss_ldap 上的資料完全抓不到..哭

不過還好 tomcat 又提供了另一個方式, 就是直接去抓使用者目錄

<Listener className="org.apache.catalina.startup.UserConfig"
directoryName="public_html" homeBase="/home" userClass="org.apache.catalina.startup.HomesUserDatabase"/>

是可以運作了, 但好笑的事來了

在學校 server 使用者的 id 是
s + 學號
但目錄是這樣分的
/home/班級/學號

利用 apache 可以很順利的抓到 user 的 home dir 來透過 /~s + 學號 存取
但使用上述方式的 tomcat 笨的能用 /~ + 學號, ’s’ 不見了
(其實也不奇怪, 因為目錄上沒有 s 只有學號)

這樣會有什麼問題呢?, apache http server 上要執行 jsp 可以透過一個 module
叫 mod_jk 來連到 tomcat, 但如果 兩個 server 的路徑是不同的就會無法對映

在 apache 上執行 /~s1092137101/xxx.jsp 跑來 tomcat 上執行 => 沒有這個東西
因為就如剛講的, tomcat 只能用 /~ + 學號

沒辦法只好蠻幹了, 之前玩了一陣子的 rewrite 剛好能拿來用
一開始還不能用, 原來 rewrite 後的網址沒辦法直接給 jkMount 用
還好眼尖, 看到 document 上有 [PT] 這個東西…就是 Pass Through
把 rewrite 後的網址傳給下一個敘述,
那當然是要給 jkMount 啦!, ..成功了, 當然要好好記錄一翻

<IfModule mod_jk.c>
JkWorkersFile /usr/local/etc/apache22/workers.properties
JkLogFile logs/jk.log
JkLogLevel warn

# Sample JkMounts. Replace these with the paths you would
# like to mount from your JSP server.

<IfModule rewrite_module>
RewriteEngine on
RewriteRule ^/~[sm](.*)/(.*).jsp /~$1/$2.jsp [PT]
</IfModule>
JkMount /*.jsp jsp-host
JkMount /servlet/* jsp-host
JkMount /examples/* jsp-host
</IfModule>

其實在共用 php 及 jsp 的時候, 會有一個漏洞
就是用 tomcat 有辦法直接看到 php 的 source code,

由於 apache 已經自動把所有 jsp 檔都轉給 tomcat 執行
所以反之 “不” 亦然啦.. apache 沒辦法看到 jsp 的 source code

但這樣問題 就簡單了, 把 tomcat 對外的管道都封了, 只留下 mod_jk 用的
就大功告成啦!

—–

Filed under: 蟲的研究心得

FreeBSD 語系

/etc/csh.cshrc

# Support Chinese Big5
setenv LANG zh_TW.Big5
setenv LC_CTYPE en_US.ISO8859-1
setenv LC_ALL zh_TW.Big5

* LC_ALL 指定所有的 Locale
* LC_CTYPE 字元定義 (包含字元分類與轉換規則)
* LANG 語言顯示
* LC_MESSAGES 訊息顯示
* LC_TIME 時間格式
* LC_NUMERIC 數字格式
* LC_MONETARY 貨幣格式
* LC_COLLATE 字母順序與特殊字元比較

—–

Filed under: 蟲的研究心得

samba nt lm hash

之前在做 SAMBA PDC 與 LDAP 及 PHP 整合的時候有一個問題還麻煩的
就是當 PHP 的系統在更新使用者帳號密碼時
必須使用 SAMBA PDC 的加密模式分別產生 nthash 及 lmhash 才可以

samba 的指令本身是會自己產生, 但在 php 要更新就變的很麻煩
叫 php 去執行 samba 的指令 是個非常爛的方法,
而且php 主機跟架設 samba 的主機, 要是不同就沒輒了 可行性極低

後來發現了有了將這個 hash 產生的方法寫成了 perl,
我又用了一個不錯爛的方式, 就是利用 php 去執行這個 perl 產生 hash
再把加密後的結果 抓回來, 更新到 LDAP 上
(沒辦法, 自己寫不出產生 hash 的程式 =___=”)
不過這個在不同主機上就有辦法使用了

今天我終於找到 phpldapadmin 裡有 createlm.php 這個 module
這樣子也不用借用 perl 來產生了..

我覺得酷
—–

Filed under: 蟲的研究心得

php 目錄結構

之前一直在為了 php 的目錄結構在煩惱
今天花了一點時間, 終於找到了解決的方法

先前利用 require 用來做為 php 間繼承使用
不過在所在目錄不同的時候 會發現無法找到檔案的情況

情況:

實際上
/test/functions/config.php
/test/functions/func_std.php require ./config.php
/test/index.php require functions/func_std.php

index.php 是可以正常的同時繼承 config.php 與 func_std.php 的東西

/test/config.php
/test/functions/func_std.php require ../config.php
/test/index.php require functions/func_std.php

這樣子在 func_std.php 中裡繼承 config.php 是沒問題的
可是當 index.php require functions/func_std.php 時
會有找不到 config.php 的情況發生, 原來是相對路徑 “..” 發生了問題
應該是 php 在維護繼承樹的時候, 沒有考慮到這樣的條件

不過後來發現 php 在 require 的時候, 其實會將某些特殊的常數及函式事先直譯
__FILE__ 與 require() 即是如此, 所以在當上述情況發生的時候

我多寫了一個 function 在 func_std.php 來解決這個問題

function relative_path($path)
{
return realpath(__FILE__ . “/../$path”);
}

define(‘CONFIG_FILENAME’, relative_path(‘../config.php’));

在被 /test/index.php require /test/functions/func_std.php 前
__FILE__ 的檔名已經被代入
嗯… 如此一來就能正確的使用相對路徑 “..” 了
其實這個程式是個很偷懶的寫法, 應該有些人會對函式中的 .. 有一點疑問

__FILE__ . “/../$path” 輸出的結果應該是

/test/functions/func_std.php/../../config.php

其實那個 “..” 是為了將 func_std.php/ 這個目錄消去
所以透過 realpath 簡化的結果就是

/test/functions/config.php

我個人還覺得滿妙的啦..

anyway 這樣就檔案所在的絕對路徑產生出來了
所以也不避擔心會有問題了
—–

Filed under: 蟲的研究心得

Author

參觀人數

  • 19,956 人次

Flickr 相簿

DSCN1635

More Photos