顯示具有 php 標籤的文章。 顯示所有文章
顯示具有 php 標籤的文章。 顯示所有文章

2014年2月3日 星期一

Install GAE for PHP on Koding (Ubuntu )

Koding.com is a cloud base development environment. All you have to do is write some awesome code and run. Don't need to waste time on installing XXXX run-time (XXX== Java, Python, Perl. PHP, MySQL). With integrated magic IDE and simple terminal. Say goodbye to 100 steps before you start coding. Koding gives you a free VM with  RAM:2.0Gb /Disk:1.2Gb (Additional resources will be purchasable from Koding in the near future.) 

1. You don't have to install MySQL, PHP, nor Python . All of them are ready out of the box in Koding.com . You only need to download GAE SDK and unzip it 
wget http://googleappengine.googlecode.com/files/google_appengine_1.8.9.zip

unzip google_appengine_1.8.9.zip


2. You can  install Python PIL if you want (you'll get warning when you run dev server locally, but it's ok anyway) by :
sudo apt-get install python-imaging 

3. Check if php-cgi is installed on your server. Mine is at /usr/bin/php-cgi . If it's not installed, follow the instruction on the tutorial


locate php-cgi 

4. Start development server locally with options:
--host 0.0.0.0 , default value is localhost. since there's no browser on your VM, you need to access your dev server from the internet.
--php_executable_path=/usr/bin/php-cgi, which specifies that using php-cgi instead of php-cli , see reason here.
google_appengine/dev_appserver.py --host 0.0.0.0 --php_executable_path=/usr/bin/php-cgi HelloGAEProject/

4. Go to <your_account>.kd.io:8080/<your_app> to test locally.

5. If you want to deploy your app to GAE, run with these option
--oauth2 , use this option to skip typing account/password
--noauth_local_webserver Don't use the web browser to display web pages for authentication. This is useful for OAuth2 authentication if you're remotely logged on or shelled into a machine. This flag only applies for OAuth2
google_appengine/appcfg.py update --oauth2 --noauth_local_webserver <your project folder name>

2014年1月9日 星期四

PHP on GAE (四) 使用Google Cloud SQL來儲存資料

Google Cloud SQL是Google雲端平台的關聯式資料庫服務,新版的介面裡面沒有可以輸入SQL語法的地方,所以需要在本機另外安裝軟體去連接,或者有興趣的人可以考慮在GAE上面裝phpMyAdmin,我是沒試過,不過這個作者把deploy的.sh都寫好了,我是Windows就用toad吧;本篇包含三個主題

  1. 創建第一個Cloud SQL Instance
  2. 在程式中連到Google Cloud SQL 
  3. 使用與限制
那麼馬上開始吧!
  1. 創建第一個Cloud SQL Instance
    1. Instance這個詞有時候真的很困擾,在GCP就把它想成一個Server吧,一個instance裡面可以有多個database (在Microsoft SQL Server裡的定義又不同了,改天說吧)
    2. 進到Google Cloud Console.,開啟在上一篇建立的Guestbook project,還記得project id 吧?
    3. 啟用billing付費機制,點左邊的Settings,然後在右邊點選Enable billing必須先輸入信用卡號才能啟用billing,啟用billing之後才能用Cloud SQL,費用的部分可以參考這裡,做完這個sample一個月用不到40塊吧,比自己假一台server的電費還低,完成後應該會變這樣。
    4. 新增Cloud SQL Instance

    5. Instance Name取為guestbook, Instance ID 為"our-project-name:your-instance-name",所有設定都使用預設。按下confirm
    6. 稍等一下,等到Instance ID出現的時候,Instance就建好了,此時要再設定一些東西等下才有辦法連的過來,點一下instance ID
    7. 點選Acess Control Tab,(1)設定這個instance的IP才有辦法遠端連過來,(2) 設定root帳號的密碼 (3)允許你的IP可以連到這個Instance,要查自己的IP?Google 一下"What is my IP",接下來你就可以從自己的電腦用你喜歡的工具連到遠端的DB了


  2. 存取Cloud SQL的限制
    1. 最大的Request/Response大小:16MB
    2. 與GAE的HTTP request必須在60秒內完成
    3. 離線的工作如cron task最長不能超過10分鐘
    4. backend request最長不能超過10分鐘
    5. 其他限制請參閱Quotas 
  3. 來實際把剛剛開的訪客紀錄存起來吧
    1. 修改helloworld.php如下,變成有DB的版本
    2. 在本機DB上執行這段Script ,然後看一下本機開發環境,喔耶可以執行
    3. 用管理工具連到Cloud SQL上執行上面的scrtipt
    4. 修改一下helloworld.php的DB 設定,改連向Cloud Storage

    5. 把結果發佈到GAE上

2014年1月7日 星期二

PHP on GAE (三) 發佈第一個app到GAE

Application在本機寫好了,那程式要放在哪邊呢?在GAE所有的App都都免費贈送一個<your-project-id>.appspot.com的網域當,程式就在這個空間中,這篇主要是介紹如何把本地端的程式發佈到GAE中。

  1. 在Google Cloud Console當中建立一個新的Project
  2. 修改本機的app.yaml
  3. 執行SDK中的發佈程式
那馬上就來看看吧!
  1. 在Google Cloud Console當中建立一個新的Project
    1. 登入新版的Google Cloud Console(以前叫做Application Console)
    2. 如果還沒有建立過任何Project,現在立馬來建一個吧,所有相關的Google SaaS、PaaS服務都在這個Project裡面。如果要使用現有的project,直接跳到下一步。
    3. 找到你的project id並且記錄下來,這裡是regal-center-453
  2. 修改本機的app.yaml
    1. 把application:helloworld 改成application:your-project-id

    2. 記得存檔喔
  3. 執行SDK中的發佈程式
    1. 每次都要打一堆路徑覺得很麻煩的話,可以把SDK加到PATH當中,執行這支appcfg.py,給定一些參數


    2. 快來上http://<your-project-id>.appspot.com 來看一下吧!如果還沒登入Google Account會看到這樣的畫面
    3. 如果已經登入過了會直接看到內容,也就是說使用者下次進到你的web app是不需要輸入帳號密碼就可以直接登入了,真方便!


2014年1月6日 星期一

PHP on GAE (二) 使用Google帳號登入的簡單留言版


現在幾乎人人都有Google Account,直接拿使用者個人的Google Account來登入系統比自己從新打造方便多了。在SDK當中這樣的API叫做User Service,直接來看程式碼

登入前

登入後

但是光這樣還不夠,還要有些靜態的圖片或是css才像一個網頁啊。GAE跟一般的hosting網站不同,要存取網站資源不是用路徑的方式來直接存取,而是要在app.yaml中設定。
修改app.yaml如下



在HelloGAEProject資料夾下新增一個stylesheets資料夾,然後新增一個main.css如下


把main.css加到你的helloworld.php當中


回來重新整理網頁

到目前為止已經可以留言,但是留言內容不會被儲存起來,下一篇再介紹如何使用Cloud SQL把資料儲存起來^^


2014年1月1日 星期三

PHP on GAE (一) Hello, World!

寫Android有時候需要一個Sever 來互動,可能是個remote REST API server to interact with database,或是In-App Billing 的帳務Serer,或是App的Content website,總之就是需要一個Server. 用過AWS、Azure,現在想要用一下GAE。這篇筆記是一邊進行一邊寫成的,一方面也是逼自己這次一定要從APP到Server完整走一遍。

分為幾個步驟:

  1. 要安裝GAE SDK for PHP,首先你要安裝三個東西
    1. Python 2.7:本機環境的server 是Python寫的,要執行必須先準備Python執行環境
    2. App Engine PHP SDK:主要用來編譯、發布程式用,我安裝在D:\DEV\Google\google_appengine
    3. MySQL :在本機測試DB使用,這沒有含在SDK裡面要另外安裝,在server環境用的是Google Cloud SQL,用起來跟MySQL大致類似
  2. 找個地方建立個目錄,例如:D:\DEV\Google\HelloGAEProject,新增兩個檔案
    1. Helloworld.php 
    2. app.yaml 

  3. 回到command line D:\DEV\Google\下執行


  4. 如果這時候你看到這個對話框 ,可能你之前有在電腦裡面裝過AppServ,所以用到舊的php.ini了找到C:\windows\php.ini. 先移到別的地方
  5. 看到這段,就大功告成啦
  6. 快來去Browser裡面打http://localhost:8080看看,今天就到這囉,找php.ini的bug弄了快一個小時@@