關於 PHP, Linux, Open Source 及個人生活記載的網誌。
RSS icon
  • FreeBSD 開啟 quota 功能

    Posted on December 5th, 2007 Sam Tang No comments

    FreeBSD 預設沒有支援 quota 功能,如果需要支援 quota 便要重新編譯 kernel。以下是巨體實現方法:

    cd /usr/src/sys/i386/conf
    vi GENERIC

    加上 options QUOTA(中間分隔的是 TAB 而非空白鍵)。

    然後執行:

    config GENERIC
    cd ../../compile/GENERIC
    make depend all install

    編譯完成後,修改 /etc/fstab 檔案,例如要在 /home 這個分割區做空間管理,在 /home 的那行將 "rw" 改成 "rw,userquota"。

    然後修改 /etc/rc.config,加入:

    check_quotas="YES"

    完成後輸入 "sync;sync;reboot" 重新開機。

    在第一次執行 quota 時,請先執行以下指令:

    cd /home
    quotacheck -avug

    最後建立 /usr/local/etc/rc.d/quota_on.sh 檔案,讓開機時自動執行 quota,以下是 /usr/local/etc/rc.d/quota_on.sh 的內容:

    #!/bin/sh
    # Check quota and then turn quota on.
    if [ -x /sbin/quotacheck ]
    then
    echo "Checking quotas. This may take some time."
    /sbin/quotacheck -avug
    echo " Done."
    fi

    if [ -x /usr/sbin/quotaon ]
    then
    echo "Turning on quota."
    /usr/sbin/quotaon -avug
    fi


  • 隨機抽取 MySQL 內的資料

    Posted on December 5th, 2007 Sam Tang No comments

    如果要在資料庫內隨機抽取資料,可以用 PHP 或 MySQL 內置的 RAND() 函式來做,以下是使用 MySQL 的語法:

    SELECT * FROM table_name ORDER BY RAND() LIMIT 1;


  • 用 ImageMagick 製作縮圖

    Posted on December 5th, 2007 Sam Tang 1 comment

    只要在系統安裝 ImageMagick 後,就可以在指令模式下製作各種圖片的持效。當然也可以使用 PHP 從 shell 下使用 ImageMagick,以下是製作縮圖的方法:

    shell_exec("/usr/local/bin/convert -sample 500×500 /pathto/images/image1.jpg /pathto/images/image2.jpg");

    以上是將來源圖片 /pathto/images/image1.jpg 製作縮圖,高和闊都以 500 像素為上限,那就是說製作出的縮圖會根據原始圖片的比例下,高和閣都不會超出 500 像素,然後檔案會輸出到 /pathto/images/image2.jpg.

    如果要單單用 PHP 完成以上工作,要自行計算出縮圖片大小才可以做,而且更加可以用百份比,例如 50%x50% 就是高和闊都是原圖的 50% 大小。


  • 設定 Linux 對 Ping 指令沒有回應

    Posted on December 4th, 2007 Sam Tang No comments

    在 linux 裏,如果想對 ping 指令沒有反應,其實是忽略 icmp 封包,可以用以下指令實現:
    echo 1 < /proc/sys/net/ipv4/icmp_echo_ignore_all

    想回復原來設定可以用:
    echo 0 < /proc/sys/net/ipv4/icmp_echo_ignore_all


  • PHP 設定瀏覽器 timeout 時間

    Posted on December 4th, 2007 Sam Tang No comments

    如果你的 PHP 程式需要做很複雜的運算,而且預計不能在 30 秒 (PHP 的預設值) 內完成,可以在 PHP 程式的開始部份加上:

    set_time_limit(900);

    以上例子是將 timeout 時間設定成 900 秒,即 15 分鐘。


  • MySQL 中的變數

    Posted on December 4th, 2007 Sam Tang No comments

    一般上使用 MySQL 都是儲存資料及需要時抽取所需的資料,其實 MySQL 還有很多其他功能,以下介紹使用 MySQL 的變數刪除一些舊資料:

    select @del_time:=`time` from `article` order by `time` desc limit 499, 1;
    delete from `article` where `time`

    以上第一行 SQL,會定義一個 del_time 變數,value 是資料表 article 倒序排第 500 筆的 `time` 欄位。
    第二句是刪除在 article 資料表內時間比 del_time 還要舊的文章。


  • OpenOffice.org 加速啟動時間

    Posted on December 4th, 2007 Sam Tang No comments

    OpenOffice.org 是目前在 Linux 下的辦公室套件主流,但它的啟動實在太慢了,以下是 OpenOffice.org 加快啟動時間的技巧,我在 Ubuntu 7.10 上裡試驗後十分明顯,而只需更改 OpenOffice.org Word Processor,其他 OpenOffice.org 軟件也會自動生效。

    首先開啟 OpenOffice.org Word Processor,然後按 "工具" -> "選項"。

    然後選擇 "記憶體",並根據以下設定:

    – 復原 步數: 20
    – 圖形記憶體 用於 OpenOffice.org: 20
    – 物件數量: 20
    – 選取 systray 快速啟動

    然後選擇左邊的 "Java",並取消選取 "Use a Java runtime environment"。最後按 "確定"。現在可以嘗試開啟其他 OpenOffice.org 軟件,會發覺啟動速度加速了不少。


  • IE only 不單出現在小型網站

    Posted on December 3rd, 2007 Sam Tang 1 comment

    IE7 已經推出了一段時間,覺得升級還應該沒問題的。上星期升級到 IE7 後,一開啟便被那新介面吸引,可能第一個感覺就是比 IE6 慢,而且試過幾次當掉。

    今天便乾脆把 IE7 移除,換回 IE6 後感覺更順。在日常要用 IE 的原因不是 IE only 的網站,因為這個問題可以用 Firefox 的 IE View 解決。主要原因是用信用咭網上付款時,如果 payment gateway 是用 Visa Verified 的話,用 Firefox 即使輸入正確的驗證碼都不能交易,只可以用 IE 進行交易。

    想不到 IE only 這個問題連網上銀行也有,我有透過客戶服務熱線反映這個問題,但我想他們也不會認真看待,畢竟在一般用戶裡面使用 Firefox 的還是少數。


  • 用 .htaccess 強制顯示下載對話框

    Posted on December 2nd, 2007 Sam Tang No comments

    在網頁上直接連結到如 .avi 及 .pdf 檔案時,瀏覽器不會彈出下載對話框,而會直接在瀏覽器顯示內容。這個問題可以透 .htaccess 解決,強制指定檔案顯示下載對話框,例如:

    AddType application/octet-stream .avi
    AddType application/octet-stream .mpg
    AddType application/octet-stream .mov
    AddType application/octet-stream .pdf


  • 失去寫程式的熱情

    Posted on December 2nd, 2007 Sam Tang 1 comment

    記得在讀書時,寫程式是自己的興趣,覺得如果日後可以將自己的興趣作為工作會很不錯,而後來也將寫程式變為自己的工作。但近一兩年開始發覺,對以前那股熱情好像慢慢減退了,在空閒時也不會找點什麼寫一寫。

    雖然自己寫出來未必有一些現成的開源程式好用,但以前總是什麼都想自己來,但現在會找一些現成的開源程式,或者花幾十至一百多美元買一套付費版,功能已經很強大。

    現在寫的程式是為了工作所需,要在有限的預算及時間內完成,寫出來的程式一些也不紮實及健全。真的很希望可以找回在讀書時初次寫河內塔的熱情。