虛擬主機抓絕對路徑的方法

無法使用 phpinfo() ?

幫朋友放程式到智邦的虛擬主機裡,竟然發現無法使用 phpinfo 來看主機的狀況,大概是安全性的考量,就連 perl也無法使用..我也沒有權限到他們線上的管理系統去看真實的路徑..於是突然想到,我如果故意把 php寫錯,它是不是會回傳程式錯誤的真實路徑啦....

果不其然... /raid/vhost/xxx.xxx.xxx/www/xxxx.php ,終於找到了它真實的路徑.

因為有些程式要寫絕對路徑的程式,才能 work 了.

只好用怪招解決問題

Read More

Enterprise Architecture 修改 View Source code 的預設文字編碼

Tools

Option

Source Code Engineering

Code page for source

選 utf-8

Read More

SFS under Linux

» Installing under Linux

We provide two separate .tar.gz archives for 32 and 64 bit systems that allow you to deploy SFS2X under any Linux distributions.

In order to install the server, make sure to choose the correct installer (32bit or 64bit), then open a terminal window and follow these steps:

  • move to the directory where the installer is located
  • uncompress with: tar xf {name-of-installer}

Example:

$ cd /home/fozzie
$ tar xf SFS2X_linux_2_0_0RC1.tar.gz

» Running SmartFoxServer 2X

You can run SFS2X as a service using the sfs2x-service script. It provides the following switches:

  • start (start the server)
  • stop (stop the server)
  • status (show the current status)
  • restart (restart the server)

In order to start SmartFoxServer, move to the installation folder and start the server with: ./sfs2x-service start
For example:

$ cd /home/fozzie/SFS2X-RC1/SFS2X/
$ ./sfs2x-service start

If any startup problem should occur, you can check the log files under {sfs-install-dir}/logs and {sfs-install-dir}/logs/boot.

In alternative you can execute the sfs2x script to run the server in standalone mode and see the logs directly in the terminal (useful for development). For example:

$ cd /home/fozzie/SFS2X-RC1/SFS2X/
$ ./sfs2x.sh

» Uninstalling SmartFoxServer 2X

In order to completely remove SFS2X from your system proceed as follows:

  • stop the server if it’s running
  • remove the entire installation folder via GUI (drag and drop in the Trash Bin) or via terminal, like this: rm -rf {sfs-install-dir}

Please notice that this operation is not reversible and all server settings will be lost.

Read More

JAVA_HOME

JAVA_HOME
C:\Java\jdk1.6.0_26

Read More

搶救壞掉的 EC2

收到了亞馬遜發來的警告,反正就是說我那個EC2所在的硬件出故障了,很快這個EC2主機就將被terminate了。

Terminate就是說那個EC2將從這個世上消失了,所有的數據都沒了。

看到這封信,一下子有點慌了神。咱最近也沒備份過呀。現在主機連不上,也沒辦法備份。看來平時並能偷懶,云也確實不牢靠呀。

現在只能登到AWS的EC2 Console上去看看有沒有辦法了。
雖然很擔心,但是通過EC2 Console恢複本站的過程還是很順利的,整個過程大概不到半小時。
下面是恢復的步驟:
1. 到EC2主機列表,選擇還在運行,但是無法訪問的EC2主機(H1),從它Launch一個一樣配置的EC2主機(H2)。
2. 到EBS管理裡,找到H1使用的EBS,做一個快照(S1),再從快照S1,生成一個EBS存儲(E1)
3. 回到EC2主機列表,Stop主機H2,把H2使用的EBS存儲(E2)detach,然後把E1 attach到H2上
4. 重新開啟H2,這時H2本分配了一個新的外部IP(IP1),這時通過IP1已經能訪問本站了
5. 最後到DNS提供商的管理界面那裡把DNS指向IP1
6. Done,幾分鐘後監控寶就報告本站恢復了(他們的DNS更新怎麼這麼快?)。不過你現在可能還無法訪問本站,因為DNS服務器的更新是個漫長的過程:(。

經過這次中彩,我對AWS的基礎設施還是很滿意的,如果這事發生在某託管機房,真不知道後果會是什麼樣。我們應該相信–未來在云端。

 

http://www.leonzhang.com/2011/05/10/leonblog_ec2_broken/

Read More

RightScale的基本概念

RightScript
通過RightScript定義一些腳本,語法可以是bash/ruby等.

ServerTemplate
通過ServerTemplate來制定一些機器的類型,比如在AWS的那個機房,機器的性能配置.特別是可以以Boot/Operational /Decommission的方式關聯RightScript,這樣就可以做到新建instance時安裝工具/設置初始變量,平時自動更新/產生告警, 移除instance是釋放資源/更新proxy配置等工作.

Deployments
通過Deployments,可以把環境隔離成不同的功能區域.也許對一個應用的所有環節建一個deployment比較合適.

Servers
Servers就是通過RightScale創建出來的AWS的主機instance,RightScale能管理和監控這些servers.

Arrays
Arrays有點類似cluster,同個制定一個Server template, array能根據需要動態開啟和關閉一組相同配置的Server.

 

 

http://www.leonzhang.com/2011/08/15/rightscale_basic/

Read More

CloudPing.info 可以測試不同地區AWS的Latency

http://www.cloudping.info/

 

Region Latency
US-East (Virginia) 252 ms
US-West (California) 160 ms
Europe (Ireland) 480 ms
Asia Pacific (Singapore) 135 ms
Asia Pacific (Japan) 72 ms
Read More

安裝 AWS Toolkit for Eclipse

Installing the Plug-In

Download and install the AWS Toolkit for Eclipse using the following Eclipse Update Site:

http://aws.amazon.com/eclipse/

To install on Eclipse 3.6 (Helios) or higher

  1. Open Help -> Install New Software….
  2. Enter http://aws.amazon.com/eclipse in the text box labeled “Work with” at the top of the dialog.
  3. Select “AWS Toolkit for Eclipse” from the list below.
  4. Click “Next”. Eclipse guides you through the remaining installation steps.
Read More

ec2 打開 SFS2X

記得要用 root 權限開,要不然開啟 adminTool 會說找不到檔

Read More

Linux kill 命令用來中止一個進程

1.作用
kill命令用來中止一個進程。

2.格式
kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]

3.參數
-s:指定發送的信號。
-p:模擬發送信號。
-l:指定信號的名稱列表。
pid:要中止進程的ID號。
Signal:表示信號。

4.說明
進程是Linux系統中一個非常重要的概念。Linux是一個多任務的操作系統,系統上經常同時運行著多個進程。我們不關心這些進程究竟是如何分配的,或 者是內核如何管理分配時間片的,所關心的是如何去控制這些進程,讓它們能夠很好地為用戶服務。

Linux操作系統包括三種不同類型的進程,每種進程都有自己的特點和屬性。交互進程是由一個Shell啟動的進程。交互進程既可以在前台運行,也 可以在後台運行。批處理進程和終端沒有聯繫,是一個進程序列。監控進程(也稱系統守護進程)時Linux系統啟動時啟動的進程,並在後台運行。例 如,httpd是著名的Apache服務器的監控進程。

kill命令的工作原理是,向Linux系統的內核發送一個系統操作信號和某個程序的進程標識號,然後系統內核就可以對進程標識號指定的進程進行操 作。比如在top命令中,我們看到系統運行許多進程,有時就需要使用kill中止某些進程來提高系統資源。系統多個虛擬控制台的作用是當一個程序出錯造成 系統死鎖時,可以切換到其它虛擬控制台工作關閉這個程序。此時使用的命令就是kill,因為kill是大多數Shell內部命令可以直接調用的。

5.應用實例
(1)強行中止(經常使用殺掉)一個進程標識號為324的進程:
#kill -9 324

(2)解除Linux系統的死鎖
在Linux中有時會發生這樣一種情況:一個程序崩潰,並且處於死鎖的狀態。此時一般不用重新啟動計算機, 只需要中止(或者說是關閉)這個有問題的程序即 可。當kill處於X-Window界面時,主要的程序(除了崩潰的程序之外)一般都已經正常啟動了。此時打開一個終端,在那裡中止有問題的程序。比如, 如果Mozilla瀏覽器程序出現了鎖死的情況,可以使用kill命令來中止所有包含有Mozolla瀏覽器的程序。首先用top命令查處該程序的 PID,然後使用kill命令停止這個程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla瀏覽器的程序的進程標識號。

(3)使用命令回收內存
我們知道內存對於系統是非常重要的,回收內存可以提高系統資源。kill命令可以及時地中止一些“越軌”的程序或很長時間沒有相應的程序。例如,使用 top命令發現一個無用 (Zombie) 的進程,此時可以使用下面命令:
#kill -9 XXX
其中,XXX是無用的進程標識號。

然後使用下面命令:
#free
此時會發現可用內存容量增加了。

(4)killall命令
Linux下還提供了一個killall命令,可以直接使用進程的名字而不是進程標識號,例如:
# killall -HUP inetd

*殺死進程最安全的方法是單純使用kill命令,不加修飾符,不帶標誌。

首先使用ps -ef命令確定要殺死進程的PID,然後輸入以下命令:

# kill -pid

注釋:標準的kill命令通常都能達到目的。終止有問題的進程,並把進程的資源釋放給系統。然而,如果進程啟動了子進程,只殺死父進程,子進程仍在 運行,因此仍消耗資源。為了防止這些所謂的“僵屍進程”,應確保在殺死父進程之前,先殺死其所有的子進程。

——————————————————————————–

*確定要殺死進程的PID或PPID

# ps -ef | grep httpd
——————————————————————————–

*以優雅的方式結束進程

# kill -l PID

-l選項告訴kill命令用好像啟動進程的用戶已註銷的方式結束進程。當使用該選項時,kill命令也試圖殺死所留下的子進程。但這個命令也不是總 能成功–或許仍然需要先手工殺死子進程,然後再殺死父進程。
——————————————————————————–

*TERM信號

給父進程發送一個TERM信號,試圖殺死它和它的子進程。

# kill -TERM PPID
——————————————————————————–

*killall命令

killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。

# killall httpd
——————————————————————————–

*停止和重啟進程

有時候只想簡單的停止和重啟進程。如下:

# kill -HUP PID

該命令讓Linux和緩的執行進程關閉,然後立即重啟。在配置應用程序的時候,這個命令很方便,在對配置文件修改後需要重啟進程時就可以執行此命 令。
——————————————————————————–

*絕殺 kill -9 PID

同意的 kill -s SIGKILL

這個強大和危險的命令迫使進程在運行時突然終止,進程在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無 效。

當使用此命令時,一定要通過ps -ef確認沒有剩下任何僵屍進程。只能通過終止父進程來消除僵屍進程。如果僵屍進程被init收養,問題就比較嚴重了。殺死init進程意味著關閉系統。

如果系統中有僵屍進程,並且其父進程是init,而且僵屍進程占用了大量的系統資源,那麼就需要在某個時候重啟機器以清除進程表了。

Read More