Tommy 碎碎念

Tommy Wu's blog

Gallery 由 2.x 升到 3 之後的網址轉換
post by tommy @ 21 十二月, 2011 11:49

之前說過, 可以把 Gallery 2.x 與 3 看成是不同的軟體. G3 可以使用 g2_import 模組把原本 G2 的資料匯入到 G3 裡頭 (所有的檔案都會複製一份, 所以做好後在 G3 的任何動作都不會影響原本在 G2 裡的東西. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
ZendGuardLoader autoload segmentation fault for method_exits()
post by tommy @ 20 十二月, 2011 21:23

這是早上那個 Gallery 3 與 ZendGuardLoader 一起使用時的問題, 寫了一個小的 test case, 可以重製這個錯誤. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
ZendGuardLoader + Gallery3 = segmentation fault?
post by tommy @ 20 十二月, 2011 12:36

如果你在有使用 Zend Guard Loader 的網站中架設 Gallery 3 的話, 在跑完 install 的畫面之後, 你就會發現你的 Gallery 3 永遠都出現一個空白畫面. 這問題... 有人在 Gallery 那邊問, 想當然的.... 得到一個不是我們的問題的答案 (如果我是作者, 我也會這樣回答的), 也有人在 Zend 那邊問, 結果與我以前問 Zend 問題的經驗一樣.... 完全沒有任何作用. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Nginx 對於 PHP 的錯誤轉向處理, fastcgi_intercept_errors 修正
post by tommy @ 19 十二月, 2011 17:54

在一般靜態網頁的處理上頭, nginx 可以正常的顯示一些錯誤的訊息 (如 404 File not found 之類的訊息). 不過對於 PHP (其他用 fastcgi 方式跑的程式也一樣), 預設來說, 如果有什麼錯誤, 往往就看到空白的一個網頁. 而一般的 nginx 教學上頭, 對於這個問題的處理建議就是 fastcgi_intercept_errors on 的設定. 但... 這個方式並不是完美的. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 的 Search 中文修正
post by tommy @ 16 十二月, 2011 15:13

Gallery 3 的 Search 模組中, 是透過 MySQLfull-text search 方式來處理, 不過... 這個方式對於 CJK 之類的文字, 由於無法分辨詞的斷點, 是無法正常運作的. 這個修改, 是把有非英文的 search, 改成 like 來處理 (東西一多, 也許效能會很差, 所以... 如果你的系統這樣子改之後, 找東西變很慢的話, 就不要用了). (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Lifetype 模組: gallery
post by tommy @ 16 十二月, 2011 12:54

這個是以前寫給 LifeType 使用的 gallery 模組的修改版本, 與之前版本的差異就是可以選擇不使用 Gallery 的 embed 方式來存取. (這時相簿的連結會直接轉到 Gallery 的網頁)

檔案放這兒: http://www.teatime.com.tw/~tommy/files/lifetype/lifetype_gallery.tgz

需要的就自己抓回去用吧.

 

Del.icio.us Furl HEMiDEMi Technorati MyShare
Lifetype 模組: minislideshow
post by tommy @ 16 十二月, 2011 12:49

這是給 LifeType 用的 minislideshow plugin, 可以加上一個區塊顯示 minislideshow 的內容. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 模組: imageblock2
post by tommy @ 16 十二月, 2011 12:18

這個模組修改自 Gallery 3 的 imageblockex 模組. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 模組: randimgex
post by tommy @ 16 十二月, 2011 12:04

這個模組是修改自 Gallery 3 的 randimg 模組. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
讓 Gallery 3 接受更多種類的影片格式
post by tommy @ 16 十二月, 2011 10:54

由於 Gallery 3 使用 flowplayer 這一個 flash player 的原因, 所以只接受 flv 與 mp4 (只能播 h.264, 不過有時會有影無聲) 這兩種檔案. 而在 Gallery 2 的時候, 是透過 QuickTime 的 plugin 來播放, 所以支援的格式似乎多了一些. (閱讀全文)

Del.icio.us Furl HEMiDEMi Technorati MyShare
Gallery 3 中文修正 part 2
post by tommy @ 15 十二月, 2011 17:22

之前提過 Gallery 3 內部是使用 utf-8 在處理 (實際上, 討論區與官網的文章似乎也多次提到要傳入參數時要用 utf-8 編碼的字串才可以), 不過... 另人不解的是, 為什麼一個說是用 utf-8 字串來處理資料的程式, 反而不能處理 utf-8 的中文路徑與檔名呢?  (閱讀全文)

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