2010年10月23日 星期六

twbbs.org 網域 + hinet 轉址

1. 申請免費網域可到 twbbs.org 註冊一個帳號, 一個帳號可申請多組網域(例如 your_domain,則所申請的網域將會是 your_domain.twbbs.org)
來去 twbbs 網站申請一個帳號及網域吧: http://twbbs.org/
(A) 使用者登錄 twbbs.org 後, 按 "設定‧修改 網域"
(B) 挑選所要設定的 your_domain 網域處, 按 "設定" 紐,
(C) 接著再按 "設定DNS" 項,
(D) 將 FQDN 欄位的 your_doamin.twbbs.org, 挑選型態為 A 的 record, 將位址(ip)以 203.66.87.5 直接填入, 按 "新增一筆資料"
完成設定

2. Hinet 用戶可到 Hinet 轉址服務網頁申請一個帳號,
(例如帳號為 your_web,則所申請的網址將會是 http://your_web.myweb.hinet.net)
來去 hinet 網站申請一個帳號及網頁吧: http://www.myweb.hinet.net
(A) 登錄帳號後, 點選 "網站資料修改"
(B) 將 "網域名稱" 欄位內填入在步驟 1 所填的 ip 位址所對應的網域名稱
(例如 your_doamin.twbbs.org )
(C) 等待 dns 完成資料交換, 開啟 dos 視窗,
ping your_doamin.twbbs.org
如果 domain name 已經對應成功, 203.66.87.5 會回應, 則代表已完成設定

3. 開始瀏覽 your_domain.twbbs.org, 開啓瀏覽器填入網址:
http://your_domain.twbbs.org
便會轉址到 http://your_web.myweb.hinet.net
另外原來在 hinet 的 your_web 網頁,並不受影響,仍可以用網址
http://your_web.myweb.hinet.net 直接瀏覽

註: Hinet 的轉址僅限定 http 轉址, 其它如 mail 等並不適用

2010年10月10日 星期日

nginx config 內容小解

漂浮線 ~ 用來指示隨後的 regular expression 大小寫不介意
漂浮線加星號 ~* 用來指示隨後的 regular expression 須區分大小寫

2010年10月8日 星期五

另一好用的 Web server: nginx

下載 nginx web server
http://nginx.org/en/download.html
設定檔: nginx.conf 放在 nginx/conf
docroot 一般設定在 nginx/html
讓 php-cgi 可支援, 修改 nginx.conf,加入以下內容:

location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

如果要支援 drupal,修改 nginx.conf,加入以下內容:


location /drupal {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /drupal/index.php?q=$1 last;
}
}

如果要支援 wordpress , 修改 nginx.conf
location /wordpress {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.+)$ /wordpress/index.php?q=$1 last;
}
}
如果要使用 sqlite 資料庫, 則到 wordpress 官網下載 pdo_sqlite plugin, 並將此plugin 模組放入 wp-content 目錄下, 另外需修改 wp-config.php, 加入以下的程式碼:
define('DB_TYPE','sqlite');


Drupal 7 才開始有支援 php data object (PDO) 的 slite 資料庫 (pdo_sqlite),
但我用起來不是很穩, 看起來 drupal7 與 nginx 相容性友有待驗證
須修改 php.ini 的 extension 設定值, 將以下的 extension enable:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

將 nginx 檔案全部放入 c:\nginx
將 php 檔案全部放入 c:\nginx\php

啟動 nginx
start c:\nginx\nginx.exe

命令 php-cgi listen port 9000
start c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini

2010年10月3日 星期日

安裝 Ubuntu 到 SD 卡上

1. 先安裝 boot loader , 我習慣用 grub, grub 也是 ubuntu 內建的 boot loader
2. 將 SD 分割好, 我習慣將 partition 1 設成 FAT, 將 partition 2 設成 linux, 務必確認 SD 卡所在的磁碟機, 一般來說, 開機碟是 hd0, 第二個是 hd1, 我的 SD 卡是在 hd1, 可以利用 grub 內建指令搜尋檔案所在位置
先使用 Ubuntu Linux 開機:
再取得 Ubuntu 的 root 控制權
\UbuntuLinux>sudo su
使用 fdisk 分割 SD 卡, 例如 sdb1(FAT 06), sdb2(Linux 83)
\UbuntuLinux>fdisk /dev/sdb
....
參考命令: n, a, t, l, m
....
\UbuntuLiux>cd /mnt
將 partition 2 格式化成 Linux
\UbuntuLinux\mnt>mke2fs /dev/sdb2
建立 grub 所需資料夾:
\UbuntuLinux\mnt>mkdir sdb
\UbuntuLinux\mnt>mount /dev/sdb2 sdb
\UbuntuLinux\mnt>mkdir sdb/boot
\UbuntuLinux\mnt>mkdir sdb/boot/grub
將 grub 所需的檔案存入 /mnt/sdb/boot/grub 內: stage1, stage2, stage1_5..., menu.lst
\UbuntuLinux\mnt>cp ... /mnt/sdb/boot/grub
修改 /boot/grub/ment.lst 內容
\UbuntuLinux\mnt>vi sd/boot/grub/menu.lst
將Ubuntu 的 iso 檔(例如 Ubuntu10.04.iso ) 放在 partition 1 (hd0,0) 的 capser 目錄下,
Ubuntu 10 的 linux kernel 名稱叫作 vmlinuz, ramdisk 名稱叫作 initrd.lz, 一般來說,都放在 cdrom 的 casper 目錄內, 可以將他複製到 SD 卡上的 partition 1 (FAT) 內,只要在 menu.lst 明確設定好 kenrel 及 ininrd 所在位置即可
...
default=0
timeout=2
root (hd0,0)
kernel /casper/vmlinuz boot=casper iso-scan/filename=/casper/ubunt10.04.iso ro splash locale=zh_TW.UTF-8
initrd /casper/initrd.lz
...

卸載 SD 卡, 並執行 grub 安裝 boot loader
\UbuntuLinux\mnt>umount sdb
\UbuntuLinux\mnt>grub
在 grub 內設定好 root device, 以便讓它去找尋 stage1, stage2, stage1_5, menu.lst 所在磁碟
\grub>root (hd1,1)
並確認 root device 所在磁碟: 例如將 id 存入在 /mnt/sdb/boot/grub/id , 則執行以下命令:
\grub>find /boot/grub/id
安裝 grub 到 SD 卡 MBR
\grub>setup (hd1)
\grub>quit
重新開機並設定 BIOS 讓 SD 卡可以啟動開機