WordPress構築で躓いたところ

技術ネタ

先日のJAWS Festaで堀内さんの発表に感銘をうけて、起ち上げたWordpress。
些細なところかもしれないですが、ハマったので残しておこうと思います。

正直サクッと立ち上がってインフラ全部用意しても1時間あれば終わるだろってナメてました。

あと、ブログにまとめるのに日にちかかりすぎて一部忘れました/(^o^)\

スポンサーリンク

躓いたところ【VPC編】

よくある鉄板構成、この構成ならよくかかっても15分で終わる。
初心者ハンズオンでもここからRDSを繋げてみたり、AZ跨いだ冗長構成やらやったりする。

もちろん、VPCとサブネットはdefaultではなくちゃんと作成。
少し違う点はELBは挟んでないところかな?

構成まではすんなり行って、いざCloudFrontのURLにアクセス。

「接続が拒否されました」

・・・・あれ?w

Elastic IPも設定してるしsshは繋がるのになぜ・・・w
AMIMOTOデフォ設定なので、HTTPもHTTPSも開いてるからセキュリティグループでもない。
サブネットにもちゃんとインターネットゲートウェイつけてる、てか付けてないとsshもつながらないはず・・・

結局これについては、サブネットのパブリック IPv4 アドレスの自動割り当てはいにしたら解決はしたんですが、Elastic IP指定してるのになぜ?って疑問はそのまま・・・💦
最終的な構成ではいいえの状態で動いてるので、今考えればCloudFrontがProgressのままだったのかもです。

躓いたところ【SSL編】

これが意外と苦戦した・・・

今回はEC2は建てますが、ELBを使わない方針で行きました。
理由は簡単で、個人ブログに最初からロードバランサーとか要らないw
CloudFrontから直でEC2のパブリックDNSを指定すれば、SSL証明書はCloudFrontに刺せばOK

というわけで実際にやってみた。

まぁ上手くいかない/(^o^)\
細かいこと忘れてしまったんだけど、

結局はCloudFrontとEC2のpublicDNSを直通はうまく行かなかった。

httpsでの通信でAMIMOTOの初期画面までは行くのですが、その先に入っていくと上手くいかないかんじ
なのでPublicDNSにRoute53でドメイン名付けて、CloudFrontはそのドメインをOriginにしました。
CloudFrontのBehaviorはRedirect HTTP to HTTPSにして以下の設定



CloudFrontからOriginの間はhttp通信にして、EC2のSGはhttpのみ受け入れにしてます

なぜそれでうまく行ってるか理解できてないですが、ブログ開設を優先しました💦
また時間のあるときに再度作って、本当にこの方法じゃないと駄目なのか検証してみます

躓いたところ【SNSリンク編】

公開してこのページを書いてるときに気づいた💦

試しにTwitterのソーシャルリンクのボタンを押してみて、記事ページへのリンクがhttps://wp.hisa-tech.siteになってた(;´∀`)

とりあえず、DB側を疑ってみることに。

wp search-replace 'https://wp.hisa-tech.site' 'https://hisa-tech.site'

・・・・治らない

次にCocoonの親テーマがソーシャルボタンがどうやってURL取得しているか調べてみた。

tmp/sns-share-buttons.php

ここを見るとget_twitter_share_url();が取得しているように見える。

lib/sns-share.php

おそらくこれが本体で、どのボタンもget_share_page_urlでURLを取得している。 じゃぁ次にget_share_page_urlを探すとこっちはget_requested_urlで取得している・・・

このPHPのどこから呼んでるのか分からない上に、あちこち飛ぶ性質がほんと大嫌い💦

結局、これ以上追っかけられずにEC2に入って/var/www/vhosts/i-xxxxxx/wp-config.phpに以下のコード追加して解決

$_SERVER['HTTP_HOST'] = 'hisa-tech.site';
$_SERVER['SERVER_NAME'] = 'hisa-tech.site';
$_ENV['HTTP_HOST'] = 'hisa-tech.site';
$_ENV['SERVER_NAME'] = 'hisa-tech.site';

まとめ

今回の教訓はとりあえず1〜2日以内には解決策をブログアップしたほうがいいですねw
技術系のまとめ記事はどうしても時間かかる傾向が・・・w
結果、何があって、どう対応したのかを忘れる始末/(^o^)\

あとは対応中に適度にまとめておくべきでした・・・
解決急いでしまって、何をやっていったか残ってないのは痛いですね💦
もう一本、書いてる途中のFeedbackあるのですが、そっちも既に忘れかけなので早めに上げますw

WordPress自体は今後も堀内さんのアーキテクチャに近づけて行こうかなと思います♪
Shifterも気になってるので、そっちが面白そうならそっちいくかも/(^o^)\
以下、参考ページです!

参考ページ

AMIMOTO AMI版WordPressをAmazon CloudFrontとACM(AWS Certificate Manager)で常時SSL化する
WordPressを常時SSL化するときにつまずいたこと
WordPressサイトをCloudFrontで配信する



コメント