What have you found for these years?

2008-08-29

slice 修復 (0)

不好意思回覆都稍微晚一點 @@
晚上在忙著修 slice... :(

日前 slicehost 寄信過來說我的 slice unexpected server restart...
接著我發現無法 ssh 登入,用 console 登入後發現整個 server 怪怪的。

中間跟 support 通信好幾回... 暫略,明天再把這部份補齊,我快累昏了 @@

總之結論就是要重灌啦 :o 進 rescue mode 把資料抓回來...
重灌好之後再放回重灌好的 server. 好慘。

剛剛差不多全部弄好了,花了五個多小時吧。趁這次我也做了很多調整。
以往因為不熟悉 UNIX user, group, permission 的觀念,
所以都是把所有東西丟在 /home/godfat 底下,然後 server 就用我的帳號跑。
最早還是用 root 跑... 很糟糕|||b 後來用自己帳號跑有好一點。

這次全面調整,分出這些:


godfat@godfat /h/nginx> ls -l /home
total 16
drwxr-xr-x 7 godfat godfat 4096 2008-08-28 11:09 godfat/
drwxr-xr-x 7 nginx nginx 4096 2008-08-28 11:20 nginx/
drwxr-xr-x 3 postgres postgres 4096 2008-08-28 09:40 postgres/
drwxr-xr-x 18 redmine redmine 4096 2008-08-28 11:40 redmine/


nginx 跑 static files 和透過 unix socket 做 load balancing 給
兩隻 thin, 拿來跑 redmine. redmine 也用 unix socket 連 postgres.

nginx 用 nginx 跑,thin 用 redmine 跑,postgres 用 postgres 跑。
config, log, 等等都放在各自的目錄下。我不太喜歡把東西放在 /var /etc 那些地方。

啟動 nginx 用:
> sudo nginx -c config/nginx.conf
(nginx 會自己切換 user)
殺掉:
> sudo kill (cat pid/nginx.pid)
(bash 的話要把括號換成 ``, 括號是 fish 用的)

啟動 thin 用:
> sudo -u redmine thin -C config/thin.yml start
殺掉:
> sudo -u redmine thin -C config/thin.yml stop

啟動 postgres 用:
> sudo -u pg_ctl start -D data
殺掉:
> sudo -u pg_ctl stop

晚點寫個 Rakefile... 以上都需要 cd 到各自的 home 下。

所以回來的是:

http://godfat.org
或是
https://godfat.org

cert 當然換了,這大概無法...

redmine 則暫時不強迫 https, 網址是:

http://redmine.godfat.org
或是
https://redmine.godfat.org

不過如果連接網址是:

http://redmine.godfat.org/login

則 rewrite 成 https://redmine.godfat.org/login

http://redmine.godfat.org/account 也是同樣會做 rewrite.

我一直覺得這是必需要做的 :o

另外需要注意的是,我 postgres 是直接 copy binary,
這是個不好的備份作法!在我自己的電腦上就沒辦法跑,因為 server 是 64-bit...
macbook 這台還只是 32-bit 的「樣子」?不知道,總之 google 都是說那錯誤是
32/64 bit 架構不同造成的,而我很確定 server 是 64-bit.

正確的作法是 pg_dump 再 pg_restore 吧?不過既然發現直接 copy 可以用,
我就懶得做這麼完整的手續了... 因為中間其實碰到了一點小插曲 :o
這也是明天再說。我只能說 slicehost 的 rescue mode 真的做得很棒!
效能很差就是了........ XD 老實講效能要是沒這麼差,我還有點懶得 rebuild,
直接在 rescue mode 上跑 @@

另一個就是 redmine 0.7.3 不能在 rails 2.0.2 + ruby 1.8.7 上跑。
因為 ruby 1.8.7 改了那個 Enumerator...... 這被罵慘囉。
本來是想退回 1.8.6, 但是 Arch Linux 的 pacman 是強迫我灌 1.8.7,
不知道要怎麼退回?這個強迫應該是因為之前說 ruby 有 security issue,
所以 pacman 強迫你更新。(但是其實也可以跳掉啦...)

之前我是 patch rails 2.0.2, 但是一下子我找不到那個 patch 跑到哪了。
所以乾脆砍掉 rails 2.0.2, 直接換 redmine trunk!! 用 git svn.
這樣就能用 ruby 1.8.7 + rails 2.1 來跑,目前看起來都正常。
以後更新可能就... git svn rebase 吧。

不過他裡面有幾個 migration 我還沒跑,先這樣跑跑看,有錯誤再跑吧。
(其實是我累了....所以正常的話就懶得弄,可能明天會試試吧)

*

總之終於修好了,好感動。
另外真的要說,postgres 真的很專業。不過使用難度也真的比 mysql 高很多。

sqlite3 <<< mysql <<< postgresql

雖然是三大 open source sql 軟體,但這三大真的完全不在同一個層級上...

*

修理過程明天再說。

2 retries:

Plumm said...

你有買 slicehost ?? 價錢多少呀 ??

Lin Jen-Shin (godfat) said...

20 USD / month,
唯一的缺點就是記憶體只有 256MB

想換 512MB 的話其他東西也要換,價錢翻倍,有點吃不消

Post a Comment

Note: Only a member of this blog may post a comment.



All texts are licensed under CC Attribution 3.0