ad

2012年4月20日 星期五

vdi的大小事

VBoxManage重新定義 vdi檔案大小

VBoxManage modifyhd my.vdi --resize 20000

以上就是把my.vdi resize成20G大小
Vbox好像不建議這樣作!所以沒作成圖形介面(有文章是這樣說得)
resize之後windows我是不知道怎麼弄
如果是linux就要重新分割新的磁碟
mount新的分割區才能用唷!!新的分割區才能用唷!!

如果移動vdi檔那要重新產生vdi的uuid
這樣才可以執行唷

VBoxManage internalcommands sethduuid ubuntu.vdi

以上就是重新產生uuid的方法

2012年2月19日 星期日

Ubuntu 使用gmail 的smtp來發信

以Ubuntu 10.04 LTS、Exim4為例

文章來源 ( http://lyhdev.com/install:ubuntu_exim4_gmail_smtp )

安裝Exim4

sudo apt-get update && sudo apt-get install exim4

設定Exim4

執行設定指令

sudo dpkg-reconfigure exim4-config

接著是一串繁瑣的設定過程,但其實設定內容很簡單,重點在 smtp.gmail.com::587 這邊要設定正確。

  1. 請選擇最符合您的需求的郵件伺服器之設定類型。
    • 使用 smarthost 來傳送郵件;並藉由 SMTP 或是 fetchmail 來接收郵件 (mail sent by smarthost; received via SMTP or fetchmail)
  2. 系統郵件名稱 (mail name):
    • 自行輸入已註冊的網域名稱(例如 yourhostname.com)
  3. 在有 SMTP 連線傳入時,要進行監聽的 IP 位址 (listen on for incoming SMTP connections)
    • 127.0.0.1
  4. 要進行接收的其它郵件位址 (Other destinations for which mail is accepted)
    • 保留空白
  5. 要替哪些主機進行郵件轉寄 (Machines to relay mail for)
    • 保留空白
  6. 外寄郵件時所使用的 smarthost 的 IP 位址或主機名稱 (Machine handling outgoing mail for this host)
    • smtp.gmail.com::587
  7. 是否在外送郵件中隱藏本機的郵件名稱 (hide local mail name in outgoing mail)
    • 否 (No)
  8. 是否保持最小的 DNS 查詢量 (don’t keep number of DNS-queries minimal)
    • 否 (No)
  9. 本機郵件的傳送方式
    • 存放在 /var/mail 裡的 mbox 格式
  10. 是否將設定檔分散成較小的檔案 (split configuration into small files)
    • 否 (No)
  11. root 及 postmaster 的郵件代收者
    • 輸入系統中指定的使用者帳號(多位使用者以空白字元分隔)

設定GMail帳號密碼

由於GMail提供的SMTP服務會要求登入驗證,編輯 /etc/exim4/passwd.client 加入設定,格式如下。

*:gmailusername:gmailpassword

password為”明碼”,就是直接打上GMail的密碼不必另外編碼。

重新啟動Exim4服務

當Exim4設定變更後,需要重新啟動服務。

sudo service exim4 restart

測試發信

使用Linux系統的mail指令即可測是發信功能。

mail -s 'SUBJECT' you@mailserver

信件內容的編輯步驟:

  1. 隨意輸入一些文字內容
  2. 信件結尾,最後一行只輸入一個小數點「.」,然後按Enter
  3. 出現Cc:再直接按一次Enter略過

接著,這封測試信就會加入等待寄送的佇列。

發信紀錄

檢查信箱是否收得到測試信,若有問題則可以檢查Exim4的Log檔,查看郵件寄出紀錄是否正常。

tail -n 100 /var/log/exim4/mainlog

本文原作者為lyhcode( http://blog.lyhdev.com/ ),發表於思創軟體實驗室(http://lyhdev.com/ )。

2012年1月18日 星期三

cakephp 重複呼叫自己兩次

在coding時一直遇到鬼打牆的事情
我在寫入db一直重複寫兩次
插裝也查不到任何原因
同事幫我找了一下在外國網站終於有高手解釋了這個問題
當cakephp如果連結路徑有錯時action會重複的呼叫自己兩次
而且在 httpfox找不到
仔細找一找,我還真的有一個js的路徑是錯得
改正之後就正常囉!!感謝親愛的同事~~

Greetings everyone!

I have a strange problem with my cake (cake_1.2.0.7296-rc2). My start()-action runs twice, under certain circumstances, even though only one request is made.

The triggers seem to be : - loading an object like: $this->Questionnaire->read(null, $questionnaire_id); - accessing $this-data

If I disable the call to loadAvertisement() from the start()-action, this does not happen. If I disable the two calls inside loadAdvertisement(): $questionnaire = $this->Questionnaire->read(null, $questionnaire_id); $question = $this->Questionnaire->Question->read(null, $question_id); ... then it doesn't happen either.

Why?

See my code below, the Controller is "questionnaires_controller".


出處於此,如有侵權請通知下架

2011年11月30日 星期三

rsync 同步

---------------------------------------------------------------------------------
| [root@www ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path] |
| 選項與參數: |
| -v :觀察模式,可以列出更多的資訊,包括鏡像時的檔案檔名等; |
| -q :與 -v 相反,安靜模式,略過正常資訊,僅顯示錯誤訊息; |
| -r :遞迴複製!可以針對『目錄』來處理!很重要! |
| -u :僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋; |
| -l :複製連結檔的屬性,而非連結的目標原始檔案內容; |
| -p :複製時,連同屬性 (permission) 也保存不變! |
| -g :保存原始檔案的擁有群組; |
| -o :保存原始檔案的擁有人; |
| -D :保存原始檔案的裝置屬性 (device) |
| -t :保存原始檔案的時間參數; |
| -I :忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速; |
| -z :在資料傳輸時,加上壓縮的參數! |
| -e :使用的通道協定,例如使用 ssh 通道,則 -e ssh |
| -a :相當於 -rlptgoD ,所以這個 -a 是最常用的參數了! |
| 更多說明請參考 man rsync 的解說! |
----------------------------------------------------------------資料來源:鳥哥----

rsync玩一玩其實發現滿簡單的
首先先設定金鑰 參考
這樣同步時才免輸入密碼
如果要讓程式自己跑更是需要設定金鑰這樣才有辦法同步

參考鳥哥列出來的參數其實說的很清楚了
我直接用舉例的來說明

假設 1. : 我在本機端 /home/www/ 要'更新'至 192.168.1.100底下的/home/www/ (本機備援至.100 時使用)

執行以下程式碼

rsync -av -e ssh /home/www/* 192.168.1.100:/home/www/
(-a = -rlptgoD 也就是保留所有屬性囉)

會把 /home/www/ 的資料更新至 192.168.1.100上
這樣192.168.1.100上的/home/www 資料就會跟 /home/www底下一模一樣了

假設 2. :我在本機端 /home/www/ 要'同步'至 192.168.1.100底下的/home/www/ (兩台資料都要是最新的, 兩台同步時使用)

rsync -auv -e ssh /home/www/* 192.168.1.100:/home/www/
(-u = 僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋,意指兩台都會是最新的)

會把 /home/www/ 的資料同步至 192.168.1.100上
這樣本機上的/home/www有如果比.100上檔案更新就會更新至 .100的/home/www底下
但如果要達到兩台都是最新的
同樣的在.100更新時也要設定

rsync -auv -e ssh /home/www/* 192.168.1.XXX:/home/www/
(xxx為本機ip )

同步開始~~~over

---------2012.01.02更新----------------------------------------------------------------------------

我之前說得如果要全部同步要加上 -delete
這樣在本機如果有刪除資料 那遠端也會一起刪除資料

2011年11月24日 星期四

公鑰,私鑰設定,ssh or scp 免密碼設定

進入家目錄底下的.ssh/

cd ~/.ssh

產生金鑰

ssh-keygen -t dsa

執行之後他會問你檔名(隨便取)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/weishihchen/.ssh/id_dsa):XXXXX

之後他會問你密碼,這個是金鑰的密碼,我會設空值,用金鑰加密就是為了要免密碼登入
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

輸入好後,會產生兩個檔案,一個私鑰XXXX,一個公鑰XXXXX.pub
把公鑰傳到目標主機家目錄下.ssh/

把公鑰內容加到 authorized_keys

cat XXXXX.pub >> authorized_keys

這樣就大公告成了

2011年11月15日 星期二

ubuntu安裝Magickwand套件by php model

同事在我的電腦架了測試server
但是他截圖需要MagickWand這個套件
他裝不進去
幫他爬了一下文
發現可以去
http://www.magickwand.org/download/php/
這個官網找最新版本的
下載後解壓縮
$phpize5
$./configure
$make
$make install
安裝好後
網路爬文是說在php.ini加入
extension=magickwand.so
這一行重啟就可以
但小編用的ubuntu不是這樣
要在要在
/etc/php5/conf.d/下
建立一個magickwand.ini
裡面新增extension=magickwand.so
重啟apache
這樣在phpinfo就看得到嚕

2011年11月14日 星期一

Ubuntu 下 chrome 遇到 javascirpt 死掉問題 (crash)

的在開發網頁時意外發現怎麼有些javascript地方chrome都crash壞掉了
爬了一下文
少了一些plugin
我哪知道有哪些plugin
直接到soft center尋找
我打了javascript chrome


找到了V8 JavaScript Engine
安裝下去我的script都可以動囉
供大家參考嚕