Tommy 碎碎念

Tommy Wu's blog

Gallery 3 無法刪除 serveradd 中指定的路徑的問題
post by tommy @ 15 十二月, 2011 14:36

這問題應該很久之前就有了 (七個多月了), 修正的方法很簡單也很直覺, 不過, 不清楚為什麼一直沒被接受.

如果你想刪除這個資料, 可以選擇的進階的設定去直接修改 server_add 的那一個變數 (那是 php serialize 之後的變數值), 或者用這個 patch:

diff -Nur gallery3.orig/modules/server_add//views/admin_server_add.html.php gallery3/modules/server_add//views/admin_server_add.html.php
--- gallery3.orig/modules/server_add//views/admin_server_add.html.php 2011-05-25 12:04:04.000000000 +0800
+++ gallery3/modules/server_add//views/admin_server_add.html.php 2011-12-12 13:48:12.465883402 +0800
@@ -26,7 +26,7 @@
<? foreach ($paths as $id => $path): ?>
<li>
<?= html::clean($path) ?>
- <a href="<?= url::site("admin/server_add/remove_path?path=" . urlencode($path) . "&amp;csrf=<?= access::csrf_token() ?>") ?>"
+ <a href="<?= url::site("admin/server_add/remove_path?path=" . urlencode($path) . "&amp;csrf=".access::csrf_token()) ?>"
id="icon_<?= $id ?>"
class="g-remove-dir g-button">
<span class="ui-icon ui-icon-trash">

修正後就可以正常的刪除不要的路徑了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
修改 Gallery 3 的 RSS, 新增用路徑取代 ID 的選擇方式與資料亂數選擇的方式
post by tommy @ 15 十二月, 2011 14:17

當我們利用 minislideshow 之類的小東西在顯示某個相簿的照片時, 是直接利用 RSS 的方式來取得要顯示的照片. 不過, 在 Gallery 3 裡頭, 對於 RSS 中指定要某個相簿的時候, 是使用相簿的 ID 來選取, 利如, 我有個相簿放在 /var/albums/tommy/tommy_photo 這個目錄下, 我必需要知道這個相簿在 Gallery 資料庫中的 ID (例如是 6), 才能用 /rss/feed/gallery/album/6 的方式來取得資料. 這個對於一般的使用者來說, 要知道那個 ID 是多少, 是比較有難度的, 並不如 tommy/tommy_photo 來的直覺. 所以... 改一下程式允許用路徑來選擇, 會比較方便些. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
避免 Gallery 3 的 server_add 模組新增項目時, 把存放的那目錄也建立成一個相簿
post by tommy @ 15 十二月, 2011 13:42

Gallery 3 與 Gallery 2 一樣, 也提供了一個 serveradd 模組, 讓我們直接由 server 上頭某個目錄來新增項目, 不過.... 在使用上感覺有點怪怪的. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 hide 模組的存取檢查修正
post by tommy @ 15 十二月, 2011 13:21

Gallery 3 中, 有提供一個 hide 模組, 用來隱藏某些相片, 在一般相簿的瀏覽時可以正常運作,  不讓被隱藏的項目被沒有足夠權限的人看到, 不過... 如果直接給該照片所在的 URL (不管是 Gallery 裡頭的網頁, 或是全圖與縮圖之類的連結), 就可以直接看到該相片, 完全失去隱藏的功用. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 在 Nginx 下的安裝與設定
post by tommy @ 15 十二月, 2011 10:00

由於 Gallery 3 大幅的簡化, 所以在安裝使用上, 並不像 Gallery 2 一樣有那麼多的 rewrite 要處理, 相對來說是簡單許多. 原則上只要 nginix 底下的 php 設定是正確的, 而且可以正確使用 PATH_INFO 就可以運作了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 中文修正 part 1
post by tommy @ 14 十二月, 2011 18:59

Gallery 這軟體很奇怪, 每次改版就是一個全新的程式, 基本上與上一個版本可以當做是完全不同的程式來看待. 據作者的說法, 當初 Galley 2 的出現, 是為了解決在 Gallery 1 上頭的問題.... 而 Gallery 2 看起來是一個很成功的軟體.... 除了整個系統過於肥大之外, 應該也沒什麼缺點. 不過.... 作者還是開發了 Gallery 3, 而且這次的開發應該不太順利吧, 因為由一開始的 beta 到最後正式版的發行, 經過了好幾年. 而且.... 雖然正式版推出了不算短的時間, 整個 Gallery 3 用起來, 我覺得應該還算在 beta 階段吧.... 與 Gallery 2 比起來, 除了用了一些 AJAX 的技巧外, 在功能面上完全比不上舊的 Gallery 2.

如果 Gallery 2 用的還滿意的人, 建議先不要考慮 Gallery 3 吧, 等 3.1 (或 3.2 再來看看). 如果你決定使用 Gallery 3, 那, 這篇與後續的幾篇有關 Gallery 的文章, 應該會對你有些用處. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
將 Gallery 2 用來播放影片的方式改用 JW Player 來播放
post by tommy @ 14 十二月, 2011 10:29

Gallery 2 裡頭, 原本播放影片的方式是使用 QuickTime plugin 來處理. 不過... 這個 plugin 並非所有的使用者都有裝, 所以... 我們可以改用 JW Player 來處理. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery Remote 在使用 nginx 時無法登入的問題
post by tommy @ 14 十二月, 2011 10:14

這幾天在測試 Gallery3, 測試 Gallery Remote 時, 發現原本裝的 Gallery2 在使用 Gallery Remote 時也無法正常登入. 登入時會出現這個錯誤訊息:

這錯誤在 Gallery Remote 的 FAQ 裡頭就有, 應該是一開始執行是會去使用 gallery_remote2.php, 如果不存在, 才會轉用別的 URL, 而在 Gallery2 的時候, 是沒有 gallery_remote2.php 的, 正常來說, 這個存取會回傳 404 not found 的錯誤, 不過... 由於我的 nginx 有對 404 做轉向的處理, 結果... 會造成實際收到的是 302 的轉向回應, 所以... 接下去就動作就不正常了.

原本希望保留我在 nginx 下的轉向設定, 只針對 gallery_remote2.php 回應 404 就可以. 不過... 試了一下, 發現似乎不能這樣子處理, 因為只要有轉向的設定, 不過是透過 php 去回應 404, 或在 nginx 對該 URL 回應 404, 都還是會去做轉向的動作.

最後... 只好在使用 Gallery2 的這個 virtual host 中不去對 404 做轉向處理, 改成回應 404 的錯誤. 如:

error_page 404 /internal_error_404_page.html;
location /internal_error_404_page.html {
internal;
}

這樣子改之後, 就可以正常登入了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
Nginx 的 userdir 設定
post by tommy @ 03 十二月, 2011 12:08

Nginx 本身沒有支援 Userdir 的模組, 不過, 可以很容易的用 location 的方式來設定. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Lifetype 在 nginx 的 rewrite 處理
post by tommy @ 03 十二月, 2011 11:56

Lifetype 同樣只提供 Apache 的 rewrite 處理, 所以... 我們一樣需要轉換為 nginx 的方式. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery2 在 nginx 底下的 rewrite 處理
post by tommy @ 02 十二月, 2011 16:51

由於 Gallery2 只有提供 Apache 的 rewrite 設定, 所以當轉換到 nginx 使用的時候, 就要想辦法自己來改寫. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Nginx/FastCGI/PHP-FPM 相關設定
post by tommy @ 02 十二月, 2011 16:48

上個月中開始, 逐步將家裡機器裡頭的 Apache/mod_php 改成 Nginx/FastCGI/PHP-FPM 來運作. 經過了近兩個星期的嚐試, 目前看起來應該是可以完整的取代了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
PuTTY 0.61 視窗標題修正
post by tommy @ 15 十一月, 2011 12:45

原本都是使用 PieTTY 來連線, 不過由於這軟體久沒有更新, 且下拉式的選單在連線數量變多時, 有點不怎麼好用, 加上目前的 PuTTY 版本在 UTF-8 的情形下, 可以設定英文字型就能正確的顯示與輸入中文, 而且有支援 Win7 的 JumpList 功能, 所以常用的連線也可以很方便的使用, 所以最近又改回使用 PuTTY 了. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
phpmsnclass v1.11
post by tommy @ 15 十一月, 2011 11:03

更新 phpmsnclass 版本為 1.11. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
HD300B 非官方 firmware 裡頭奇怪的 IP....
post by tommy @ 15 十一月, 2011 08:14

這幾個月來, 常常發現在家裡使用網路的時候, 我的其中一台機器 ssh 連線常常被突然中斷, 要隔一段時間才可以再連上. 因為那台是備用的 firewall, 平時也用不到, 所以碰到時就算了, 並沒有特別去處理它.

不過... 昨天又碰到這情形, 被斷線時剛好在機器旁, 所以就看了一下, 發現 ssh 連不上, 就改用 telnet 試看看... 結果, 居然出現不同的登入畫面, 難道這 IP 被別人入侵我家的網路拿去用了嗎?  雖然這 IP 不在我的 DHCP 發放範圍內, 不過還是先看一下 AP 上頭有沒有無線的用戶登入, 結果也沒有... 有線的應該不會有人由外頭接到家裡, 也應該不可能.... 那是我自己的機器嗎?

用 arp -a 看一下相關的 mac address, 發現這 IP 的 mac address 果然不是我那台機器的... 而且... 與另一台機器 HD300B 的另一個 IP 是相同的 mac address.... 真是奇怪, 明明在 HD300B 上頭, 就只有設定一組 IP, 怎麼會出現另一個 IP 呢?

找了一下我用的 firmware 的說明, 也沒說會有另一個 IP... 不過有說到登入的 root 密碼, 所以就登入進去看看, 果然看到那機器除了 eth0 是所設定的 IP 外, 另外有一個 eth0:0 就是設成 192.168.0.11, 剛好與我連不上的另一台 firewall 一樣...

grep 一下裡頭的檔案, 發現在 /usr/local/etc/myinit.sh 裡頭, 果然有指令去設定這個 IP.... 真是的, 這作者自己內部網路用的 IP, 怎麼會放出 firmware 時不拿掉呢? 不然也註明一下, 讓使用者知道會多出這麼一個 IP... 把這檔案改了以後, 目前用起來就正常了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
限制 SMF 的驗證碼只輸入前四碼
post by tommy @ 03 十一月, 2011 12:02

最近發現之前用的 Join Check 方式, 似乎新的 bot 已經有能力處理了, 所以... 就再改一下驗證碼的檢查方式. 採用的是不管原本顯示幾碼的驗證碼, 但是只要求使用者輸入前四碼. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
gcin for windows 在 windows 7 使用時, tray icon 的顯示設定沒有作用?
post by tommy @ 24 八月, 2011 17:50

話說最近才知道 gcin 有 windows 的版本, 所以下載來用了幾天, 在一般的使用上都很正常, 只不過.... 發現在 Windows 7 使用時, 因為我的設定並不會在右下角顯示所有的工具列圖示, 只會顯示我指定的幾個圖示.... 但是, gcin 所使用的那兩個圖示, 不管我怎麼設定, 只要重新執行 gcin (或重開機),  就不會顯示, 而會變成隱藏起來. 而 gcin 的狀態並不會在正常的語言列上顯示, 若沒有看到那兩個圖示, 常常會弄不清楚目前是用那一種輸入法. (奇怪, 在 gcin 的討論區並沒有人反應這個問題, 難道只有我碰到?) (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
join_check, SMF 1.x/2.x 註冊防機器人外掛
post by tommy @ 16 七月, 2011 11:56

這與之前在 php 2.x 用的那個類似, 就是改一下註冊時的 form, 加上兩個選項, 一個要選, 另一個不用才能註冊成功. 這樣子應該可以防止多數的 bot 來註冊.

有需要可以抓回去用, 如果無法正常安裝, 就自己解開來看一下要改那邊吧.

1.x 用的版本:
http://www.teatime.com.tw/~tommy/files/join_check_1_0_0.tar.gz

2.x 用的版本:
http://www.teatime.com.tw/~tommy/files/join_check_2_0_0.tar.gz

Del.icio.us Furl HEMiDEMi Technorati MyShare
disable IPv6 造成 squid3 無法使用 https 連線
post by tommy @ 12 七月, 2011 10:25

這兩天上 pchome 買東西時, 發現要結帳時會無法連線, 查了半天, 查不出有什麼問題, 後來不小心發現, 只要把 proxy 關閉就可以直接連線. 後來進一步測試, 發現所有的 https 連線, 只要透過家裡的 squid proxy 就會無法使用. 看起來像是 squid 所造成的問題. 看一下 squid 的 log, 發現有下面的訊息:

comm_open: socket failure: (97) Address family not supported by protocol

google 查了一下, 這個應該與 IPv6 有關.

上個月我把 IPv6 在 kernel 裡頭編譯成模組, 但因為還未打算使用, 所以並沒有任何的設定, 也沒有載入這個模組. 因為這樣, 反而造成 squid 無法使用 https.

目前的解決方法只有:

  1. 完全不使用 IPv6, 也就是 kernel 或 squid 本身不要加入 IPv6 的支援, 就不會有這個問題.
  2. 不要把 kernel 的 IPv6 關閉 (如 alias net-pf-10 off), 如果怕 IPv6 的異常連線, 可以先用 ip6tables 把預設的 policy 改成 drop.

我目前是先用第二種方式.

Del.icio.us Furl HEMiDEMi Technorati MyShare
網路再升級到 100M/10M 固定制 (6IP)
post by tommy @ 06 七月, 2011 16:27

最近中華電信的網路降價了, 連帶固定制的網路也降價. 不過.... 16M/8M 的方案似乎不被 NCC 認可, 所以... 目前也沒有這個方案了, 之前辦的也沒有隨著這次的降價活動而調整價格.

加上... 新推出的方案, 終於把老客戶優惠給放了回去, 也就是使用光世代一樣可以在網路費享有老客戶優惠 (之前由 ADSL 換到光世代後, 這個優惠就一直不能用).

所以... 在新的價格上, 100M/10M 加上老客戶優惠之後, 反而比 16M/8M 還要便宜一些. 所以... 這次回台灣, 就在上星期五順便去申請改到 100M/10M.

今天早上五點後, 線路就突然斷了, 早上報修後, 告知是機房那邊因為升速就直接改, 結果就不通了. 以往都是施工的人員來現場後才會改設定, 這次居然就直接改了.  結果... 查線的弄了幾個小時, 就直接改成 100M/10M, 不過... 由於工單他們還沒拿到... 還要過幾天再拿過來給我簽. 不過... 至少目前跑起來的確是 100M/10M 了.

速度對 hinet 測試, 都可以跑到 100M/10M, 不過到國外... 就看運氣了, 一般來說, 都還在可以接受的範圍內.

Del.icio.us Furl HEMiDEMi Technorati MyShare
修正 phpmsnclass v1.10 不能傳送離線訊息的問題
post by tommy @ 23 六月, 2011 20:56

這幾個星期, 發現 phpmsnclass 傳送離線訊息的功能似乎失效了. 今天查了一下, 發現原本用來發送的網站 ows.messenger.msn.com 被 Microsoft 改成 127.0.0.1, 也就表示這網站應該是再也不支援了. 所以... 所有使用這個方式傳送離線訊息的 client (可能所有非官方的 client 都是這樣處理), 都失去傳送離線訊息的功能了.

由於官方的 client 還可以使用, 就看一下傳輸的記錄, 發現是改用 UUM 來傳. 但是在 MSNP15 底下, 這個方法會造成斷線, 所以就照著改用 MSNP18 來處理, 目前看起來是可以正常使用了.

由於 MSNP9/MSNP15 似乎都有問題, 所以就直接移除這兩個協定的支援, 目前就只能使用 MSNP18 了 (所需的模組與 MSNP15 一樣).

有需要的請自行到 Google Code 網站去抓 r53 或之後的版本回來用吧.

Del.icio.us Furl HEMiDEMi Technorati MyShare
在 linux 中安裝 Darwin Streaming Server 6.0.3
post by tommy @ 13 六月, 2011 14:30

雖然 Darwin Streaming Server 官方對於 Linux 的支援說法, 是建議使用 5.5.5 或更早以前的版本, 不過, 加上適當的 patch 之後, 要在 Linux 上頭使用 6.0.3 版本也是可以.

網路上可以找到在 unbuntu 上頭安裝的說明, 基本上照著這篇文章的步驟, 就可以讓 DSS 6.0.3 在 Debian 下正常的運作. 所以有需要的就照著做就可以了.

不過這個安裝的說明, 並沒有新增任何開機時執行的指令, 所以如果你需要每次開機時都自動去執行的話, 就自己寫一個 script 去執行  /usr/local/sbin/streamingadminserver.pl 就可以了.

我自己是用下面這個 script 來處理:

#! /bin/sh
#
# dss darwin streaming server
#
 
NAME=dss
DESC="DSS"
 
set -e
 
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
/usr/local/sbin/streamingadminserver.pl
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME "
killall streamingadminserver.pl
killall DarwinStreamingServer
echo "."
;;
restart|force-reload)
$0 stop
sleep 1s
$0 start
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
 
exit 0

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
放棄 VMWare Server, 改用 VirtualBox
post by tommy @ 14 五月, 2011 10:17

家裡的伺服器上頭都有裝上 VMWare Server 2.0, 主要就是跑一個 XP 的 VM, 用來讓我可以由遠端使用家裡那台 HP 3050z 的印表機, 除了每個月把小朋友學費轉帳的結果印出來外, 另一個主要的功能就是用來讓我傳真給 etrade (沒辦法, 公司配股是這家管的, 且我們公司不能由電腦直接傳真, 只能印出來再傳, 不過... etrade 轉帳指令要求附上護照影本, 每次印出來再傳都說不清楚, 只好透過家裡的機器直接傳真).  (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
在 Linux 中使用 3TB 的硬碟
post by tommy @ 03 五月, 2011 13:57

其實這似乎沒什麼好寫的, 因為相關的文章應該可以找到很多. 不過, 上星期我自己在裝上 3TB 的硬碟時, 有碰到一些小小的問題, 似乎沒有人提到, 所以就記錄下來. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
wget 1.12 的 win32/win64 版本
post by tommy @ 09 四月, 2011 10:57

雖然 wget 的 source tarball 裡頭, 有包含 windows 的支援, 不過... 似乎不能正常的編譯. 所以做了一些修正, 讓 mingw32/mingw64 可以正常的編譯. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Bad Behavior 已經阻擋了 93 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS