Category: 學習筆記
-
apache 2.4 編譯mod_encoding支持中文url
網絡上通用的apache 2.2的mod_encoding的rpm安裝文件,貌似在apache 2.4上是無法直接使用的。 因此遇上這個問題,確實對我造成了困擾,畢竟中文url(其實就是指針對非英文url的支持)對於一些客戶來說是必須的。 所以只要自己編譯一下這個由日本朋友在2002年開發的apache module。 你可以選擇下載我提供的源或是自己到日本朋友那邊去下載源碼 wget https://www.guyusoftware.com/sh/mod_encoding.zip unzip mod_encoding.zip wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616 wget http://www.aconus.com/%7Eoyaji/faq/mod_encoding.c-apache2.2-20060520.patch 下載完畢後,接下來就是解壓和編譯的動作了。 tar -xzf mod_encoding-20021209.tar.gz cd mod_encoding-20021209 cp ../mod_encoding.c.apache2.20040616 mod_encoding.c patch -p0 < ../mod_encoding.c-apache2.2-20060520.patch cd lib/ ./configure --prefix=/usr make && make install ldconfig cd ../ chmod 755 configure cp -p /usr/sbin/apxs /usr/bin ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/include make gcc -shared -o…
-
解決Ubuntu apt-get 404 Not Found的錯誤問題
會遇上這個問題 說明你的Ubuntu版本真的很舊了 所以你也是時候更新一下系統版本了:) ubuntu的一般release版本只提供9個月的支持,而Long Term Support(LTS)的版本也只有五年 而源隨著版本的支持取消也會被遷移到別的服務器去,而導致你apt-get抓不到資料,出現404 Not Found的問題。 像Ubuntu 12.10等一般的release版就可能會遇上這個問題了 關於Ubuntu支持的週期表 這裡給大家列明一下: Version Code name Release date Supported until Desktop Server 10.04 LTS Lucid Lynx 2010-04-29 2013-05-09 2015-04-30 10.10 Maverick Meerkat 2010-10-10 2012-04-10 11.04 Natty Narwhal 2011-04-28 2012-10-28 11.10 Oneiric Ocelot 2011-10-13 2013-05-09 12.04 LTS Precise Pangolin 2012-04-26 2017-04 12.10 Quantal Quetzal 2012-10-18 2014-05-16…
-
重啟后MySQL無法啟動?
最近發現越來越多人遇上這種情況 卻求救無門了 網絡上相關的資料貌似也並不多見 其實原因一般都很簡單 你的硬盤滿了 導致mysql無法寫入文件 因而無法開啟 這個情境其實不難想像 但可能碰上的機率不高 所以並沒有被大家所重視 遇上其他問題需要幫忙也歡迎留言或發郵件給我 有時間能幫上忙的話 也必然會幫忙的 🙂
-
明明硬盤還有空間 但就是無法寫入?
Filesystem 1K-blocks Used Available %iused Mounted on /dev/mapper/vg_have-lv_root 8813300 7765920 599688 93% / tmpfs 957168 0 957168 0% /dev/shm /dev/xvda1 495844 72556 397688 16% /boot /dev/xvdb1 10317828 8069340 1724372 83% /home 也許你會遇上一種情況 突然無法寫入文件 但你df看了一下 明明都還沒滿 但就是無法寫入任何文件了 就像硬盤滿了一樣? 這個情景 可以猜測也許是inode用盡了? 這裡就來給大家做個解說: 所有文件系統都會有一張索引的表 而這張表是有限數量的 表裡的每一個條目 我們叫它inode(記錄文件的各種信息) 文件系統的設計就是把硬盤分割成有限數量的區塊 每一個區塊的大小是固定的 而也有一個inode對應到那個區塊 所以當表單里的條目已經填滿 則會出現這種情況 一般32bit文件系統都會以4k做為一個區塊的單位大小 意思就是就算你的文件都小於4k 剩下的空間也無法使用 所以要怎麼檢查inode的使用情況? df -li…
-
不尋求官方協助 自行添加DigitalOcean VPS的內核自動切換
DigitalOcean這家VPS基本上也算是老招牌了,整體感覺還算是不錯的,價格也很便宜,月付5美金基本上就可以買到一個價格合適且性能強勁的VPS,最方便的是這傢伙是每日計費,且支持自行刪除VPS,意思就是如果我突然不需要了,我可以將它刪除,剩下不少錢,玩開發的肯定會特別喜歡它,而我個人就非常喜歡它的模式。 就是有個毛病,讓我有點討厭,而這個毛病就是VPS的kernel加載部份。 DigitalOcean的kernel management是透過DigitalOcean自行開發的面板控制來實現的,意思就是如果你自己安裝了新的kernel,但沒有到DO去設定的話,你的kernel實際上並不會生效,加載的依舊是舊的。 延伸意義就是如果你的kernel不在選項里,那你就倒楣了,只能摸摸鼻子去找客服添加,這個感覺也太蛋疼了,所以我非常不喜 ﹣﹣ 因此該怎麼突破這個障礙 就是我今天想分享的東西 顯然為達目的,我們必須另闢奇徑,而就有了我標題所說的內核自動切換的概念。 這裡就來介紹一下實現內核切換的kexec,這貨的做法其實很簡單,就是跳過bootloader stage的部份,直接把新的kernel加載到內存中,不僅可以避免長時間的重啟,也可以避開依賴bootloader選擇kernel的部份,進而實現我的目的。 In computing, kexec (abbreviated from kernel execution, and derived from the Unix/Linux kernel call exec) is a mechanism of the Linux kernel that allows “live” booting of a new kernel “over” the currently running kernel. Essentially, kexec skips the bootloader stage (hardware initialization phase…
-
關於google.com.my被劫持事件
昨天早上添翔給我發了張圖 告訴我谷歌被搞了 然後就出現了下面兩篇報導 非常遺憾 還是我非常常關注的兩家報業 大马谷歌遭骇客入侵 http://www.orientaldaily.com.my/index.php/nation/gn201439810 大马谷歌再度被骇? 部分用户无法登入 http://www.malaysiakini.com/news/295226 對於報業不負責不求證的刻意渲染 我表示非常的鄙視 作為報業相關領域的翹楚 我覺得他們有責任也有必要先查證 并詢問相關領域的人(至少你得問馬來西亞谷歌吧?)再進行報導 不查證立刻肆意渲染大做文章的方式只是單純為了提高知名度 完全沒有責任感 這只是讓我們更多的人不再相信這家報業的報導 最終失去讀者 所以究竟是什麼情況?谷歌被入侵了嗎?答案當然是沒有 詳細情況刻意參考這張Google Malaysia分享的CyberSAFE™ M’sia所製作的圖 https://twitter.com/CyberSAFEmy/status/587846547695472641 上圖只是單純的示意圖 並不一定是這種情況 其實dns是階層式的結構 原本是你找人(比如8.8.8.8)問谷歌的家在哪裡 你問的人會告訴你誰(比如com.my的dns)知道谷歌的家在哪裡 你繼續往下問 直到你問到結果為止 現在有另一個人跑出來宣稱谷歌在我家 你來我家吧 這就是所謂的dns劫持 而你被騙了 但不代表谷歌家進賊了 這是兩種不同的觀念 所以遇上這個問題?是不是我就沒辦法用google的服務了?當然不是 如何前往 Google.com,而非當地網域的 Google 網站 您可以使用 google.com 取代當地網域的 Google 網站。如要使用 google.com 進行搜尋,可透過以下兩種方法: 1)如果您是由 google.com 重新導向其他 Google 網站 (例如…
-
CentOS 5 下無法wget https鏈接的解決方法
CentOS 5下最高版本的wget是1.11,但非常遺憾的是這個版本有bug,是沒辦法用來下載https鏈接的東西的,所以有些人為了避免這種情況會幫腳本加上不檢查ssl的參數–no-check-certificate,但顯然這個方法我並不是特別推薦,畢竟這並不是無解的。 而解決方法其實也不難,就是自己到gnu去下載新版本的wget來進行編譯替換的動作。 方法如下: yum -y install openssl openssl-devel gcc make perl cd ~ wget http://ftp.gnu.org/gnu/wget/wget-1.16.tar.gz yum -y remove wget tar -xzvf wget-1.16.tar.gz cd wget-1.16 ./configure –with-ssl=openssl make && make install ln -s /usr/local/bin/wget /usr/bin/wget cd .. rm -rf wget-1.16* 替換完畢后你就可以開心地下載了 🙂
-
新版本phpMyAdmin出現javascript fatal error的原因
最近用了新版本的phpMyAdmin后,發現下面老會出現javascript fatal error這個煩死人的嚴重錯誤提示。 之前一直懶得想到底是什麼,而今天“風和日麗”,而我也突然“心血來潮”…… 好了,不胡扯了。 今天突然就上網查了下這個問題,發現和當初一樣,似乎並沒有相關的資料。 而我當初也只在新版本phpMyAdmin上遇過,所以一開始的假設是phpMyAdmin有哪裡寫錯了,然後不停地在谷歌挖掘。 但是若你仔細一想,一定會覺得奇怪。 若是真有問題,不該他媽那麼久也沒人去解決。 所以問題究竟是什麼? 答案:Adblock….. 你打開phpMyAdmin的時候就順便點開Adblock查找可過濾物件的選項 你會發現phpMyAdmin有個東西被屏蔽了….. 靠腰啦,這三小啦! 誰會想到Adblock竟然把phpMyadmin的XML request給屏蔽掉啦,造成這個煩死人的錯誤…. 我的臉都成囧字了…. 所以… 結論是: 你得自己要加上白名單,讓Adblock不要出現這個誤判﹣﹣
-
service: command not found的解決方法
service基本上算是比較舊的系統里非常常用的一個指令,一般像Debian、CentOS系統也會自帶這個指令,用來做檢查一個daemon的狀態,或是進行daemon的關閉、開啟、重啟、重載配置文件等操作。 而後來不少系統都改用systemd,而service和chkconfig也被systemctl給取代了,像CentOS 7就是如此。 而我其實還在懷舊中,依舊用著CentOS 6和Debian 6,所以比較常用的依舊是service和chkconfig指令。 然後重點來了,最近大家也知道我在玩online.net的arm云服務器,而裡面沒有centos的系統,而只有fedora 20,我就試著用它測試一些東西,並且在測試完後進行yum uninstall xxx的動作。 誰知道,這下把service指令也給幹掉了,直接顯示如下的說明, service: command not found 害我差點連晚飯都噴出來了。 後來網上查了一下,原來這貨還真的是可以卸載掉的,我還一直以為這傢伙是系統自帶的命令,是無法卸載的,囧。 雖然感覺好扯,但是倒讓我長了見識了 ﹣﹣ 解決方式倒是不難,直接重裝就行了 yum install initscripts