知識分享

如果我們需要知道現在的系統狀況,如下面的內容

  System load:  0.08               Processes:           81
  Usage of /:   25.4% of 29.40GB   Users logged in:     1
  Memory usage: 56%                IP address for eth0: xxx.xxx.xxx.xxx
  Swap usage:   20%

有兩個方式,指令如下:

  • cat /etc/motd
  • landscape-sysinfo

本篇參考自鳥哥

dd指令可以用來讀取磁碟的內容,也可以製作指定大小的空檔案,指令範例如下:

dd if="input_file" of="output_file" bs="block_size" count="number"

參數說明:

if表輸入裝置或檔案
of表輸出裝置或檔案
bs表磁區大小,預設512bytes
count表磁區數量

應用1 ─ 備份整個硬碟

dd if=/dev/hdc1 of=/tmp/boot.whole.disk

應用2 ─ 測試磁碟i/o速度

dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync

其他應用 ─ 特殊磁碟分割

一般我們測試自己電腦的上下載速度時,可能會直接透過瀏覽器連到如speedtest.net之類的網站。但如果伺服器的話,如果只有終端機介面,這個方法可能就不太適合。好在有個用python寫成的好工具 - speedtest-cli。這個工具可以幫助我們讓伺服器連線到speedtest.net並測試上下載速度。安裝步驟如下:(以ubuntu為例)

  1. 安裝 python-pip 套件
    sudo apt-get install python-pip
  2. 利用pip安裝speedtest-cli
    sudo pip install speedtest-cli

如果不想多安裝python-pip,或者上述方法無法執行,就手動來吧

  1. 下載speedtest-cli的py檔
    sudo wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
  2. 設定讀取及執行權限
    sudo chmod a+rx speedtest_cli.py
  3. 將speedtest_cli.py移動到 /usr/bin 並更名便於執行
    sudo mv speedtest_cli.py /usr/bin/
更多

Drupal 一個強大的地方,就在於可以輕易的支援多網域(Multi-Site)的功能,同一套Drupal核心,就可以同時分享應用於不同的網站,且不同的網站之間還可以共用模組。

這對多網站的管理上有很大的幫助,尤其是更新模組及更新drupal核心時,只要做一次就可以了,不用每個網站一一處理。

那麼要如何讓Drupal開始支援Multi-Site呢?大致步驟如下(Shared hosting 不適用):

  1. 在/sites 目錄底下新增一個與要附加網域名稱同名的子目錄,假設要附加的網域是 site1.yosia.net ,目錄結構就會像這樣:/sites/site1.yosia.net/
     
  2. 接著在這個目錄裡新增三個子目錄,分別是modules 、themes 及 files,目錄結構如下:
    /sites/site1.yosia.net/modules/ , /sites/site1.yosia.net/themes/ 
     
  3. 再來把/default/default.settings.php 複製一份到 /sites/site1.yosia.net,並更名為settings.php。所以現在/sites/site1.yosia.net/ 裡的內容如下:
    /sites
更多

當進行Drupal安裝時發生無窮迴圈的狀況時,很有可能是這個東西搞的鬼 - APC

這個可以有效加速PHP的功能,是怎麼造成問題的呢? 關鍵在於 apc.stat 這個參數。APC 在每次讀取 PHP 程式碼的時候,都會先 stat() 程式碼所在的檔案,以確定要不要重新編譯成 OPCODE ,而apc.stat=0 則是直接省略 stat() 的步驟,拿原本就有的 opcode 來用,而我們知道drupal的安裝過程會經過好幾次bootstrap,也因此我們就會一直持續執行第一次的bootsrap,而掉進了所謂的無窮迴圈。

解決的方法很簡單,就是只要在php.ini中把這個參數設定為 apc.stat=1 就能解決問題了

 

 

在Ubuntu要安裝APC比較簡單,順序如下:

  1. 先安裝PEAR
    sudo apt-get install php-pear php5-dev
     
  2. 接著就能利用pecl指令來安裝apc了
    sudo pecl install apc
     
  3. 接著要修改php.ini的設定,啟用apc支援,加入以下內容
    [APC]
    extension=apc.so
    apc.enabled=1
    apc.shm_segments=1
    apc.shm_size=128M
    apc.stat=0 #僅適用於production site
    apc.ttl=0
     
  4. 修改完記得重啟apache
    sudo service apache2 restart
     
  5. 接著幫Drupal安裝apc模組,不能用drush的話,到這裡下載後再到模組管理頁啟用即可;可以的話,就用以下drush指令下載安裝
更多

在安裝Tomcat之前,可以先確認一下伺服器有沒有支援Java,指令如下:

java -version

如果出現找不到指令之類的訊息的話,就要先把java裝起來,可以參考一下這篇的指示。安裝完成後就可以開始安裝Tomcat啦!

在Ubuntu進行Tomcat的安裝還滿簡單的,指令如下:

apt-get install tomcat7 -y

 

更多

AllowOverride 的參數可詳見官網說明。這個參數用來控制客戶端可利用.htaccess的程度。參數如下:

  1. AuthConfig 允許使用與認證授權相關的指令
    • AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require...
  2. FileInfo 文件相關指令
    • 控制文件類型(mod_mime):
      DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter,
    • mod_mime
      Add* 和
更多

在Linux有幾個找檔案的指令:find, whereis, locate

find跟windows裡面的搜尋功能有點像,是整個目錄逐一去找,所以效能可能會"稍微"慢一點,語法如下:

find -name 檔名

whereis 則是直接尋找已經找過的檔案來找,所以速度很快,不過如果沒有找過的檔案,就會找不到,但事實上用whereis找不到,並不表示檔案不存在,語法如下:

whereis 檔名

locate則是透過索引的方式去找檔案,速度也滿快的,不過新檔案可能會找不到,需要另外透過指令建立索引。語法如下

locate 檔名
#更新索引
sudo updatedb
#如果找不到locate這個指令,先進行安裝
sudo apt-get install locate

Options的參數說明可參考官網說明,只是說明中的yosia也不太會翻譯,不過基本上從設定值來說,這個參數是用來控制在目錄中可以執行的功能。共有以下幾個參數

  1. All
    除了MultiViews以外的所有功能
  2. ExecCGI
    可以使用mod_cgi來執行CGI程式
  3. FollowLinks
    允許訪問符號連結(symbolic link)的子目錄。此為預設值。
  4. Includes
    允許mod_include所使用的伺服端函式庫
  5. IncludesNOEXEC
    同上,但#exec cmd 以及 #exec cgi除外
  6. Indexes
    若被訪問的URL中沒有任何的index檔案,則顯示該目錄的子目錄列表
  7. MultiViews
    多語系支援
  8. SymLinksIfOwnerMatch
    同FollowLinks,但目的地目錄或檔案的擁有者必須與符號連結的擁有者相同。