Google App Engine で CakePHPを使うトライ

LINEで送る
Pocket

とりあえずローカルのMountain lionでGoogle App Engine PHP SDKを入れてHelloworldを表示する事に成功した。次はCakePHPが使えないか試してみたい。

まず前回の記事で作ったアプリをCakePHPで置き換えよう。CakePHPはこちらからダウンロードしてディレクトリ毎展開すればOK。例えば、

~/Sites/gaecake/

というディレクトリにCakePHPを置いたとする。

$ cd ~/Sites/gaecake

$ touch app.yaml

$ touch php.ini

としてapp.yamlとphp.iniを作っておこう。そしてそれぞれ以下の様にかき込む。

app.yaml for CakePHP

application: cakegae
version: 1
runtime: php
api_version: 1

handlers:

- url: /css
static_dir: app/webroot/css

- url: /js
static_dir: app/webroot/js

- url: /img
static_dir: app/webroot/img

- url: /.*
script: app/webroot/index.php

次は、php.iniに以下をかき込む。

date.timezone = "Asia/Tokyo"

前回の記事に従って、

$ google_appengine/dev_appserver.py --php_executable_path=<path to php-cgi> ~/Sites/gaecake/

としてウェブサーバーを立ち上げ「http://localhost:8080」でブラウザからアクセスする。

これでCakePHPがローカル開発環境で表示されたはずた!

あれ?でもいろいろやってると不具合が出てくる。$this->redirectとかすると baseUrlの指定が壊れていててんで変なURLにリダイレクトしようとしよる。

こまった。。。なんか解決方法はないかのぉ。

app/config/core.phpの以下のラインをコメント解除したりもためした。

Configure::write('App.baseUrl', env('SCRIPT_NAME'));

でもダメだった。うーん。とりあえず今のところは解決策がみつからぬ。。

LINEで送る
Pocket

Google App Engine で PHPが使える様になった ~ SDKインストール

LINEで送る
Pocket

 こちらの記事の続きです。

前回の記事では、PHP 5.4のcgiバイナリをhomebrewでインストールしましたので、今回はApp Engine PHP SDKをインストールして、実際にサンプルアプリを作るところまでやってみます。

App Engine PHP SDKをインストールします。まず、ホームディレクトリに移動して、curlでzipファイルをダウンロードして、unzip。たったそれだけです。

$ cd

$ curl -O http://commondatastorage.googleapis.com/appengine-php/appengine-php-sdk-1.8.0.zip

$ unzip appengine-php-sdk-1.8.0.zip

これでSDKの準備が整いました。信じられないくらい簡単です。

では、次にアプリを作ります。

~/Sites/helloworld

などのフォルダを作りましょう。そして以下2つのファイルを作り終了です。

~/Sites/helloworld/helloworld.php

<?php
  echo 'Hello, World!';

~/Sites/helloworld/app.yaml

application: helloworld
version: 1

runtime: php

api_version: 1

 

handlers:

- url: /.*

script: helloworld.php

以上です。

さあ実行してみましょう。

$ cd ~/

$ google_appengine/dev_appserver.py --php_executable_path=<path to php-cgi> ~/Sites/helloworld/

<path to php-cgi>の部分は前回記事でインストールしたphp-cgiの場所になります。たぶん、

~/.phpenv/versions/5.4.10/bin/php-cgi

とかにあります。これでウェブサーバーが起動しましたので実際にブラウザから http://localhost:8080

としてアクセスしてみましょう。

LINEで送る
Pocket

Google App EngineでPHPが使える様になった!

LINEで送る
Pocket

長年PythonとJavaしか使えなかったGAEにてPHPが使える様になった模様。現在試験期間中なので、実際にサーバにデプロイするにはGoogleに申請して返答を待つ必要があるのだが、まずは開発環境を作るところから準備しておきたいので、自分のMac OS X 10.8.3 Mountain lionで環境を作ってみた。

詳しくはこちらを参照してください。

今回の記事の特徴としては、本家Google様はMac Portを使用したやり方を書いてあるところをHomebrewにした件。こちらのGAEドキュメントに従って以下をこなしていく。

  1. PHP 5.4のインストール
  2. App Engine PHP SDKのインストール
  3. サンプルアプリ作成&起動

前提事項として、今回の開発環境は上記したMac OS X 10.8のMountain lionであります。したがって、GAEの必要項目に挙げられているPython2.7に関してはプリインストールされています。反対に、この環境のデフォルトPHPは残念ながらPHP 5.3系統であるため、PHP 5.4を入れる必要があります。

PHP 5.4のインストール

PHP 5.4のインストールですが、注意点として、

  1. 現在のバージョンを残したい(既存開発環境を壊したくない)
  2. php-cgiバイナリが必要
  3. Mac Portは使いたくない

という事があります。なので、Homebrewで、php-envを使って、php-cgiバイナリを含む形でインストールする必要があります。

※php-cgiとありますが、PHPはモジュールモードやCGIモードで動作させる事ができ、環境や条件によってそれらを使い分けます。通常Apacheなどでそのまま使っているとモジュールモードになります。GAEはphp-cgiバイナリを使ったCGIモードでの動作となりますので、php-cgiを作成する必要があります。

必ず先にHomebrewをインストールしてください。では順を追って。

$ brew doctor

$ brew update

$ brew tap josegonzalez/php

$ brew install --HEAD phpenv

ここで、PATHの設定等が必要になります。 ~/.bashrc を開いて以下を追加してください。

if [ -f $HOME/.phpenv/bin/phpenv ]; then
export PATH=$PATH:~/.phpenv/bin
eval "$(phpenv init -)"
fi

で、シェルを再起動してください。

$ source ~/.bashrc

$ brew install php-build

$ php-build --definitions

これでビルドできるPHPのバージョンを確認できます。次に、ビルドする時の設定をする必要がありますので、configureのファイルを編集します。

$ vi /usr/local/Cellar/php-build/0.9.0/share/php-build/default_configure_options

内容を見て、以下が存在する事を確認してください。

  • –enable-cgi
  • –enable-bcmath

無ければ追加してください。

次に、ビルドします。

$ php-build 5.4.10 ~/.phpenv/versions/5.4.10

が、いちいちビルドエラーがでます。ビルドエラーがでる理由は依存するモジュールがインストールされていない事が原因ですので、足りないと言われたモジュールを全てインストールして再度php-buildしましょう。

因に、当方の環境で依存モジュールとしてインストールしたのは以下。

$ brew install re2c

$ brew install mcrypt

$ brew install jpeg

$ brew install libpng

さて、ビルドに成功したとして、以下にphp-cgiが作成されているはずです。

$ ls ~/.phpenv/versions/5.4.10/bin/php-cgi

実際にApache等でPHPを使う場合はこの後いろいろバージョンの変更とかの手順を踏むのだが、GAEではこのPHP 5.4版のphp-cgiバイナリさえあれば良いので、これでPHPのインストールを終了する。

さて、今回はここまで、

次は、「App Engine PHP SDKのインストール」です。

続きは次回「Google App Engine で PHPが使える様になった ~ SDKインストール」

LINEで送る
Pocket