網絡技術日誌
關於 PHP, Linux, Open Source 及個人生活記載的網誌。-
ScanGauge 走線安裝
Posted on January 25th, 2012 No comments早前在淘寶買的 ScanGauge 很好用,但當初只是將它貼在標板下面,要看裡面的資訊很不方便,昨天將它安裝到安響的空格內,雖然不是很完美,但瀏覽資訊時就方便多了。

-
.htaccess – Invalid command ‘AuthUserFile’ 錯誤
Posted on January 17th, 2012 No comments在主機上的 Apache 用 .htaccess 設定了密碼保目錄,但發覺升級 Apache 後就出現 Internal Server Error,再查看 apache 的 error log,發現以下的錯誤訊息:
.htaccess: Invalid command ‘AuthUserFile’, perhaps misspelled or defined by a module not included in the server configuration
解決方法只要開啟 httpd.conf 並開啟 authn_file module 便可以,打開 httpd.conf,找到 mod_authn_file 一行並將最開端的註釋符號刪除,改成:
LoadModule authn_file_module modules/mod_authn_file.so
然後重新啟動 apache 便完成了。
-
Linux 下找出體積最大的檔案/目錄
Posted on January 5th, 2012 No comments當發現系統硬碟空間突然上升時,想知道那個檔案或目錄佔用最多空間,可以用 du + sort + head 指令完成,它們的作用分別為:
du: 計算目錄所使用的空間
sort: 將輸入的資料排序
head: 將輸入資料的最開頭幾行資料輸出假如發現 /home 裡面的空間使用異常時,可以用以下指令查看 /home 裡面頭 10 個使用最多硬碟空間的檔案或目錄:
# du -a /home | sort -n -r | head -n 10
-
MySQL: [ERROR] Unknown character set 問題
Posted on January 1st, 2012 No comments早前升級一台主機的 MySQL Server,升級後發現部份資料表無法開啟,報出的錯誤訊息是:
Unknown character set: ‘BIG5′
出現這個問題的原因是新版本 MySQL 安裝時沒有安裝額外的字集,而對上一個版本的 MySQL 是用 YUM 安裝,所有透過套件工具安裝的 MySQL 也會預設安裝所有字集,解決方法是重新編譯 MySQL 並加上所有的字集的選擇 –with-extra-charsets=complex,編譯語法如下:
./configure — prefix=/usr/local/mysql –with-extra-charsets=complex
如果在 FreeBSD 遇上這個問題,而 FreeBSD 內的 MySQL 是透過 ports 安裝的話,便要使用 WITH_XCHARSET=all 參數:
make WITH_XCHARSET=all install clean
-
汽車保養週期
Posted on December 28th, 2011 No comments這是根據我自己的駕駛習慣整理出來的汽車保養週期,駕駛模式大約為 70% highway, 30% 市區,大多情況都不會滿坐,並溫和駕駛。這個保養週期會根據車種的不同及駕駛風格而有所區別:
機油及機油濾芯: 5000KM 或半年
ATF 波箱油: 20000KM 或 1 年
波箱隔: 50000KM
火咀: 15000KM (白金及長效型銥金可 100000KM 才換,競技型銥金則 20000KM)
風隔(空氣濾芯): 5000KM
水箱水: 20000KM 或 1 年
煞車油: 20000KM 或 2 年
電油隔(汽油濾芯): 50000KM
-
Linux 下編譯 Apache 的 mod_rewrite
Posted on December 28th, 2011 No comments要為 Apache 加載 mod_rewrite 模組,如果 Apache 並未安裝,可以在編譯時加上 –enable-rewrite 便可以,但如果 Apache 已經安裝好,而又不想重新編譯 Apache 的話,可以用以下方法:
1. 首先 cd 到 Apache 的源代碼目錄並到 mod_rewrite.c 檔案,
1. 在apache的源码安装目录中寻找mod_rewrite.c文件
# find ./ -name mod_rewrite.c
2. 進入 mod_rewrite.c 的目錄並用 apxs 編譯 mod_rewrite.c# cd PATH/to/mod_rewrite.c
# /usr/local/apache/bin/apxs -c mod_rewrite.c
# /usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.la3. 編譯好 mod_rewrite.c 後,便開啟 httpd.conf 加入以下內容:
LoadModule rewrite_module modules/mod_rewrite.so
然後重新啟動 Apache 便可以了。
-
Centos 安裝及設定 MRTG
Posted on December 22nd, 2011 No commentsMRTG 是一套十分出名的網路流量監察工具,它會透過 SNMP 協定取得網路流量資料,並以網頁介面輸出。要安裝 MRTG,需要安裝以下套件:
mrtg: MRTG 的主程式
net-snmp: NET-SNMP 內建幾個 SNMP 工具,包括 snmpd 及 snmptrapd daemons 及文檔等。
net-snmp-utils: 內建一些 NET-SNMP 工具。以下是在 Centos 安裝及設定 MRTG 的步驟:
1. 安裝 MRTG:
在 Centos 下輸入以下指令安裝所需套件:
# yum install mrtg net-snmp net-snmp-utils
2. 設定 SNMP:
開啟 /etc/snmp/snmpd.conf,加入以下下一行: Read the rest of this entry »
-
service httpd does not support chkconfig 問題
Posted on December 21st, 2011 No comments在 Redhat 或 Centos 下手動編譯安裝 Apache 後,將 apachectl 放到 init.d 裡面,然後用 chkconfig 自動啟動,即以下動作會得出 service httpd does not support chkconfig 錯誤:
# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
chkconfig httpd on
service httpd does not support chkconfig解決方法是開啟 /etc/rc.d/init.d/httpd,把以下兩行加入到第二行便完成了。
# chkconfig: 35 85 15
# description: Apache is a World Wide Web server.
-
Redhat/Centos 架設 DNS Server
Posted on December 19th, 2011 No comments安裝環境 Centos 5.7
http://yacnoss.blogspot.com/2008/07/dnsbind.html
1. 安裝 DNS 所需套件:
只要用 yum 指令便可以一次過想所需的套件安裝。# yum install bind bind-chroot bind-utils caching-nameserver
在預設的情況下 Centos 不會建立 named.conf,要用以下方法建立:# cd /etc
grep -v ‘//’ named.rfc1912.zones > named.conf
chown root.named named.conf
chmod 640 named.conf2. 更新 root.zone
到 ftp://rs.internic.net/domain/root.zone 下載最新的 root.zone 資料檔,然後放到 /var/named/var/named/ 裡面。
然後就可以用 /etc/rc.d/init.d/named start 啟動 DNS Server。
啟動後可以輸入以入指令測試 DNS Server 是否正常運作:
# dig www.google.com @127.0.0.1
關於在 DNS Server 加入 zone 及其他設定,可以參考以下文章:
http://linux.vbird.org/linux_server/0350dns.php
-
Linux — 將一個用戶的進程全部 kill 掉
Posted on December 19th, 2011 No comments當某個用戶使用過多系統資源時,可以用以下指令將他開啟的所有進程 kill 掉:
kill -9 `ps -u USERNAME -o “pid=”`
使用上只要將以上指令的 USERNAME 改成用戶名稱。
-
Redhat/Centos Yum 安裝 MySQL 問題
Posted on December 16th, 2011 No comments今日在一台伺服器上升級 PHP 的版本,伺服器原來已經用 Yum 安裝了 MySQL,在手動編譯 PHP 時一直出現以下錯誤訊息:
configure: error: mysql configure failed. Please check config.log for more information.
原來我在編譯 PHP 時用了錯誤的參數,原本我是用 “–with-mysql=/usr/”,要將這個參數改成 “–with-mysql-dir=/usr/” 才可以編譯成功。
-
找出隱藏的 process 及 port
Posted on December 15th, 2011 No comments很多 rootkits 用了一些隱藏技巧,用 netstat 也找不出來,這個時候可以用 chkrootkit 這類工具掃瞄,另外還可以用 Unhide 搜索是否有不尋常的 process 及 port。
Unhide 是一個輕巧的安全工具,可以找出 rootkit 所開啟的 process 或 TCP/UDP ports,除了 Unix 版本外,它還有 Windows 版本。如果是使用 Redhat,可以到 pkgs.org 下載相應版本的 rpm 檔案裝。
在 Debian / Ubuntu 則較簡單,用 apt-get 安裝就好了。
# apt-get install unhide至於使用上也是很簡單,一般上以下幾個指令就會搜索系統內隱藏的 process 及 ports:
# unhide-posix proc
# unhide-posix sys
# unhide-tcp
-
升級 WordPress 後的亂碼問題
Posted on December 12th, 2011 No comments昨天將 WordPress 從 2.0.x 升級到 3.2.1 後發覺全站的中文變成亂碼,但恢復舊版本的 WordPress 又可以正常顯示,那就是設定的問題。
最根本的問題是原來的資料使用 latin 1 編碼,而 WordPress 預設是使用 UTF8 編碼,要徹底解決就要用 mysqldump 將資料匯出並修改編碼。
但不想這麼麻煩,反正一直用得好好的,找到一個最簡單的方法是開啟 wp-config.php,找到以下兩行然後注釋掉:
// define(‘DB_CHARSET’, ‘utf8′);
// define(‘DB_COLLATE’, ”);
-
PHP 取得用戶真實 IP
Posted on December 12th, 2011 No comments要用 PHP 取得用戶的 IP 十分容易,只要用 $_SERVER['REMOTE_ADDR'] 變數就可以知道用戶的 IP,但如果用戶使用了 proxy server 上網的話,$_SERVER['REMOTE_ADDR'] 只會得到 proxy 的 IP 地址。
以下方法會使用 $_SERVER["HTTP_CLIENT_IP"] 及 $_SERVER["HTTP_X_FORWARDED_FOR"] 解決這個問題:
PHP:
-
PHP 的 is_file() 及 file_exists()
Posted on December 9th, 2011 No commentsPHP 的 is_file() 及 file_exists() 都是用作檢查檔案是否存在,它們的分別是 file_exists() 輸入的參數是目錄也會回傳 TRUE,而 is_file() 則只會對檔案回傳 TRUE:
PHP:但如果用 is_file(),即使 /path/to/dir 目錄存在,仍然會回傳 FALSE:
PHP:
