August 19th, 2008 — Mac/OSX
根據前一篇 Make your MacBook Cooler 提到的軟體 smcFanControl2 以及 CoolBook,這次拿了一台 Macbook Pro 來實測。這台 MBP 是 加到爆 的版本,也就是 C2D 2.6G/7k200/4G,能測試這台高貴的機器真是有幸呀。

燒機的方法是使用 Xbench,測試的過程裡除了全速不斷的一直跑 Xbench 以外,並且將 CoolBook 的 CPU loading 也調到最高 10。接著把 Applications 目錄裡所有的程式通通開啟,包含了 iLife08, iwork08, Aperture2, Office08, Adobe CS3, Parallels Desktop 等各式各樣重量級軟體,約略開啟了總共五十多個應用程式。最後... 再連續 “同時播放” 三個 FullHD 畫質的 mpg 影片檔。
想當然爾,系統是整個 Lag 到不行了,我把 CPU 跟 GPU 風扇轉速固定在 2000rpm(最低轉速),讓機器狂燒十幾分鐘,CPU 溫度最高達到八十度C,但是系統卻非常的穩定沒有當機,也沒有任何一個應用程式 Crash 掉,最後實測出這顆 C2D T9500 的極限值:2600Mhz@0.9875v。下面的圖示是使用 CoolBook 調整到最低電壓而且最穩定的狀況,CPU Idle 的待機溫度居然只有 28度C (室溫大約 24度C),只能說 45奈米的 CPU 真不是蓋的。


May 12th, 2008 — GNU/Linux
在這一篇 Ubuntu on Sony VAIO TZ37TN/B (二) Fan Speed Controller 提到 TZ37 在運作 Ubuntu 時,電腦會特別的燙,原本以為是 CPU 風扇控制不良,於是寫了風扇控制的 Scripts 來降溫。後來發現原來最大的熱源來自於 Intel 4965AGN 這張網卡,於是來到了 LessWatts.org 網站來挖寶。
目前以 Fan Speed Controller Scripts 搭配 LessWatts.org Tips & Tricks 之後,我的 TZ37 已經不再發燙。
根據 LessWatts.org Tips & Tricks 所修改的設定:
echo 5 >/sys/bus/pci/drivers/iwl4965/0000\:03\:00.0/power_level
echo 1 >/sys/devices/system/cpu/sched_mc_power_savings
echo 10 >/sys/bus/usb/devices/usb1/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb2/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb3/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb4/power/autosuspend
echo 10 >/sys/bus/usb/devices/usb5/power/autosuspend
echo auto >/sys/bus/usb/devices/usb1/power/level
echo auto >/sys/bus/usb/devices/usb2/power/level
echo auto >/sys/bus/usb/devices/usb3/power/level
echo auto >/sys/bus/usb/devices/usb4/power/level
echo auto >/sys/bus/usb/devices/usb5/power/level
echo 10 >/sys/module/snd_hda_intel/parameters/power_save
echo 1500 >/proc/sys/vm/dirty_writeback_centisecs
hal-disable-polling --device /dev/cdrom
hdparm -B 1 -S 12 /dev/sda
echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 5 >/proc/sys/vm/laptop_mode
ethtool -s eth0 wol d
ethtool -s eth0 autoneg off speed 100
ifconfig eth0 down
關閉藍牙以及內建CD-ROM的電源:
echo 0 > /sys/devices/platform/sony-laptop/bluetoothpower
echo 0 > /sys/devices/platform/sony-laptop/cdpower
hciconfig hci0 down
刪除沒用到的一些硬體相關的核心模組:
rmmod hci_usb ohci1394 sbp2 ieee1394 bluetooth joydev pcmcia parport_pc lp parport tpm_infineon tpm tpm_bios yenta_socket rsrc_nonstatic pcmcia_core ricoh_mmc
PowerTop 測試一下:
Cn Avg residency P-states (frequencies)
C0 (cpu running) ( 2.1%) 1333 Mhz 0.4%
C1 0.0ms ( 0.0%) 1067 Mhz 0.0%
C2 0.1ms ( 0.0%) 800 Mhz 99.6%
C3 7.4ms (97.8%)
Wakeups-from-idle per second : 133.7 interval: 15.0s
Power usage (ACPI estimate): 7.4W (8.2 hours)
Top causes for wakeups:
35.9% ( 65.2) : Rescheduling interrupts
20.1% ( 36.5) : i915@pci:0000:00:02.0
12.3% ( 22.4) : extra timer interrupt
10.9% ( 19.9) compiz.real : schedule_timeout (process_timeout)
9.5% ( 17.2) firefox : futex_wait (hrtimer_wakeup)
雖然 PowerTop 跑出 7.4W (8.2 hours),但可想而知,8.2 hours 是不切實際的數字,下次再來把實際的使用時間記錄下來,看看服用了這些保命長壽丹之後,TZ37 的續航可以延長到多久。
May 11th, 2008 — GNU/Linux
先前的 Ubuntu on Sony VAIO TZ37TN/B (一) Hardware & Desktop 是在 7.10 的環境下測試,這次我把系統升級到了 8.04 (Hardy Heron) LTS,藉這個機會整理一下 Sony VAIO TZ37TN/B 在 Ubuntu 8.04 LTS 的相容性。
相較於在 7.10 還需手動調整的項目,在 8.04 預設裝好就已經能動的有:
- Sound 耳機孔輸出與筆電喇叭的輸出已經正常了,不會有耳機已經插上去了,結果筆電喇叭也同時還在唱的窘境。
- FN Keys 音量調整鈕能動, LCD背光也能動了!
原本在 7.10 能動的,在 8.04 卻掛了的有:
- Integrated Media Buttons (退片鈕也不能動了) 解決的辦法是,使用偏好設定 -> 鍵盤捷徑鍵,將退片動作 binding 在特殊的按鍵上。
除了上述三項以外,其他的就跟 Ubuntu on Sony VAIO TZ37TN/B (一) Hardware & Desktop 大同小異啦!有些預設不能動的東西,改一下就能動了。下面特別整理出幾個在 8.04 要改的東西,因為這些改法跟過去在 7.10 的方式不同。
HSDPA modem (HUAWEI E220 3.5G) 的驅動:
改服用 vodafone-mobile-connect-card-driver-for-linux-2.0.beta2-ubuntu-installer.run 試試,如果遇到問題無法啟動裝置的話,那就只能手動來設定網卡,設定內容可參考 Wireless in Debian II (Huawei E220 3.5G Modem)。
Touchpad 的解析設定:
Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “Device” “/dev/psaux”
Option “Protocol” “auto-dev”
Option “HorizEdgeScroll” “0″
Option “MinSpeed” “0.1″
Option “MaxSpeed” “0.8″
Option “AccelFactor” “0.2″
Option “EdgeMotionMinSpeed” “15″
Option “EdgeMotionMaxSpeed” “15″
Option “UpDownScrolling” “1″
EndSection
Suspend to Ram & Hibernate 終於沒問題了:
$ sudo vi /etc/modprobe.d/alsa-base
options snd-hda-intel probe_mask=1
$ sudo vi /etc/pm/config.d/modules
SUSPEND_MODULES=”ehci_hcd uhci_hcd”
殘念的是,在我的系統上 Hibernate 依舊沒辦法成功,猜測可能是我沒有設定 Hibernate partition 的關係?還沒能去 Debug 這問題。不過話說回來,只要 Suspend to RAM 能一切正常,我就滿足了,這樣就能像在用 Macbook 一樣,隨走即蓋,隨開即用!方便多了。
Ubuntu 8.04 (Hardy Heron) LTS 在 Sony VAIO TZ37TN/B 的支援還算不錯,大部分的硬體都能支援,除了 Fingerprint Sensor 還有怪怪的 Memory Card Reader (Ricoh) 以外。不過還存在一個問題需處理,就是增加續航力跟風扇控制的問題,我在下一篇會整理在 8.04 下,如何讓 TZ37 更省電,續航更久。(風扇控制依舊參考這篇 Ubuntu on Sony VAIO TZ37TN/B (二) Fan Speed Controller.)
更多的 Ubuntu on Sony VAIO TZ 討論,請參照 Sony Vaio TZ Series: Quest for 100% Compatibility。
April 16th, 2008 — GNU/Linux
老方法了, 最近一直碰到這檔事, 貼起來做個紀錄. From: How to install Grub from a live Ubuntu cd.
- $ sudo grub
- grub> find /boot/grub/stage1
- grub> root (hd?,?)
- grub> setup (hd?)
- grub> quit
如果是拿 Debian net-install 開機片修復其他磁區的 boot-loader,
可以這麼做:
- # mkdir /mnt/XXX
- # mount -t XXX /dev/XXX /mnt/XXX
- # mount -t proc none /mnt/XXX/proc
- # mount -o bind /dev /mnt/XXX/dev
- # chroot /mnt/XXX
- # grub
- grub> find /boot/grub/stage1
- grub> root (hd?,?)
- grub> setup (hd?)
- grub> quit
April 14th, 2008 — GNU/Linux
一拿到 TZ37 時, 馬上感受到, 哇靠! 這真是一台超輕薄的筆電, 但是隨即而來的就是: 漸漸的不能忍受他龜慢的速度, 尤其又是一台 1.8″吋 4200rpm 的硬碟在拖垮效能, 於是想起了過去 小黑愛機 X40 不好的歷史....
首先用 bootchart 測一下 TZ37 的開機速度, 測出來為: 1分5秒, 完整的開機到能使用桌面應用程式, 總共花費 2分17秒!
嗯, 真的很慢, 光開個機就要等上兩分多鐘, 於是我祭出了海陸套餐:
這下子調整完後, 咱們看看 TZ37 是否有跑的更快一點, bootchart 測出秒數為 26秒, 完整的開機到能使用桌面應用程式, 總共花費 1分35秒!
嗯, 還不夠快, 後來我把腦筋動到了高速隨身碟上, 由於 1.8″ ZIF 介面的 SSD 目前價位都還貴的離譜, 因此參考這篇 分秒必爭 24款USB高速閃存盤橫評總結, 買了一支 ADATA PD7 (8G) 回來當作主系統碟使用!
動了一點手術, 我把 TZ37 的 Ubuntu Linux 全部移植到這支 PD7 裡, 把內建硬碟的系統全砍了, 將 1.8″吋 120G 的硬碟當作資料碟及備份碟使用, 測試的結果發現 PD7 快閃碟拿來當作系統碟時, 存取速度還蠻快的, 開啟應用程式也不會有一般機械式硬碟那種 lag 的感覺, 一整個就很流暢!
使用 bootchart 測速, 安裝在 PD7 上的 Ubuntu, 開機只要 21秒, 完整的開機到桌面底下, 花費 44秒!! 接著使用 hdparm 來測存取速度, PD7 測出來的 Timing cached reads: 648.17MB/sec, Timing buffered disk reads: 30.42MB/sec, 對照 TZ37 內建的 ZIF介面 1.8″ HDD 為 644.42MB/sec 及 28.27MB/sec.

雖然 hdparm 測出來兩者差距不大, 但是系統實際在運作時, 速度明顯的快速許多, 猜想是快閃碟平均檔案存取速率(Average access time) 以及隨機讀取速率非常快的因素所致, 這點跟 SSD 性質很類似!
對於目前的 Ubuntu on TZ37+PD7 的速度, 大致上已經很滿意了, 接下來如果還能 tuning 出更多的效能的話, 再繼續寫續集吧!
(PS: 最後補充一下 TZ37 在 Ubuntu 下的續航力: 裝一般電池+PD7系統碟+USB 無線光學鼠+螢幕亮度開第三格+開啟無線網路, MSN聊天+上網找資料, 可使用 4小時40分鐘左右... 很讚吧!)
April 14th, 2008 — GNU/Linux
在 Sony Vaio TZ Series: Quest for 100% Compatibility 討論串裡看到有人問到: I would like to know if around 60 degrees C is a normal temperature (normal use) for the processors. Sometimes I increase the fan speed (using spicctrl) but very soon it decreases. I did not see any option in the bios to get more fan speed at a given temperature. Do you have an idea?
我也測試了一下, 果真發現 TZ37 在 Ubuntu 底下, 風扇控制不甚理想, 為了讓機器更涼快點, 於是寫了一段碼, 即時監控 CPU 溫度, 讓他不飆超過 55度c!
$ sudo apt-get install spicctrl
$ vi /home/cyj/bin/FanSpeedController.sh
- #!/bin/bash
- declare -i temp=`spicctrl -T`
- if [ "$temp" -gt "55" ]; then
- spicctrl -f 255
- fi
$ sudo vi /etc/rc2.d/S99FanSpeedController
- watch -n 120 “/home/cyj/bin/FanSpeedController.sh”
這樣系統每隔兩分鐘 check 一次 CPU 溫度, 如果超過 55度c 的話, 它就 “全速運轉” 一陣子, 直到溫度低於 55度c , 就會恢復原本該有的預設風速! (如果覺得兩分鐘太頻繁的話, 可手動修改 watch 的秒數, 即使改成 10分鐘一次, 也能有效降溫...)
April 14th, 2008 — GNU/Linux
告別過去的 Macbook Triple Boot: Used Bootcamp, 以及 Ubuntu 7.04 on MacBook: Used Bootcamp 之後, 近日接手一台 Sony Vaio TZ37/TN, 沒有了 Parallels / Bootcamp 後, 終於能玩玩 pure Linux 了 (純的喔!)
直接上陣的是 Ubuntu 7.10, 參照 Sony Vaio TZ Series: Quest for 100% Compatibility 來安裝系統, 在預設未調整的 Base-System下, 一裝好能 work 的有 (out-of-the-box):
- Intel 950 Graphics (3D 正常, 1366×768 寬螢幕解析正常)
- Wired Ethernet
- Intel 4965 (A,G,N Wireless)
- Bluetooth (Bluetooth Mouse on Ubuntu)
- Touchpad (包含右邊的滑動區域都正常)
- Integrated Media Buttons (僅有退片鈕可以動)
- FN Keys (音量調整鈕能動, LCD背光不能動)
調整後能 work 的有:
- Sound (除了耳機孔輸出與喇叭輸出分開外, 一切正常)
- Headphone Jack Sensing (正常)
- Motion Eye (正常)
- HSDPA modem (HUAWEI E220 3.5G 正常)
- Suspend to Ram (僅有 AC_power 時才能, Battery_power 會當掉)
- Suspend to Disk (無論如何, 死當就是了....)
確定無法啟動的有:
- Fingerprint Sensor
- Memory Card Reader (Ricoh)
.
Sound Card 的調整:
$ sudo vi /etc/modprobe.d/alsa-base
添加 options snd-hda-intel model=sony-assamd
.
HSDPA modem (HUAWEI E220 3.5G) 的驅動:
- https://forge.vodafonebetavine.net/frs/?group_id=12&release_id=11
- http://static.scribd.com/docs/6kdtdm1khgp7g.pdf
.
LCD 背光 FN Keys 設定:
$ sudo vi /etc/init.d/hotkey-setup (修改下列)
Sony*)
#modprobe sonypi; (把 modprobe sonypi 註解)
modprobe sony-laptop
.
Touchpad 的解析設定:
$ sudo vi /etc/X11/xorg.conf
Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “AlwaysCore”
Option “SendCoreEvents” “true”
Option “Device” “/dev/input/mouse1″
Option “Protocol” “auto-dev”
Option “ZAxisMapping” “4 5″
Option “Emulate3Buttons” “yes”
Option “LeftEdge” “102″
Option “RightEdge” “921″
Option “TopEdge” “80″
Option “BottomEdge” “641″
Option “MaxTapTime” “180″
# Cover the whole 1280×800 display from one edge to the other:
Option “MinSpeed” “0.1″
Option “MaxSpeed” “0.8″
Option “AccelFactor” “0.2″
Option “EdgeMotionMinSpeed” “15″
Option “EdgeMotionMaxSpeed” “15″
Option “UpDownScrolling” “1″
# Button handling:
# - Middle and Right click are *REVERSED* on the pad buttons
# (as I more often middle-click than right-click)
# - Top Right simulates MIDDLE click
# - Bottom Right simulates RIGHT click
Option “RTCornerButton” “2″
Option “RBCornerButton” “3″
Option “LTCornerButton” “0″
Option “LBCornerButton” “1″
Option “TapButton1″ “0″
Option “TapButton2″ “3″
Option “TapButton3″ “2″
Option “SHMConfig” “on”
EndSection
.
Motion Eye 的細節設定較繁複:
參照 Sony Vaio TZ Series: Quest for 100% Compatibility.
Suspend to Ram & Disk 的細節設定較繁複:
參照 Sony Vaio TZ Series: Quest for 100% Compatibility. 或者直接採用 這裡 的檔案!
.
桌面 3D 環境美化及調整:
硬體驅動及設定完成後, 先給他 dist-upgrade 一下, 接著安裝 lazybuntu, 輕輕鬆鬆搞定桌面應用軟體, 如果覺得預設桌面環境不夠炫的話, 可參考下面文章來美化桌面!
.
視窗邊框半透明:
$ sudo apt-get install emerald
CCSM -> 視窗裝飾 -> 指令 -> emerald --replace (解決視窗邊框消失問題)
Emerald Theme Manager (細部微調邊框半透明樣式)
到此為止, Ubuntu 7.10 在 TZ37 上已經相當好用了, 不過還是遇到了投影機外接螢幕的問題, 參照了 Ubuntu 7.10 的切換螢幕程式, 輕鬆搞定!
目前已經處理完 TZ37 的硬體驅動以及桌面應用環境的佈設, 在下一篇文裡, 將分享 TZ37+Ubuntu 效能調校的測試數據!
January 29th, 2008 — Plone/Python
使用 Plone 內建的 HTTP Cache Manager 配合 Apache mod_cache,
可以讓 Plone-Site 的頁面存取速度增快,網站整體的效能也會跟著提昇。
在開始之前,可先閱讀 使用 Cache Manager,認識 Zope 底下
Cache Manager 的運作模式。若想直接快速獲得 Benchmark 的數據,
可參考 Plone 效能測試綜合報告。
底下將說明如何實做 Plone 的 HTTP Cache Manager 並搭配
Apache mod_cache 提昇 Plone 網站的存取效能。
首先載入 Apache mod_cache:
$ sudo a2emod cache
$ sudo a2emod mem_cache
$ sudo a2emod disk_cache
編輯 httpd.conf 加入 Cache Configuration:
<IfModule mod_cache.c>
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 65536
MCacheMaxObjectCount 2000
MCacheMinObjectSize 1
MCacheMaxObjectSize 10240
</IfModule>
</IfModule>
$ sudo /etc/init.d/apache2 restart (或 force-reload)
Cache Configuration 的設定值可參考 Apache Module mod_cache。
接下來要設定 Apache 做為前端伺服器,並且啟動 mod_rewrite、
mod_proxy,設定步驟可參考:Running Plone and Zope behind
an Apache 2 web server。
最後搭配 mod_cache 作為前端快取機制,並設定 Plone HTTP Cache
Manager。
底下是 Plone/manage 的 HTTP Cache Manager 設定畫面:

點選 Associate,找出所有可被 cache 的物件,勾選所需要 Cache 的物件,
選擇完畢後按下 Save Changes:



勾選完成之後,即完成了所有的設定。
此時 Plone 會將需要 Cache 的內容轉交給
Apache mod_cache 來處理,以增進網站存取效能。
.
最後我們使用 ab 來 benchmarking 網站的效能:
1. 完全沒做任何 Cache 的 Plone-Site:
$ ab -n 500 -c 20 -d -k http://localhost:8080/Plone
測出的數據
Requests per second 7.24 #/sec
Time per request 2761.690 ms
2. HTTP Cache Manager + Apache mod_cache 的 Plone-Site:
$ ab -n 500 -c 20 -d -k http://localhost/Plone
測出的數據
Requests per second 2787.50 #/sec
Time per request 7.175 ms
3. 將 Cache interval seconds 設成 5 秒的情況下:
測出的數據
Requests per second 710.95 #/sec
Time per request 28.22 ms
.
由 ab benchmarking 後的數據可以發現:
1. HTTP Cache Manager + Apache mod_cache 的 Plone-Site
相較於沒做任何 Cache 設定的網站,網站存取效能提昇將近 400 倍。
2. 將 interval seconds 由 3600 秒縮減為 5 秒後,
所造成的網站存取效能耗減,將近有 4 倍之多。
.
January 14th, 2008 — GNU/Linux
測試如何在 PostgreSQL 建立一個 觸發器 (Triggers)。
測試的目標是:
當 users 資料表的 username 欄位新增資料時,
Trigger 會寄一封信件給管理者,通知欄位資料已經新增。
Google 之後發現 pgMail 以及 PgSendMail 可以做這件事,
但在實際安裝測試後,發現有些錯誤訊息,目前還未能花時間去 Debug,
於是找了另外一個替代方案:使用 PL/sh Procedural Language Handler,
手動寫 Shell Scripts 來執行寄信的動作。
PL/sh 的安裝方式可以使用 apt-get install postgresql-8.2-plsh,
也可以來 官網 下載 TarBall 編譯安裝。
安裝完成後,需在 PostgreSQL 裡宣告使資料庫支援 PL/sh 語言,
先找到 createlang_pgplsh.sql 的所在位置,找到後執行:
$ sudo -u $USER psql -d $DBNAME -f $PREFIX/createlang_pgplsh.sql
例如:
$ sudo -u plone psql -d zope_sqlpas -f /usr/share/postgresql-8.2-plsh/createlang_pgplsh.sql
(PS: 以上均為同一行,這裡因為排版關係它自動跳行)
安裝完成後,來到 PostgreSQL 建立 PL/sh function:
CREATE FUNCTION email(text,text,text) RETURNS trigger AS ‘
#!/bin/sh
echo $3 > /tmp/email-trigger
mail $1 -s $2 < /tmp/email-trigger
‘ LANGUAGE plsh;
(PS: 在函數裡使用 shell scripts 寫寄信動作)
建立完成時,可用 SQL 語法測試 Function 有沒有錯誤:
select email(’cyj@localhost’,'Subject’,'Message body’);
如果 cyj@localhost 有收到信件的話,表示此 email() 已能正確運作。
接著必須使用 PL/pgSQL 在 PostgreSQL 裡建立 Trigger Function,
在這 Function 裡呼叫剛才的 PL/sh email() 做觸發的動作。
參考這篇 PostgreSQL - Trigger 入門 寫了一個 email_mytrigger():
CREATE FUNCTION email_mytrigger()
RETURNS “trigger” AS
$BODY$BEGIN
PERFORM * FROM users WHERE username = NEW.username;
PERFORM email(’cyj@localhost’,'Subject’,'Message body’);
RETURN NEW;
END;$BODY$
LANGUAGE ‘plpgsql’ VOLATILE;
此時 email_mytrigger() 已建立完成,接著要決定套用在哪個資料表上:
CREATE TRIGGER email
BEFORE INSERT ON users
FOR EACH ROW
EXECUTE PROCEDURE email_mytrigger();
設定 users 資料表新增資料時,PostgreSQL 會觸發 email_mytrigger(),
在這個 Function 裡會執行用 PL/sh 寫的 email() 去做寄信的動作。
到此為止,這個 Triggers 的測試目標已經達成,在撰寫 Function 過程中,
如果有遇到 PostgreSQL 語法的問題時,可先查找 PostgreSQL Manuals。
January 14th, 2008 — Plone/Python
測試了 Apache mod_rewrite 以及 Zope 的 Virtual Host Monster 物件,
藉由 Rewrite Module 的方式,把瀏覽 Plone 網站的 Request 重導給 Zope,
除此之外,原本在 /var/www/* 裡的 Apache 網頁目錄也能直接在網站上運作。
實際執行的方法很容易,首先要載入 Apache 相關模組:
$ sudo a2enmod rewrite
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
接著在 Apache ServerRoot 下做轉址的設定,
這裡我是採用修改 .htaccess 的方式:
$ sudo vi /var/www/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^phpform - [L]
RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/localhost:80/VirtualHostRoot/Plone/$1 [P]
</IfModule>
PS: RewriteRule ^(.*) 那行為同一行,這裡因為排版關係它自動跳行。
填寫完成之後 restart Apache。
未來在存取 http://localhost/ 時,就會導向到 http://localhost:8080/Plone,
Plone 底下所有的 URL 都會從原本的 :8080/Plone/*
重新導向到 http://localhost/Plone/*,
除此之外,原本在 /var/www/phpform 這個目錄,
會原封不動的交給 Apache 來處理。
底下有更詳盡的參考資源:
1. Running Plone and Zope behind an Apache 2 web server
2. Mixing Local Apache and Proxyed Content
3. 使用 Apache 作為 Zope 的前端
4. ZopePowerUser 進階講師研習班
5. Zope 虛擬主機的實例教學
January 6th, 2008 — Plone/Python
January 2nd, 2008 — Plone/Python
在上一篇:SQLPASPlugin for SQL based authentication in Plone
介紹 MySQL+SQLPASPlugin 實做過程。
接著我又參考這篇:
How To Setup SQLPASPlugin to Authenticate Against A PostgreSQL Database 實做了 PostgreSQL+SQLPASPlugin。
結果發現事情並不如 文件中 寫的那麼簡單,
這裡面存有一些 小問題需修正 才行!
.
底下是在 Ubuntu7.10 實做的過程紀錄:
.
1. 首先安裝這些軟體 (apt-get install XXX)
apache2
libapache2-mod-php5
libapache2-mod-auth-pgsql
php5
php5-cgi
php5-pgsql
phppgadmin
postgresql-8.2
postgresql-plpython-8.2
postgresql-pltcl-8.2
python-pygresql
python-psycopg2
python-psycopg2da
zope-psycopgda2
plone-site
.
2. 參考這份文件:Debian Linux 架設 PostgreSQL+PhpPgAdmin
2-1. 切換成 postgres 的身份執行
# sudo -u postgres psql template1
2-2. 修改 postgres 的密碼
# template1=# alter user postgres with password ‘PASSWORD’;
2-3. 建立 zope 使用者 (作為 Plone-site 讀取 PostgreSQL 的角色)
# template1=# create user zope with password ‘PASSWORD’ createdb createuser;
這裡的使用者務必建立為 zope/plone 服務啟動角色,
否則在執行 ZPsycopgDA 時會有錯誤訊息:
例如://psql: 嚴重錯誤: Ident 驗證使用者 “某某某” 失敗//
2-4. 離開 PostgreSQL
# template1=# \q
2-5. 參考 上面那篇文件 繼續完成 phppgadmin 的設定。
.
3. 使用 zope 使用者登入 phpPgAdmin 建立資料庫與表格
3-1. 建立使用者認證資料庫 zope_sqlpas
3-2. 建立角色資料表 roles,欄位設定為 username, rolename
3-3. 建立認證資料表 users,欄位設定為 username, password, email

.
4. 安裝設定 ZPsycopgDA
cd /var/lib/zope2.9/instance/plone-site/Products/
sudo cp -rf /usr/share/zope/Products/ZPsycopgDA\:2/ .
sudo mv ZPsycopgDA\:2/ ZPsycopgDA
sudo chown zope:zope -Rf ZPsycopgDA
sudo vi ZPsycopgDA/DA.py
找到 99 行:self.encoding = encoding
改成:self.encoding = “utf8″
(如果沒修改,在執行 ZPsycopgDA 存取 PostgreSQL 時
會出現 encoding 錯誤訊息)
.
5. 在 Plone 根目錄建立 Z Psycopg2 Database Connection。
在 Connection string 填入正確的 PostgreSQL 連結資訊
//例如: dbname=zope_sqlpas user=zope password=xxxxx//

.
6. 安裝 SQLPASPlugin。

.
7. 到 Plone Control Panel 設定 SQL Authentication。


.
8. 設定 /Plone/acl_users/source_properties。

.
大功告成啦!
此時 Plone 的使用者管理以及認證資訊皆已在 PostgreSQL 進行。
December 29th, 2007 — Plone/Python
Plone 是一個可供多人註冊使用的 content management system (CMS),
註冊的 user record 會儲存在 ZODB 裡,經由 ZMI /Plone/acl_users,
可以對其 Authentication 的規則窺知一二。
在 Plone 上預設已安裝 PlonePAS Product,它可讓我們安裝
PluggableAuthService(PAS) plugins,作用是讓其他系統上既有存在
的使用者資料作為 Plone 的 user/group sources,並且支援其帳號密碼認證。
SQLPASPlugin Product 是一個 PAS plugins,
藉由 SQLPASPlugin+PlonePAS,可以把 Plone 的 使用者管理/認證
交由另一台 SQL database 來處理,也就是讓 Plone 網站可以存取
另外一個網站 SQL 裡的帳號密碼。
.
底下簡略紀錄
Plone3+MySQL+SQLPASPlugin 的整合測試。
1. 首先安裝 MySQL for Python & ZMySQLDA。
2. 在 Plone 根目錄建立 Z MySQL_Database_Connection。

.
3. 安裝 SQLPASPlugin。

.
4. 到 Plone Control Panel 設定 SQL Authentication。


.
5. 設定 /Plone/acl_users/source_properties。


.
6. 到 Plone Control Panel 安全設置,打開使用者相關功能。

.
7. 此時 Plone 的使用者管理以及認證資訊皆已在 MySQL Database 進行。
.
關於 PluggableAuthService(PAS) 資源,可參考 PAS reference manual,
PlonePAS Presentation 的介紹。
以上整合測試是在 MySQL Database,若搭配 PostgreSQL Database,
可參照 How To Setup SQLPASPlugin to Authenticate Against A PostgreSQL Database。
December 29th, 2007 — Mac/OSX
每次重裝 OSX 後想要改預設截圖的格式時,都會忘記指令是什麼,
這次 Google 到了,乾脆貼上來做紀錄,以後就不用在到處找了。
defaults write com.apple.screencapture type XXX
XXX 可以是 pdf jpg gif png,這樣預設截圖時就會採用該格式,
不然還有這個軟體 shotChoice 可以自動設定截圖格式 。
準備要從 Tiger 重新安裝至 Leopard 了,希望一切無痛順利!
December 26th, 2007 — Plone/Python
接續上一篇的內容:
Plone and PHP+MySQL (Quick-Note)
這次搭配的 database 改成了 PostgreSQL,
安裝流程與方法幾乎跟 上篇 一樣,
差別只在於安裝的是 psycopg 和 ZPsycopgDA。
經過測試後發現,若純粹搭配 PHParser 來與資料庫互動的話,
其實可以不用安裝 ZMySQLDA / ZPsycopgDA。