2009年4月12日 星期日

Ubuntu之網路卡更動導致沒抓到網路卡解決辦法


使用VirtualBox安裝Ubuntu的時候遇到了一個問題
就是在網路卡那邊修改了mac位置後進入Ubuntu之後網路卡就消失了

後來找了一下資料發現是因為Ubuntu會紀錄下網卡的mac位置
所以原本eth0的那張卡有更動後Ubuntu會不認得

解決辦法:
到文字模式或終端機底下
輸入指令
sudo -i
先變成有高權限的使用者
cd /etc/udev/rules.d
然後輸入指令
ls
找看看是否有 70-persistent-net.rules 和 75-persistent-net-generator.rules
這兩個檔案,並且將他刪除
指令為
rm 70-persistent-net.rules
rm 75-persistent-net-generator.rules
刪除後重新啟動系統(指令 reboot )
系統就會去抓取新的網路卡

PS. 在刪除輸入完指令前半段 rm 70rm 75-p 可按tab快速完成剩下的字串

2009年4月4日 星期六

PHP之ZIP解壓縮

因為PHP解壓縮會需要用到ZIP函式庫


可以先使用get_extension_funcs('zip')來檢查使用者是否有安裝

程式碼




//檢查是否有安裝zip函式庫
if(get_extension_funcs('zip')){
//開起ZIP壓縮檔
//getcwd()是取得絕對路徑,好像一定要這樣才讀得到檔案...
$z=zip_open(getcwd()."/test/test.zip");
//如果還沒解壓縮完成就繼續 while
while($c=zip_read($z)){
//建立要解壓縮的檔案到test資料夾
$f=fopen("./test/".zip_entry_name($c),"w");
//讀取zip檔案內的資料
zip_entry_open($z,$c,"r");
//寫入檔案
fwrite($f,zip_entry_read($c,zip_entry_filesize($c)));
fclose($f);
}
zip_close($z);
}else{
?>沒有安裝ZIP函式庫...<?
}


此方法只能解無資料夾的zip


歡迎各位提問或給予指教

2009年3月19日 星期四

PHP的Header基本常用筆記

Header就是HTML的標頭,用來告訴瀏覽器該頁面的相關資訊
是個很重要的功能,他可以強制規定(或欺騙)瀏覽器的瀏覽方式

以下是一些問題常用到的設定:

1.網頁常常出現亂碼解決方案:
一般而言,在html文件的head標籤內應該都會設定(以utf8為例) :
<meta equiv="Content-Type" content="text/html; charset=utf-8">
這樣的meta標籤來告訴瀏覽器編碼

但是有時候常常會忘記加上這段,或是因為不明的原因還是會出現亂碼,這時候或許利用header可以解決這個問題
在網頁剛開始的地方(任何的html或任何資訊送出以前,最好是網頁最剛開始的那一行)加上這段:
如果要改善utf8編碼的錯誤
header("Content-Type:text/html;charset=utf-8");
如果要改善big5就是 header("Content-Type:text/html;charset=big5");

2.header轉址
以下指令可以讓頁面轉到index.php
header("Location: ./index.php");
或是跳轉到其他網站
header("Location: http://www.google.com.tw");

3.下載檔案
header('Content-Disposition: attachment; filename="test.txt"');
filename : 要讓使用者下載儲存的檔案名稱
這個功能在 php自動備份sql 或是 產生報表 的時候非常有用


如果任何錯誤或是問題歡迎Email給SeaChaos

2009年3月13日 星期五

[筆記]Ubuntu的Http Server掛載或卸載模組

以下是Ubuntu的apache2掛載(Enable)與卸載(Disable)模組的快速方法

掛載:終端機(命令列)介面輸入 a2enmod [模組名稱]
卸載:終端機(命令列)介面輸入 a2dismod [模組名稱]

(記得要有root權限)

以掛載rewrite(重寫)引擎為例:
root@ubuntu#a2enmod rewrite
然後重新啟動Server
root@ubuntu#service apache2 restart

如果要看有哪些模組可以參考 /etc/apache2/mods-available 目錄
或是輸入直接輸入a2enmod就可以看見可以掛載的模組
直接輸入a2dismod就可看見已經安裝(可以卸載)的模組

2009年2月21日 星期六

Ubuntu在有DHCP的網域下設定網路成固態IP

在學校安裝Ubuntu當作Server的時候發現了一件怪異的事情
就是明明已經設定好了固態IP,重新開機做測試的時候居然發現又變回動態IP了...

於是上網找到了答案,問題出在Ubuntu的Network設定

解決方法如下(Ubuntu 8.10):
1.開啟終端機模式
2.輸入:sudo gedit /etc/network/interfaces
3.輸入你的密碼以便取得root權限做修改
4.內容參考修改成以下

auto lo
iface lo inet loopback
iface eth0 inet static

address 210.210.210.210
netmask 255.255.255.0
gateway 210.210.210.199

auto eth0

===========說明=========
address 就是固態IP的位置
netmask 就是子網路遮罩
gateway 就是閘道位置


做好了以上修改,又有一個問題了,就是DNS的設定
DNS的設定步驟如下

1.到終端機輸入:sudo
gedit /etc/resolv.conf
2.編輯內容範例如下:


# generated by NetworkManager, do not edit!
nameserver 192.168.1.1
nameserver 192.168.1.2
=======說明=========
nameserver 後面的ip就是DNS Server的ip

設定完成後可以重新啟動Ubuntu或是在終端機下輸入以下指令:
sudo /etc/init.d/network restart
網路就會重新啟動了