發表文章

CentOS6 解決Device eth0 does not seem to be present

一,問題描述 在VMware裡搬移 出來的CentOS 無法連上網路。 ifconfig...沒有看到eth0.。然後重啟網卡又報下面錯誤。 故障現象: service network restart Shutting down loopback insterface: [ OK ] Bringing up loopback insterface: [ OK ] Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED] 二,解決辦法 1 首先,打開/etc/udev/rules.d/70-persistent-net.rules內容如下面例子所示: # vi /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:8f:89:9 7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*...

OSI 七層網路與 HTTP 封包之間的關係

圖片
HTTP封包 講起網路,不免還是從OSI七層開始講起 OSI七層協定從下到上分別為 實體層(Physical Layer),資料鏈結層(Data Link Layer),網路層(Network Layer),傳輸層(Transport Layer),會談層(Session Layer),展現層(Presentation Layer),應用層(Application Layer) 在這裡,我們只要管  TCP  HTTP  在哪一層就行了 對應到我們抓到的HTTP封包 第一行,是個概覽,這個封包總共收到幾個Frame(訊框)等等 第二行,就是我們收到的Frame(訊框),可以看到我們用Ethernet協定傳送,裡面記錄著最後傳和目標傳到的Mac位址....等等 第三行,就是TCP/IP中的IP協定(Internet Protocol),紀錄著來源和目標的IP等等資訊 第四行,Transmission Control Protocol縮寫就是TCP協定啦,HTTP連線也是基於TCP協定的,可以看到來源和目的的port(連接埠)號 第五行,就是HTTP協定(Hypertext Transfer Protocol)啦 這裡有展開,可以看到完整的HTTP標頭,一個HTTP連線原來附著這麼多的資訊,也是等下要講的重點 第六行,沒甚麼特別的,就只是網頁原始碼 封包和傳送原理 封包大概是這樣子的 從程式的眼光來看好了,軟體要送個資料到另一台電腦 除了  實體層(Physical Layer) 之外  會依序從上往下包 每往下一層就加一些東西上去,到別人的電腦也是這樣,一層層拿掉標籤 最後得到資料 HTTP(應用層)也是如此,HTTP是基於TCP(傳輸層)的 在連線的時候也是如此 要先有TCP先連線才會可以跑HTTP的協定 先解釋TCP 看到一堆紅線了嗎 分成前三組和後三組 前三組,就是出名的三向交握 (3-way handshake 也有人翻譯三次握手) (天音:甚麼三向交握都看攏無) 看英文比中文意思比較準,意思就是 握手寒暄 啦 請設想一個情況,想你打skype給朋友 剛接起來網路電話的時候有沒有遇到這樣的情況 [SYN]         ...

PHP教學-利用 .htaccess 來改變 php 副檔名

為了安全性或是其他原因,常常看到許多網站的 URL 將實際檔案的路徑隱藏起來,比如說下方的 URL 我們就看不出該網頁是用什麼程式寫的,PHP 或是 ASP? http://www.blogger.com/post-create.g?blogID=27977601 舉個簡單的例子,如果我們想把網址中的副檔名 php 改成 htm。 開啟 http://localhost/test.htm 實際上是連到 http://localhost/test.php 實作步驟如下:     檢察 apahce 的 httpd.conf 這一行是否開啟 ( 以xampp為例預設是開啟的 ) :         LoadModule rewrite_module modules/mod_rewrite.so     在你要改寫 URL 的檔案資料夾中,放入一個檔案取名為 .htaccess,寫入以下內容,這樣就算是完成了,不必重新啟動 apache         RewriteEngine on         RewriteRule ^(.*)\.htm$ $1.php [nc] RewriteRule 這行的語法就是源自於 Perl 的 Regular Expression (正規表達式),在 PHP 和 Javascript 也常常用到。 $1 表示使用 RewriteRule 的第一個 Regular Expression (是否就是指 ^(.*)\.htm$ 這段?) [nc] 代表 not case sensitive (大小寫視為相同) ------------------------------ 還有其他比較複雜的範例 ,如果你也像我一樣不熟悉正規表達式,可以直接拿這些例子修改 : 1) 網址 product-12.html => 實際路徑 product.php?id=12     RewriteEngine ...

CentOS 6 - kernel panic - not syncing:Attempted to kill init! 錯誤訊息

圖片
將 SELinux 設定 disabled 後重開機常出現的錯誤訊息 Kernel Panic - not syncing: Attempted to kill init! Pid: 1 comm: init Not tainted 2.6.32-358.6.2.e16.x86_64 #1 Call Trace: [<ffffffff8150d478>] ? panic+0xs7/0x16f [<ffffffff81073ae2>] ? do_exit+0x862/0x870 [<ffffffff81182965>] ? fput+0x25/0x30 [<ffffffff81073b48>] ? do_group_exit+0x58/0xd0 [<ffffffff81073bd7>] ? sys_exit_group+0x17/0x20 [<ffffffff8100b072>] ? system_call_fastpath+0x16/0x1b 解法如下:     找到安裝CentOS時的光碟開機,開機後選擇以 Rescue 方式啟動,回答一些有關語言及網路設定等等的問題,然後它會問要從哪裡載 image ,選擇 HDD 就對了,然後磁區我是選第一個,載入的模式要我選要能 write 。     整個完全後,選擇進到 Shell 的模式。     命令下輸入:chroot /mnt/sysimage,切換成 root 身份。     命令下輸入:vi /etc/selinux/config,進入編輯器。     鍵盤輸入 i,進入插入編輯模式,修改 set SELINUX=disable 後,再按鍵盤 ESC 退出編輯模式。     鍵盤輸入 :wq ,就可以存檔並離開。     回到命令下,鍵盤輸入 exit,再鍵盤輸入 reboot。就可以重新開機,記得 CentOS 的光碟要拿出來。一切就恢復正常了。

HTML5 - 手機網頁禁止縮放相關設定

viewport 可以設定的屬性分別如下, width:可設定數值,或者指定為 device-width height:可設定數值,或者指定為 device-height initial-scale:第一次進入頁面的初始比例 minimum-scale:允許縮小最小比例 maximum-scale:允許放大最大比例 user-scalable:允許使用者縮放,1 or 0 (yes or no) 最初執行viewport meta加入如下 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 編譯過程會轉化成如下的語意, @viewport {     width: device-width;     initial-scale: 1.0 } 基本說明 width=device-width 先提一下幾個注意的地方,首先在 viewport 裡面的 width 通常會看到設定為device-width ,主要是為了讓整個頁面寬度與手機可視寬度相同,如此就可以簡單相容於不同機型螢幕大小,如果這邊width 沒有設定的話,就會依照 html css 給予的 width 當作預設值。 因為解析度不同,device-width 有時候不一定是 view width ,所以在類似 iphone 4 高解析度機器上,device-width=320 ,可是實際解析度為 480,這時候就需要利用javascript 針對UA 下去做動態調整。 user-scalable 從屬性名稱來看就是允許開啟、關閉的設定,使用者能否放大、縮小頁面,如果頁面不允許手機使用者縮放,就直接設定為 0,或者 no,反之要啟動縮放功能,給予 1或者是 yes。 接下來將說明幾種常用的方式,以及測試驗證提供給大家參考。 基本寬度(並不是指 html body width), <meta name="viewport" content="width=300px"> 基本高度 <meta name="viewport" content="height=300px"> 禁...

HTML5 - 離線網頁更新

需要提供一個cache manifest文件,理出所有需要在離線狀態下使用的資源 例如 Manifest代碼 CACHE MANIFEST    #這是注釋   images/sound-icon.png   images/background.png   clock.html    clock.css    clock.js       NETWORK:    test.cgi     CACHE:    style/default.css     FALLBACK:    /files/projects /projects  在html標簽中聲明 <html manifest="clock.manifest"> HTML5離線應用更新緩存機制 分爲手動更新和自動更新2種 自動更新: 在cache manifest文件本身發生變化時更新緩存 資源文件發生變化不會觸發更新 手動更新: 使用window.applicationCache Js代碼 if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {       window.applicationCache.update();   }   在線狀態檢測 HTML5 提供了兩種檢測是否在線的方式:navigator.online(true/false) 和 online/offline事件。 在Android中構建離線應用 Java代碼 //開啓應用程序緩存   webSettingssetAppCacheEnabled(true);   S...

HTML5 - web app 研究

圖片
最近研究 HTML5 最終也是想玩玩 web app ,真是個有趣的東東,web app 是直接利用 html5 做出的跨平台行動版網頁,但又多了 app 的功能,例如可以建立在手機桌面上小圖示,點下去時會產生歡迎頁面,另外加入離線網頁技術還可以讓瀏覽器保有快取的頁面,就算無線 wifi 關閉時也能開啟網頁,這時若是整合 RWD 的技術,開發 web 專案時更可以讓使用者無感跨平台障礙使用,當然若是考量效能與手機功能使用時,或許要針對開發的規劃而選擇原生 app 或者是使用其他的混合 app (cordavo) 等技術來考量,本編則先討論 web app 的技術心得。 優化 Web Content 為了區分手機跟桌面版本不同的 content,我們可以使用 Media Queries 來區分,在加上 max-device-width 和 min-device-width 去偵測整個頁面大小 (screen size)。 舉例來說,偵測 iPhone and iPod touch 裝置,可以透過底下載入 CSS <link media="only screen and (max-device-width: 480px)" href="small-device.css" type= "text/css" rel="stylesheet"> 另外如果是 Desktop 版本可以加入底下 <link media="screen and (min-device-width: 481px)" href="not-small-device.css" type="text/css" rel="stylesheet"> 另外或者是直接在 CSS 裡面判斷:     @media screen and (min-device-width: 481px) { ... } 另外針對 screen 或 print 可以直接在 head 裡面寫入     <link rel="stylesheet" type="text/css" media="scre...