Symfoware

Symfowareについての考察blog

Ubuntu 14.04にGoogle App Engine(GAE) + PHPの開発環境を構築する

ずいぶん前にも試しているのですが、内容が古くなっているので
再度試してみます。

Ubuntu 11.04でGoogle App Engine(GAE)の開発環境を構築する

今回は、PHPの開発が行える環境を構築してみます。



GOOGLE CLOUD SDKのインストール



こちらの手順を参考にしました。
ずいぶん便利になりました。

https://console.developers.google.com/start/appengine


以下のコマンドを実行


$ curl https://sdk.cloud.google.com/ | bash




インストールが始まります。


$ curl https://sdk.cloud.google.com/ | bash
% Total    % Received % Xferd Average Speed Time    Time     Time Current
                                 Dload Upload Total Spent    Left Speed
100 425    0 425    0     0 1296     0 --:--:-- --:--:-- --:--:-- 1295
Downloading Google Cloud SDK install script: https://dl.google.com/dl/cloudsdk/release/install_google_cloud_sdk.bash
######################################################################## 100.0%
Running install script from: /tmp/tmp.96u4MCgc7r/install_google_cloud_sdk.bash
curl -# -f https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
######################################################################## 100.0%

Directory to extract under (this will create a directory google-cloud-sdk) (/home/baranche):




デフォルトで、ホームディレクトリにSDKがインストールされます。
エンターキーで続行しました。


(略)
The Google Cloud SDK is currently in developer preview. To help improve the
quality of this product, we collect anonymized data on how the SDK is used.
You may choose to opt out of this collection now (by choosing 'N' at the below
prompt), or at any time in the future by running the following command:
    gcloud config set --scope=user disable_usage_reporting true

Do you want to help improve the Google Cloud SDK (Y/n)? n




Googleに情報提供するかの確認だと思います。
うっかりnにしてしまいましたが、Yで問題ないと思います。


This will install all the core command line tools necessary for working with
the Google Cloud Platform.
...
(ライブラリのインストール中。しばらく待ちます)
..
Modify profile to update your $PATH and enable bash completion? (Y/n)? Y




自動的にsdkのパスを登録するかの確認です。
Yで登録するようにしました。


The Google Cloud SDK installer will now prompt you to update an rc
file to bring the Google Cloud CLIs into your environment.

Enter path to an rc file to update, or leave blank to use
[/home/baranche/.bashrc]:




これでインストール完了です。

ホームディレクトリに「google-cloud-sdk」と「google-cloud-sdk.staging」という
フォルダが作成されました。


一回コンソールを再起動して、パスを反映させます。


次に、アカウントの関連付けを行います。
以下のコマンドを実行。


$ gcloud auth login



コマンドを実行すると、ブラウザが起動します。
関連付けるGoogleのアカウントを選択。

601_01.png


許可をリクエストしていますの表示。

601_02.png

一番下までスクロールして「承認する」をクリックします。

601_03.png


これで登録は完了です。


※コンソールに「既存のブラウザ セッションに新しいウィンドウが作成されました。」と表示され、
止まったように見えますが、
「Saved Application Default Credentials.」
と表示されるまで待ちます。
ここでコンソールを閉じると、認証が終了しません。


pythonとPHPのライブラリを以下のコマンドで更新します。


$ gcloud components update gae-python




実行するとこんな表示になります。


$ gcloud components update gae-python

The following components will be installed:
    -------------------------------------------------------------------------
    | App Engine SDK for Python and PHP             | 2014.05.06 | < 1 MB |
    | gcloud app Python Extensions                 |     1.9.18 | 6.8 MB |
    | gcloud app Python Extensions (Extra Libraries) |     1.9.18 | 19.8 MB |
    -------------------------------------------------------------------------

Do you want to continue (Y/n)? Y




これで準備は整いました。




PHPアプリケーション



PHPでアプリケーションを作成してみます。

適当なディレクトリを作成し、2つのファイルを作成します。

・app.yaml


application: helloworld
version: 1
runtime: php
api_version: 1

handlers:
- url: /.*
  script: helloworld.php





・helloworld.php


  1. <?php
  2. echo 'Hello, world!';





作成したフォルダの1階層上に移動。
以下のコマンドでデバッグサーバーを起動します。


$ dev_appserver.py [ソースのフォルダ名]




起動してみるとエラーが...


$ dev_appserver.py php-sample
INFO     2015-03-17 14:02:04,614 devappserver2.py:726] Skipping SDK update check.
INFO     2015-03-17 14:02:04,664 api_server.py:172] Starting API server at: http://localhost:43453
INFO     2015-03-17 14:02:04,666 dispatcher.py:186] Starting module "default" running at: http://localhost:8080
INFO     2015-03-17 14:02:04,666 admin_server.py:118] Starting admin server at: http://localhost:8000
ERROR    2015-03-17 14:02:05,668 php_runtime.py:353] The PHP runtime is not available
Traceback (most recent call last):
File "/home/baranche/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/php_runtime.py", line 349, in new_instance
    self._check_binaries(php_executable_path, gae_extension_path)
File "/home/baranche/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/php_runtime.py", line 269, in _check_binaries
    raise _PHPBinaryError('The development server must be started with the '
_PHPBinaryError: The development server must be started with the --php_executable_path flag set to the path of the php-cgi binary.




こちらを参考にphp5-cgiをインストールしました。
What is php_executable_path in LAMP ubuntu12.04?


$ sudo apt-get install php5-cgi



※本番環境とバージョンを一致させるため、本当はphp-5.4.25をインストールするほうが良いです。
Download the Google App Engine SDK

手順だけメモしておきます。


$ sudo apt-get install gcc libmysqlclient-dev libxml2-dev
$ wget --trust-server-names http://us2.php.net/get/php-5.4.25.tar.bz2/from/us1.php.net/mirror
$ tar -xvf php-5.4.25.tar.bz2
$ cd php-5.4.25
$ ./configure --prefix=$PWD/installdir --enable-bcmath --with-mysql --with-pdo-mysql
$ make install
$ cd -




--php_executable_pathオプションをつけて起動。


$ dev_appserver.py php-sample --php_executable_path=/usr/bin/php-cgi



http://localhost:8080/を表示すると、PHPが動いてくれました。


601_04.png



関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2015/03/17(火) 23:18:48|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Ubuntu + GAE + PHPで「--php_executable_path flag set to the path of the php-cgi binary」 | ホーム | RedmineとGit(BitBucket)の連携方法(redmine_github_hook使用)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1695-6467ff8a
この記事にトラックバックする(FC2ブログユーザー)