關於 PHP, Linux, Open Source 及個人生活記載的網誌。
RSS icon
  • 找出 Apache 設定檔

    Posted on April 29th, 2007 Sam Tang 2 comments

    各個 Linux Distro 及 control panels 會將 Apache 的設定檔放到不同位置,另外自行編譯及安裝 Apache,預設值會將設定檔放在 /etc/httpd,但編譯時可以指定到其他的位置及檔案名稱。(預設的設定檔名為 httpd.conf)

    以下是幾個找出 Apache 設定檔的方法:

    1. httpd 指令:

    httpd -v | grep HTTPD_ROOT

    2. find 及 locate 指令:

    因為用 find 要等一段時間,所以建議在使用 find 指令前先試試用 locate 指令:

    locate httpd.conf

    如果找不到的話,便要用 find 指令來找:

    find / -name ‘httpd.conf’ -print

    3. cPanel 或 Plesk Control Panel

    如果是使用 cPanel 或 Plesk Control Panel,會放到 /home/username/ 或 /var/www/vhosts/ 目錄。


  • MySQL Patches — google-mysql-tools

    Posted on April 27th, 2007 Sam Tang No comments

    Google 以 GPL 釋出 MySQL 資料庫工具 — google-mysql-tools。這個工具適合 MySQL 4.0.26,而 Google 預期很快會推出 MySQL 5 的版本。主要功能包括:

    * SemiSyncReplication – block commit on a master until at least one slave acknowledges receipt of all replication events.
    * MirroredBinlogs – maintain a copy of the master’s binlog on a slave
    * TransactionalReplication – make InnoDB and slave replication state consistent during crash recovery
    * UserTableMonitoring – monitor and report database activity per account and table
    * InnodbAsyncIo – support multiple background IO threads for InnoDB
    * FastMasterPromotion – promote a slave to a master without restart


  • 要對自己的投資決定負責

    Posted on April 21st, 2007 Sam Tang No comments

    實際上不單止在投資的決域上,在任何時候自己當然要為自己的決定負責,但近來我收聽電台節目時,間中也有一些人指摘一些股評人的建議導致他們賠錢。

    我並不覺得那些股評人或股票界人仕有什麼問題,因為他們只是給予建議,作最後決定的還是投資者自己。而且如果只是單單聽了一些股評人的介紹,或者在報章看看推介便可以投資獲利,相信很多人也會轉行做"全職炒家"。我身邊也有一個例子,我嬸嬸年多前看報章推介買了一隻股票,到現在賠了三成,她問我是否應該沽貨。我問她知不知道那上市公司從事什麼行業,她說不知道。

    如果她買的是匯豐或者宏利,我肯定會叫他繼續持有,但她買那支股票我未聽過,只好說不知道。而且無論我給予她什麼建議,如果以後她有什麼損失,多數會向各親朋好友細說一番。在街市買餸也會看是否新鮮,為何花巨款買股票就那麼無所謂呢,如果想不做功課就投資,只好買像匯豐這類股票,起碼即使賠錢後,不過幾年又會創新高。

    星期四股市下跌時,忍不住手買了江西銅 (358),公佈業績後最新市盈率只有七倍多,而且股息也有三厘以上。


  • 錯失買入匯豐的機會

    Posted on April 18th, 2007 Sam Tang No comments

    匯豐控股 <0005> 是香港人的愛股,有一個說法為 "有買貴,冇買錯"。早前匯控因美國次級按揭問題拖累,股價由高位 $152 跌到 $133,而實際上匯控的股價在 $140 以下已算吸引。但自己太貪心,希望可以等跌穿 $130 才買,結果就這樣錯失了買入的良機。

    現在很多人不買匯豐,因為嫌每手入場費貴,而且升得慢,但我就覺得匯豐始終有她的好處,首先匯豐的業務是全球性,而且每年有四厘多股息,是長線投資組合的不二之選。錯過這次機會,還是等一等,機會總是有的。


  • UNIX 權限數值

    Posted on April 15th, 2007 Sam Tang No comments

    在 UNIX like 環境中要改變檔案或目錄的權限,通常會用上代表權限的數值,例如:

    chmod 777 filename

    以上指令是用 chmod 將檔案 filename 的權限改為 777,以下為權限數值的定義:

    用戶      數值      結果
    Owner: 0400 -> 檔案的 owner 只可以讀取檔案。
    Owner: 0200 -> 檔案的 owner 只可以寫入檔案。
    Owner: 0100 -> 檔案的 owner 只可以執行檔案;如果是目錄,則 owner 可以在目錄進行搜索。

    Group: 0040 -> 用戶組的成員只可以讀取檔案。
    Group: 0020 -> 用戶組的成員只可以寫入檔案。
    Group: 0010 -> 用戶組的成員只可以執行檔案;如果是目錄,則 owner 可以在目錄進行搜索。

    Other: 0004 -> 其他用戶只可以讀取檔案。
    Other: 0002 -> 其他用戶只可以寫入檔案。
    Other: 0001 -> 其他用戶只可以執行檔案;如果是目錄,則 owner 可以在目錄進行搜索。

    要知道需要設定權限的數值,只需將以上各數數值相加,例如我想給予 owner 讀/寫/執行的權限,而用戶組用戶及其他用戶只有讀/執行的權限,那麼就是 0400+0200+0100+0040+0010+0004+0001 = 0755。

    整句指令便會是: chmod 755 filename


  • CentOS 5 釋出

    Posted on April 14th, 2007 Sam Tang No comments

    在 RedHat Enterprise Linux 5 釋出幾個星期後,基於 RHEL 5 的 CentOS 5 也已經釋出。如果不想向 Redhat 購買 RHEL,而又想合法地使用較 Fedora 穩定的 Linux 發行版,CentOS 是一個很好的選擇。

    下載連結:
    Download links: Torrents CD/DVD ISO : i386 and x86_64


  • 建構 Apache chroot 環境: ModSecurity

    Posted on April 14th, 2007 Sam Tang No comments

    chroot (全寫為 change root) 是將整個 process 限制在指定目錄內的工具,這個限制的目錄一般稱之為 "監獄" (jail)。當使用了 chroot 後,當一個伺服器發生安全問題時,也不致於波及到整個系統。

    在建立 chroot 環境的過程中,需要將一些伺服器程式要用到的 shared library 和各種系統工具複製,使它們以在 "監獄" 內工作。這些工作要完作一點也不容易,而 ModSecurity 就是使整個過程變得簡單。


  • 2007 年垃圾電郵會比正常電郵多

    Posted on April 12th, 2007 Sam Tang 1 comment

    這個也不會有什麼意外,因為現在每天所刪除的 spams 已經比正常電郵多。這份調查報告:Spam to overtake human-issued e-mails in 2007 顯示了垃圾電郵所帶來的問題,以及提出了在 2007 年八月開始,將會首次垃圾電郵會比正常電郵 (human-to-human) 還要多。

    雖然現在的 anti-spams 軟件已經進步了不少,只可能面對各式各樣的垃圾電郵,真有點無能為力的感覺。很多垃圾電郵已經不顧郵件看上去如何,或者是否有拼錯字,只要發送出去而又避開 anti-spams 系統,並加上自己的網址就算數。很難想像再過幾年後的情況,是否電郵信箱內都塞滿了一堆垃圾郵件,只有一兩封有用的電郵。


  • 差點遺忘了的羽毛球

    Posted on April 12th, 2007 Sam Tang No comments

    以前讀書時很喜歡打羽毛球,但當開始工作後,已經很久沒有打過,就連運動也少得可憐。今天和女朋友去 Yoho Town 打了一個小時,不夠二十分鐘已經喘氣。唉,現在的體力已經大不如前,以前可以連續打幾小時也沒問題。

    雖然是氣力不繼,但打完後出了一身汗還真是舒服,這讓我想到另一個問題,就是自己的健康。現在才二十多歲就這樣,真不知以後怎算,我想還是多點注意飲食及多做運動。雖然知道跑步很健康,但自己覺得很悶,可能以後少開點車,多點行路,又或者一些球類運動更能喚起興趣。


  • PHP Paypal framework: phpPaypalPro

    Posted on April 10th, 2007 Sam Tang No comments

    phpPaypalPro 是一個用 PHP5 開發的 object-oriented framework,使用 PHP5 內建的 SOAP extension 與 Paypal 的 Soap Server 進行互動。它可以簡單地整合 Paypal 的Website Payments Pro SOAP 1.1 API。這個 framework 使用上很容易,只要簡單幾行便可以執行各種交易操作。

    現時最新版本為 0.2.0,支援的功能有:

    – DoDirectPayment
    – SetExpressCheckout
    – GetExpressCheckoutDetails
    – DoExpressCheckoutPayment
    – TransactionSearch
    – GetTransactionDetails


  • PHP 過濾器: PECL Input Filter

    Posted on April 9th, 2007 Sam Tang No comments

    過濾用戶輸入一直也是 web 應用很重要的安全工作,在 PHP 內除了自行編寫過濾特別字符串的程式外,也可以用現成的 PECL extension: Input Filter extension。要使用這個 extension 需要在 shell 輸入以下指令安裝:

    pecl install filter

    以下例子假設有一張表單,裡面有兩個欄位: name, age 及 email。而我們希望 name 會用字串;age 是數字;email 就是電郵格式,那麼便可以這樣做:

    PHP:
    1. <?php
    2. $clean = array();
    3.  
    4. $clean['name']  = filter_input(INPUT_POST, 'name',  FILTER_VALIDATE_REGEXP, array('regexp' => '^[\w ]+$'));
    5. $clean['age']   = filter_input(INPUT_POST, 'age',   FILTER_VALIDATE_INT);
    6. $clean['email'] = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
    7. ?>

    以上會使用 filter_input 函式來過濾輸入,如果輸入是合符規定,會回傳沒有改動的變數;如果不符合規定,便會回傳 FALSE,而如果變數不存取便會回傳 NULL。

    如果不想回傳 FALSE,而是回傳經過處理的輸入,假設 $_POST['name'] 是 "<b>My Name</b>" 可以這樣做:

    PHP:
    1. <?php
    2. $clean = array();
    3. $clean['name']  = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
    4. ?>


  • 檢查 CGI 安全漏洞

    Posted on April 9th, 2007 Sam Tang No comments

    CGI 全寫是 Common Gateway Interface,CGI script 可以用系統支援的程式語言編寫,例如 C/C++ 及 Perl 等。而 CGI 在系統上是有可執行,也就是說任何人也可以透過網站執行惡意指令,例如查看系統檔案及shell access 等。

    而大多數的漏洞也是因為沒有檢查用戶的輸入,而讓惡意攻擊者透過 web 執行指令,例如以下 URL:

    http://host/cgi-bin/query?%0a/bin/cat%20/etc/passwd

    以上的 (%0a) 是開新一行, (%20) 是空格,那便這句 URL 便會透過 /bin/cat 開啟 /etc/password 檔案。

    除了開啟系統檔案外,系統也可能被當成 Denial of service (DoS) 的工具:

    http://host/cgi-bin/ncommerce3/ExecMacro/macro.d2w/%0a%0a..(aprox 1000)..%0a

    所以在編寫 CGI 時要特別注意安全的問題,以下是一些建議:

    -- 不要隨便讀取用戶的輸入,即使必要也需對特別的字串做過濾。
    -- 不要用 eval 建立執行指令字串。
    -- 使用 popen() 及 system() 時要謹慎。
    -- 關閉 server side includes (SSI)。


  • 預訪 phpBB Spambots

    Posted on April 7th, 2007 Sam Tang 1 comment

    phpBB 這個開放源碼的論壇有流行,但它最大的問題是漏洞太多,其中一個較大的問題是 spammers 會利用論壇發送 spams。以下是一些可以預訪 phpBB Spambots 的 mods:

    -- Disable spambots
    -- Stop Spambot Registration
    -- Block Open Proxy Registrants
    -- Configure Member Profile Required Fields


  • 試玩 User Mode Linux

    Posted on April 6th, 2007 Sam Tang 1 comment

    現在虛擬化 (virtualization) 技術越來越流行,而且也會是未來一個吹勢,趁這幾天假期開始動手裝起來試試。簡單來說,User Mode Linux 就是在 Linux 裡面建構一個虛擬環境來執行另一個 Linux,將 Linux Kernel 當作當成普通的 Linux process 來報行。這對於要進行一些系統測試十分有用,因為可以避免現有系統造成破壞。

    在虛擬 Linux 所使用的硬碟空間是實體機機器內的一個檔案,也可以自訂虛擬機器可以使用的硬件裝置,而在虛擬裡面是不可以存取或修改實體機器。

    在看了 Samba Hong Kong 的教學影片 "User Mode Linux And Simple Linux (粵語) " 後,一步一步照著做起來一點也不難,可能是有人帶著做的關係。另外 User-mode Linux Kernel 站內也有很多有用的資訊,接下來的幾天要繼續學習一下。


  • 三月入的股票

    Posted on April 3rd, 2007 Sam Tang No comments

    上月股市從高位調整了二千多點,我便趁這機會買了以下股票:

    廣深鐵路 <525>
    中石油 <857>
    建設銀行 <939>
    工商銀行 <1398>
    中國銀行 <3988>

    現在這些股票都有利潤,尤其建行及中石油。再加上經 IPO 抽到的 1500 股中銀香港 <2388>,現在持有六隻股票。日後還是等跌市的機會,希望可以多吸納一點優質股票,快點實現財務自由這個目標。

    富人不喜歡金錢,他們只喜歡資產,而資產往往亦會為他們帶來金錢;窮人只喜歡金錢而不愛資產,更喜歡以賤價將資產賣給富人。