5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【随時更新予定】GAEでwebサイトをデプロイする際にapp.yamlの記述で気をつけること。

Last updated at Posted at 2019-07-31

こんにちは。
私はいわゆる昔ながらのwebデザイナーでありコーダーやってました(現在はたまにやる程度)。モダンwebと呼ばれるフロントエンド界隈にはあまり詳しくなく、これまでFTPを使ったアップロードで済んでいたような、シンプルなwebサイト制作が多かったのですが、勤務先のサーバー環境がGCP系(主にGAE Google App Engine)になったことで、いろいろ新しく覚えることが増えたので備忘録として残していきます。
##トラフィックの少ない静的サイトはGAEと相性が良いみたい
GAEには無料枠というものがあり、トラフィックの少ないサイトはGAEにデプロイすることで固定費を抑えるできることがわかったので、現在勤務先では積極的に採用していく方針となってます。無料枠に関してはこちらの記事に詳しく書かれてました。
##app.yamlのハンドラーに苦戦
適当に書いてたらエラーの嵐。GAEでhtmlのデプロイはリファレンス少なくて結構困りました。ここから試行錯誤で対応です。
###httpsに対応&リダイレクトさせる

app.yaml
runtime: php55
api_version: 1
service: <サービス名>
handlers:
  - url: /
    script: index.php
    # これ↓
    secure: always

こちらはドキュメントルートにアクセスした際に、index.phpを呼び出すように設定。httpsに対応させるため、secure: alwaysと記述します。こうすることで、httpにアクセスしても、自動的にhttpsへリダイレクトしてくれます。(GAEってこの一行でssl対応できるからありがたい)ただし、あくまで指定したURLしか対応しないので複数ページがあればすべて記述が必要なので注意。全部一括でhttpsにしてくれる方法あったら教えて下さい。
###末尾スラッシュなしにアクセスした際の挙動をコントロール

app.yaml
runtime: php55
api_version: 1
service: <サービス名>
handlers:
  - url: /<サブディレクトリ名>/
    static_files: <サブディレクトリ名>/index.html
    upload: <サブディレクトリ名>/index.html
    secure: always

  - url: /<サブディレクトリ名>
    script: <サブディレクトリ名>/index.php
    secure: always
index.php
<?php
$dom = (empty($_SERVER['HTTPS']) ? 'http://' : 'https://') . $_SERVER['HTTP_HOST'];
?>
<!DOCTYPE html>
<html>
<head>
	<title>サイトタイトル</title>
	<meta charset="UTF-8">
	<meta name=”robots” content=”noindex”>
	<meta http-equiv="refresh" content="0 ; URL=<?php echo $dom; ?>/<サブディレクトリ名>/">
</head>
<body>
</body>

</html>

app.yamlにはスラッシュありの場合の読み込み先と、スラッシュなしの場合の読み込み先は個別に指定する必要があります。じゃないと、指定していない方にアクセスすると普通にエラーになります。ということで、スラッシュなしのURLにアクセスした際に、リダイレクト用のindex.phpを用意してそれを読み込ませることで対応させました。瞬時に切り替わるのでユーザー側に不便はないですが、おそらくやり方としては全然スマートじゃないのでもっといい方法あったら教えて下さい。
##今後の更新予定
app.yamlの書き方覚えたら追加していくのと、あとはNUXT.js使ったサイトを作ったので、そのあたりで覚えたことがあれば書いていきます。多分。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?