網絡技術日誌

關於 PHP, Linux, Open Source 及個人生活記載的網誌。

Entries for February, 2006

Ubuntu Linux 安裝 XGL 及 Compiz 教學

Ubuntu Dapper repository 已經有 XGL 及 Compliz 套件,以下文章是說明如何在 Nvidia cards 上安裝及使用: http://www.ubuntuforums.org/showthread.php?t=131267

Leave a Comment

Linux 下找出大容量檔案

以下指令可以找出檔案體積大於 50MB 的檔案,並列出檔案名稱及檔案大小: find / -type f -size +50000k -exec ls -lh {} ; | awk ‘{ print $9 “: ” $5 }’

Comments (3)

我還是喜歡棍波

棍波在大陸及台灣應該叫手排,我在上年年尾買了一架自動波的 civic 後,起初覺得很舒服並覺得會愛上自動波。但昨天有機會再開棍波車時,感覺那才是真正的駕駛。 期間有一段路是塞車,但整個過程還是覺得不錯啦。其實棍波除了飆車外還有好處的,例如當發覺車子不夠力時,可以馬上轉落低波 (低檔),但自動波則需要待車子慢慢自動轉換。

Leave a Comment

兩個實用的 Sendmail 配置

修改郵件停留在 queue 的時間 當電郵伺服器發出的郵件退信時,郵件會停留在 queue 一段時間及重複嘗試發出,sendmail 的預設值是 5 天才會放棄及把郵件從 queue 中刪除。 我想將這個時間縮短,那可以打開 /etc/mail/sendmail.cf,裡面有一行: “O Timeout.queuereturn=5d” 5d 代表 5 天,我只想發送失敗的郵件停留在 queue 裡面 12 小時,可以改成: “O Timeout.queuereturn=12h” 然後重新啟動 sendmail 即可。 限制每封電郵收件者 Sendmail 預設沒有限制每封電郵的收件者,那麼用戶就可以將電郵伺服器用作發送廣告信,要限制收件人數也是打開 /etc/mail/sendmail.cf,裡面有一行是: #O MaxRecipientsPerMessage=100 將第一個 “#” 刪除,及將 100 改成你想要的數值,我自己是用 20,然後重新啟動 sendmail 即可。

Comments (1)

MySQL 的 Replace 功能

要對 MySQL 資料庫內的資料替換字串,可以借助 PHP 的 str_replace(),但這實在太麻煩了,其實MySQL 已內建了這個功能,以下語句可以將 [table] 資料表的 [field] 欄位作 replace 動作,[str_search] 是搜索字串;[str_replace] 是替換字串。 update [table] set [field]=replace([field],’[str_search]‘,’[str_replace]‘); 如果不想將整個資料表的欄位資料更換,可以在最後用 where 做條件選擇,例如: update [table] set [field]=replace([field],’[str_search]‘,’[str_replace]‘) where `zip`=’852′; 以上語句跟第一句的分別是,第二句只會對欄位 “zip” 為 “852″ 的紀錄作更改。

Comments (2)

實用 SMTP 指令

使用 Telnet 連接到 email server 的 port 25 後,便會出現交談模式,可以輸入 SMTP 指令,以下是常用的 SMTP 指令,測試 SMTP Server 很有用: HELO “yourname” – 知會 SMTP Server 你是誰,例如 HELP example.com MAIL FROM “email@server.com” – 寄件者電郵地址 RCPT TO: “email@smtpserver.com” – 收件者電郵地址 DATA – 以上步驟通過後,可以用 DATA 開頭並輸入信件內容,結束時用 “.” QUIT – 離開用 QUIT 結束

Leave a Comment

找 Domain Name 要小心

剛剛在 Digg 看到的,域名註冊商會記錄訪客搜尋的域名,然後如果當訪客沒有立即註冊,他們會選一些好域名註冊。 我找域名的習慣是列出一堆 keywords 後搜尋,記下可以註冊的域名再選擇一個較好的,以我這個做法來看,用 Networksolutions 的 domain search 功能最適合,但看來下次找域名時要改用 whois,選定後便直接註冊。

Comments (1)

將 Apache 升級到 2.2.0

Apache 2.2.0 已推出一段時間了,今天在家中的 Debian 升級來看看。編譯及安裝後沒有什麼問題,只是 PHP 也需要一同重新編譯。然後再看看設定檔,發覺在 /path_to_apache/conf 目錄下多了一個 extra 目錄,裡面有以下的設定檔: httpd-autoindex.conf, httpd-dav.conf, , httpd-default.conf, httpd-info.conf, httpd-languages.conf, httpd-manual.conf, httpd-mpm.conf, httpd-multilang-errordoc.conf, httpd-ssl.conf, httpd-userdir.conf 及 httpd-vhosts.conf 新的管理方法比以前更有條理,以前是用一個 httpd.conf 包括所有關於 Apache 的設定,現在按照功能而細分出以上檔案,只需根據自己想修改的地方開啟相關檔案設定即可。另外不知是否心理作用關係,覺得新版本比 2.0 執行起來更快。

Leave a Comment

Unix 及 Windows 文字檔轉換

大家如果試過在 Linux 及 Windows 文字檔分享的話,會發現文字檔的 “換行” 不一樣。在 Windows 用記事本開啟 Unix 文字檔時,文件不會開新行,需要使用支援 Unix 格式的文字編輯器才可看到分行;而在 Linux 開啟 Windows 的文字檔時,在每一行最後會有字元 Ctrl-m (^M)。以下是使用 Perl 在 Linux 下將文字檔轉換的方法: Windows 格式 -> Unix 格式 perl -p -e ‘s/r$//’ < winfile.txt > unixfile.txt Unix 格式 -> Windows 格式 perl -p -e ‘s/n/rn/’ < unixfile.txt > winfile.txt

Comments (1)

MySQL 資料庫轉換: 4.1 to 4.0

MySQL 4.1 的資料表格式相比起 4.0 增加了 character set 的資料,所以如果當編碼設定錯誤的話,很多時雙字節文字 (例如中文字) 便會出現亂碼,或者 ??? 等符號。今天我要想將儲存在 MySQL 4.1 的資料庫複製到 MySQL 4.0,單是使用 mysqldump 便會出現 sql 語法錯誤及亂碼情況,用 phpadmyadmin 也是相同結果,後來找到在 export SQL 檔時需要用 compatible 指定是那一種版本: shell> mysqldump –create-options –compatible=mysql40 db_name > dump_file 然後在 MySQL 4.0 裡面只要像以前一樣就可以了: mysql db_name < dump_file 總算成功轉換了,但原來只怪自己懶,在轉換資料庫後下載了新版的 phpmyadmin 回來,發覺新版 phpmyadmin 的 export 功能已經有 "SQL export compatibility" 可以設定資料庫。

Comments (2)

Linux 硬碟分割區命名方法

在 Windows 下我們所使用的概代是 c:, d:, e:…… 等等,而在 Linux 系統內則是使用另一個方法。一般常見的 IDE 硬碟為以 hd 命名,先根據 Primary, Secodary IDE 及 Master, Slave 的順序以 a, b, c, d 區分,然後再以硬碟的分割區順序以 1, 2, 3, 4 …… 遞增,例如 /dev/hda1 即是第 1 個 IDE 的 Master 硬碟的第一個分割區。 而 SATA 硬碟與 SCSI 硬碟,就會用 sd 取代上面的 hd,例如 /dev/sda1 是第一個 SATA/SCSI 硬碟的第一個分割區。

Leave a Comment

今天升級到 PHP 4.4.2

記得在 PHP 4.4.1 推出後便馬上升級,但該版本與 SquirrelMail 有相衝,會造成無限 loop 地顯示郵件,使 email server 的負載很高,所以要立即 downgrade 回前一個版本。而在 SquirrelMail 的官方網頁也看到這問題,當時要使用 PHP 4.4.x-dev 或安裝 patch。 今次學精了,在 PHP 4.4.2 推出後幾個星期才升級,現在升級後沒什麼問題,

Leave a Comment

Linux 系統的管線 (pipe)

Linux 系統的管線 (pipe) 概念十分實用及重要。所謂管線就是使用 “|” 符號,將第一個指令的輸出引導到第二個指令當作輸入,例如: ls /etc/ | grep ftp 以上指令分為兩部份,”ls /etc” 是列出 /etc 目錄下的檔案及目錄,而 “grep ftp” 則是搜索包括有 ftp 的內容。所以以上指令的執行結果就會是列出 /etc 裡面包括有 ftp 的檔案或目錄。

Comments (2)

你需要多少 bandwidht?

現在所有的寬頻公司也說自己的速度有多快、服務有多穩定,但如果一個普通的用戶是否需要這麼多 bandwidht? 就我自己為例,我在上年十一月前還是使用網上行 1.5M 寬頻,而因為加裝 Now 寬頻電視,所以升級到 8M。因為沒有 BT 的習慣,在家中的 server 也只供內部使用,所以唯一感受到 1.5M 及 8M 之間分別的是下載 Linux/FreeBSD 的 ISO 檔。 另外上網是否快速,不是單方面看自己的 ISP 所提供的速度,還要視乎另一端 (server 或別人的電腦)的速度。我不是說頻寬多了也沒什麼用,只要覺得與其將著眼點放在速度上,倒不如注重其穩定性及售後服務。

Comments (1)

重設忘記了的 Root 密碼

當忘記了 Linux 下面的 root 密碼時,可以用以下方法修復: 方法一: 1. 下次開機時,在 boot loader 將 ‘init=/bin/sh’ 加入到 kernel 的選項。 lilo: 在 prompt 輸入 ‘linux init=/bin/sh’ grub: 在正確的項目按 ‘e’ 進行編輯 2. 開機後用 passwd 指令更改 root 的密碼及重新開機即可。 方法二: 1. 使用 linux live-cd 開機,掛載儲存了 /etc/passwd 的分割區,如果不清楚是那一個,可以用 `fdisk -l` 查看分割區列表。假設你的分割區在第一個 IDE 裝置的第一個分割區,那便輸入: mount /dev/hda1 /mnt chroot /mnt 2. 最後與方法一相同,用 passwd 指令更改 root 的密碼及重新開機即可。

Leave a Comment