我的第一支Facebook應用程式

1. 首先架設自己 LAMP (Linux+Apache+MySQL+PHP),可以參考如下連結:
How to build LAMP ( Linux+Apache 2.2+MySQL 5.1+PHP 5.3) on Ubuntu 910


2. 連到 Facebook 開發者論壇

在好用的Mac下,好用的終端機 iTerm
Download

ubuntu SSH遠端安全連線安裝及設定

在安裝ubuntu時有安裝openssh嗎
接下來我們可以來看看怎麼設定ssh的部份

安裝openssh-server
如果你沒有安裝ubuntu時沒有安裝openssh,請用以下熟悉的指令來做安裝

sudo apt-get install openssh-server

好,當我們安裝好,基本上就可以用putty來用遠端登入了,當然是有帳密的人就可以登入啦,但是我們都瞭解,這樣子是不安全的,基本上我們要限定連入IP還有改變PORT,如此才會比較安全。

接下來我們一樣可以來檢查是否有執行這個ssh-server,輸入以下指令

ps aux | grep ssh

設定ssh_config內容
我們若在主機上,就會有二條訊息,一是root,一是你登入的名稱。若是用遠端登入,就會有遠端登入的名稱,訊息就會多出2~3條,那是正常的,接下來我們進入ssh的config檔案。

sudo vim /etc/ssh/sshd_config

找一下,看到這行,可以做更改,但事實上,ubuntu本身就有限制root的登入,因此是沒有特別的意義,但還是可以修改,以防萬一

#PermitRootLogin Yes 
改成
PermitRootLogin no

再來找到
# What ports, IPs and protocols we listen for (約第4、5行)
Port 22

可將預設的port改成系統未在使用的port,因為系統預設都會有一些連接port,例如:ftp是port21、web是port80、smtp是port25、ssh是port22、telnet是port23等等,那你要怎麼知道哪些被使用呢?鍵入下列的指令吧。
(port的內容相當多,在一個區段內找一個數字,只要在services當中沒出現的即可)

sudo less /etc/services

例如:91這個port系統沒有使用,那你就將22改成91,那這樣在連ssh時就必須將port改成91,若維持22是連不進去的。

限制IP登入
再來,我們要修改可以登入這台主機的ip,否則任可一個ip都可以利用帳號登入,這是基本的防護。

sudo vim /etc/hosts.allow

在最下方加入
sshd:xxx.xxx.xxx.xxx :allow

xxx就是指你的ip位置,包含你遠端要登入的ip(一般ADSL浮動ip則不適用,此方法只適用固定IP)。若你是ADSL,但又想要登入主機上工作修改,那可以到中華電信的固定IP申請頁面,線上申請後可以馬上使用,雖然不是真的固定IP,但是可以讓你工作方便才是最重要的。

拒絕所有IP登入
當你允許了你指定的IP可以登入,那其他的浮動IP就不讓他們登入了,避免不必要的麻煩和攻擊

sudo vim /etc/hosts.deny

加入 sshd:all:deny

如此一來,除了你允許的IP之外,其他的浮動IP就連不進來

sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start

一樣修改完成後,要重新啟動喔!

說明:但是不同於apache2一樣可以restart,在網路上的資料是寫restart,我試過不行,後來我看過config檔案,ssh這裡只能stop跟start,無論你所使用的程式是否支援restart,stop跟start是一定會有的。

How to build LAMP ( Linux+Apache 2.2+MySQL 5.1+PHP 5.3) on Ubuntu 910

安裝 SSH Server 和 VIM :
> sudo aptitude install openssh-server vim

安裝 Apache 2.2 相關套件

輸入以下指令就可以自動安裝好 Apache 2.2 了:
> sudo aptitude install apache2 apache2-mpm-prefork apache2-prefork-dev \
apache2-utils apache2.2-common
安裝完成後, Apache 的設定檔位置會在 /etc/apache2/ 底下,不過它不再是以往的 httpd.conf 了,而是 apache2.conf 。
如果需要 mod_rewrite 的話,就輸入以下指令:
> sudo cd /etc/apache2/mods-enabled/
> sudo ln -s ../mods-available/rewrite.load rewrite.load

安裝 MySQL 5.1 相關套件

安裝 MySQL 也很簡單,輸入以下指令即可:
> sudo aptitude install mysql-server-5.1 mysql-common mysql-client-5.1
安裝好後, MySQL 設定檔會放在 /etc/mysql/my.cnf ;而資料庫檔案則是放在 /var/lib/mysql/ 底下。

安裝 PHP 5.3

因為 Ubuntu 9.10 如果直接安裝 PHP 5 的話,會是採用 PHP 5.2.x 的版本,因此我們需要透過一些方法來讓它改為安裝 PHP 5.3 。
首先,我們要安裝一些必要套件:
> sudo aptitude install libtidy-dev curl libcurl4-openssl-dev \
libcurl3 libcurl3-gnutls zlib1g zlib1g-dev libxslt1-dev libzip-dev libzip1 \
libxml2 libsnmp-base libsnmp15 libxml2-dev libsnmp-dev libjpeg62 libjpeg62-dev \
libpng12-0 libpng12-dev zlib1g zlib1g-dev libfreetype6 libfreetype6-dev \
libbz2-dev libxpm4-dev libmcrypt-dev libmcrypt4
接下來直接透過以下的方法來改變預設 PHP 版本的安裝:
> cd /tmp
> sudo mkdir php53 && cd php53
> sudo wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
> sudo wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
> sudo dpkg -i *.deb
> sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list
> sudo aptitude update

安裝 PHP5 的 Apache 模組

現在我們就可以把 Apache 2.2 的 PHP5 模組裝上去了,注意這裡安裝的是 PHP 5.3.2 的版本:
> sudo aptitude install libapache2-mod-php5=5.3.2 apache2
安裝好後, Apache 模組會用到的 PHP 設定檔是 /etc/php5/apache2/php.ini 。

安裝 PHP CLI 、 PEAR 套件及其他需要的 extensions

另外我還會用 CLI 模式來使用 PHP ,而且也會用 PEAR 來管理 PHP 模組;不過因為我是用套件來安裝 PHP5 ,所以沒辦法用傳統的方式來使用 CLI 及 PEAR 。
還有 GD 和 cURL 在預設的狀況下也沒有安裝,我們也將它一併安裝進來:
> sudo aptitude install php5-gd php5-curl php5-cli php-pear
安裝好後, CLI 模式的 PHP 設定檔為 /etc/php5/cli/php.ini ;而這裡所安裝的 PHP 版本也都會是 PHP 5.3.2 相關版本,要特別注意。

安裝 Xdebug

安裝 Xdebug 時,會使用到 pecl 指令,而 PECL 編譯時則需要以下套件:
> sudo aptitude install autoconf automake automake1.4 autotools-dev m4 shtool libtool
然後我們才可以安裝含有 phpize 指令的套件:
> sudo aptitude install php5-dev
安裝完 php5-dev 後就可以再安裝 Xdebug 了:
> sudo pecl install xdebug
然後我們要找出 xdebug.so 安裝在哪裡:
> sudo find / -name 'xdebug.so' 2> /dev/null
/usr/lib/php5/20060613+lfs/xdebug.so
取得路徑後,就修改 /etc/php5/apache2/php.ini 及 /etc/php5/cli/php.ini ,在檔案的最後加上:
[xdebug]
zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"
最後別忘了重新啟動 Apache :
> sudo /etc/init.d/apache2 restart
來測試一下吧!
1. Test Apache
> http://localhost/ 
Note: Check Apache is working !
2. Test MySQL
 $sudo netstat -tap | grep mysql
Check the strings as follows:
tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
Note: If the service can't work, you'd be restart it with this command, such as "$sudo /etc/init.d/mysql restart" 
3. Test PHP 5.3
$vim /var/www/test.php
           The test.php content as follows: 
          
           phpinfo();
          ?> 
You can keyin "http://localhost/test.php" to test PHP function. 
 
 
 
 

參考文章

虹光大成就-密教灌頂(一)