還會繼續用 Perl

在十多年前讀書的時候學 C/C++, 後來因工作關係開始學習 PHP, 學習了 PHP 兩年左右開始學 Perl, 主要是寫一些系統管理的工具。其他的程式語沒有認真學, 要用再找資料。直到目前為止, 當要寫一些網頁應用程式, 我會用 PHP, 而一些 Linux 系統管理工具會用 Perl。近年用 Perl 的人越來越少, 我覺得主要原因是很多原本用 Perl 的系統管理員轉用 Python, 因為 Python 在 OOP 方面做得比 Perl 好。我也看過一些 …

在 Linux 下分割及合拼檔案

如果需要將一個體積龐大的檔案分割成細小的檔案,在 Linux 可以用以下方法簡單實現:分割檔案 假如有一個 5MB 的 testing.mp3 檔案,你想分割成每份 1MB 大小的檔案,可以用以下指令:split –bytes=1000000 testing.mp3 output以上指令設定了分割檔案的大小上限為 1000000 bytes,以及分割好的檔案會以 output 開頭,然後加上分割檔案的順序編號,例如 output00, output01 等。合拼檔案 分割完檔案後當然需要合拼,只要使用以下指令即可:cat split1 split2 split3 > output以上指令會將 split1, split2, split3 合拼為 …

變更檔案最後修改時間

如果在 Linux 想想變更檔案的最後修改時間,可以用 touch 指令,格式為 「touch -t 年月日時分.秒 檔案」,例如:touch -t 200507012015.10 readme.txt以上指令會把檔案 readme.txt 的最後修改時間改為 2005 年 7 月 1 日 20 時 15 分 10 秒。如果想改成現時的時間,只需輸入 「touch readme.txt」。

ADSL Router – ASUS DSL-N66U

上兩個星期在英國 Amazon 買了 ASUS DSL-N66U Modem Router,選擇 DSL-N66U 的理由是它有雙 USB,可以同時連接 USB 手指 + Printer,同時很喜歡華碩的介面。DSL-N66U 大致跟 RT-N66U 差不多,主要是 DSL-N66U 加入了支援 ADSL/VDSL,例如我用 PCCW 上網,不需使用 PCCW 提供的 Modem 連接上 Router,而是直接將電話線接上 DSL-N66U 的 DSL …

PHP 透過 Sudo 執行 root 指令

一直以來要用 PHP 以 root 身份執行系統管理工作的問題,就是 PHP 會以 apache 的身份執行,解決方法有安裝 suPHP 或 super 這類工具,但個人認為還是 Sudo 較為安全。首先要安裝 Sudo,據我所知 RHEL, Ubuntu 已經內置,Debian 只要用 apt-get 安裝就可以,以下是 FreeBSD 的安裝方法:FreeBSD 安裝 Sudo # cd /usr/ports/security/sudo # …

MySQL 的 Replace 功能

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

open_basedir 設定多個目錄

在 PHP 內有一個安全選項是 open_basedir,這個選項是限制 PHP 可以開啟的目錄,可以透過 php.ini 及 httpd.conf 設定,而我一直也有使用這個選項。今天 server 要改一些設定,要將兩個目錄加入 open_basedir 內,發現用論用空格、逗號、分號來區隔兩個目錄都不行,而根據 PHP 官方網站的說法,這個選擇是支援多個目錄的。在 google 找了一下,原來要用冒號來區隔兩個目錄,例如:open_basedir “/path/dir1/:/var/tmp/”

將 .htaccess 檔案改名

.htaccess 可以改變很多網站的設定,這也造成一個安全性的問題,因為有心人都會估計到網站可能會用 .htaccess,如果未有對 .htaccess 進行權限設定,所有人都可以瀏覽 .htaccess 的內容。除了變更權限外,也可以設定 Apache 讀取其他檔案名稱,那麼其他人便不會那麼容易知道設定檔的位置,但這個方法需要編輯 httpd.conf 才可以實現。在 Apache 建立的 virtualhost 裡面,只要加入 “AccessFileName” 便可以自訂設定檔的名稱,例如:AccessFileName .htaccess.hidden以上語句會指定 .htaccess.hidden 代替原本的 .htaccess 檔案。