Sep
更新紀錄
- 2006-1001 還是發生亂碼現象,這次進去看才發現原來之前的設定 /usr/bin/env ruby 並不一定會抓 /home/foo/bin/ruby 而是根據 fcgi 的設定,往往是 /usr/bin/ruby-1.8。之前如減少 500 建議又加上 frao_handler 試圖 reload 被 DH 定時砍的 fcgi ,也許在 reload 時出現問題 ? 刪除後觀察看看。
源起
之前一直遭遇亂碼問題 typo 4 post install ,終於到了需要攤牌的時候,經過一陣子觀察,發現混用環境會用到同帳號下面其他虛擬主機的 MySQL 連線,而剛好這個 foo 虛擬主機只是測試用,並沒有正常設定資料庫需要的 encoding 連結參數,這下子就慘了。
$ ps aux | grep xxx xxx 20120 0.2 0.6 29140 26564 ? S 19:07 0:02 ruby dispatch.fcgi xxx 26233 0.4 0.9 46028 36960 ? S 19:08 0:04 ruby dispatch.fcgi xxx 11270 0.2 0.6 29140 26568 ? S 19:11 0:02 ruby dispatch.fcgi xxx 14002 0.0 0.0 6488 1880 ? S 19:19 0:00 sshd: linthink@pts/6 xxx 6930 0.0 0.0 4788 1684 pts/6 Ss 19:19 0:00 -bash xxx 13610 0.8 0.6 29140 26556 ? S 19:20 0:02 ruby dispatch.fcgi xxx 9397 0.7 0.5 24684 22136 ? S 19:22 0:01 /usr/bin/ruby1.8 dispatch.fcgi xxx 4355 0.0 0.0 2484 860 pts/6 R+ 19:24 0:00 ps aux xxx 24377 0.0 0.0 4788 1688 pts/6 R+ 19:24 0:00 -bash
一發生亂碼現象,馬上連進去看看現場,發現 ruby1.8 這個行程應該不存在,這是系統提供的 ruby ,但是我的 blog 站 typo 確是用私有 ruby,這代表有人在使用 foo 虛擬主機下的服務。
$ ls -al /proc/9397/ -r--r--r-- 1 xxx sasl 0 2006-09-21 19:25 cpu lrwxrwxrwx 1 xxx sasl 0 2006-09-21 19:25 cwd -> /kkk/foo.extremepattern.com/public -r-------- 1 xxx sasl 0 2006-09-21 19:25 environ lrwxrwxrwx 1 xxx sasl 0 2006-09-21 19:25 exe -> /usr/bin/ruby1.8
進去 proc 看看,果然是虛擬主機 foo,先試著關掉 dispatch.fcgi 看看。
$ cd foo.extremepattern.com/public $ mv .htaccess htaccess.bak
kill 這個不速之客後,reload 部落格網頁,還是喚起這個屬於 foo 的連線,猜測應該是某種連接池關係,所以還是一堆亂碼。只好把其他 ruby 行程全砍,然後再進 typo 管理將快取清過,總算恢復編碼正常。
一小時代價
看了一下,發現之前不注意,有一篇文章被上面的程序,導致亂碼污了資料庫,先到 phpmyadmin 查到這筆紀錄 更改時間是 2006-09-05 18:35:21,再去找備份 sql 截取出這段紀錄,重新貼上。同時這代表後來逐日備份全部 遭到污染。
結論
- 同一個帳號環境要一樣
- 備份很重要,舊的不要刪掉
- 小問題還是要先解決,亂碼污染資料庫到幾百筆就難清了
- rails 共用環境是新的需求,遠不如 PHP 等共用環境穩定。
一是 archive
用,採用上傳到 resource 方式使用,重複使用下,是否可以用 theme 方式包裝。