Google App Engine で PHP 7.1 を動かしてみるよ (Flexible Environment)
前提として、ローカル環境はこんな感じです
ひとまず、Slim を使ってみることにします。
composer create-project slim/slim-skeleton try-gaephp7
これで、以下のようなファイルが作られます。
ls -1 CONTRIBUTING.md README.md composer.json composer.lock logs/ phpunit.xml public/ src/ templates/ tests/ vendor/
今回はフレームワークの読み込みと、PHP バージョンの確認のために
src/routes.php
を
<?php // Routes $app->get('/', function ($request, $response) { // Sample log message $this->logger->info("Slim-Skeleton '/' route"); // Render index view return $this->renderer->render($response, 'index.phtml', [ 'version' => phpversion(), ]); });
templates/index.phtml
で
<p>PHP Version: <?= $version ?></p>
のようにしてみました。
ひとまずは手元で動かしてみます。
Slim の Skeleton からプロジェクトを作ると、 composer run-script start
というコマンドでローカルサーバーが起動します。
http://localhost:8080/
をブラウザで開くとちゃんと動いているのが確認できました。
それでは、今度はこれを GAE の Flexible Environment で実行したいと思います。
まず、GAE の設定ファイル (app.yaml
) を以下のようにしました。
runtime: php env: flex runtime_config: document_root: public
そして composer.json
の php バージョンを PHP 7.1 系で動かしたいので "php": "7.1.*",
と変更してみます。
nginx-app.conf
も設置します。app.yaml
と同じところに配置できる設定ファイルは他にもいくつかあります。
https://cloud.google.com/appengine/docs/flexible/php/configuring-your-app-with-app-yaml#the_runtime_config_section
location / { try_files $uri /index.php$is_args$args; }
これで、gcloud app deploy --promote
を実行すると、まあなんか色々聞かれたり答えたりしたのちにデプロイ完了しました