meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

Docker + Nginx + PHP+ Let’s Encryptでウェブサーバを立ち上げてみた

      2018/10/20

久しぶりにウェブ開発の話です。

サーバー

最近、新しいウェブサービスを立ち上げるために、Docker + Nginx + PHP + Let’s Encrypt で環境を構築しました。

色々とわからないことが多くて調べまくりましたw

今日は備忘録も兼ねて記事を書き思ました。

想定している環境

  • Ubuntu 16.04.2 LTS
  • Nginx 1.13.0
  • PHP7

という環境で試しました。

しかし、以下の手順で行えば、基本的にはバージョン関係なく構築できると思います。

環境構築の手順

Let’s Encryptの準備

まずはサーバー証明書を取得する必要があります。

Let’s Encryptのサーバー証明書を取得するので最も簡単な方法は、certbotを使う方法です。(というかこれ以外に方法があるのか知りませんw)

やり方はネット上で無数に紹介されていますので、グーグル先生に聞いてみてください。(個人的にわかりやすかったのはこちらのページです。)

certbotを使って、最終的に以下のようにサーバー証明書等を配置してください。certbot上でインストールするディレクトリを指定すれば、以下のようなフォルダ・ファイルが自動で作られます。

言うまでもないですが、www.hogehoge.comというホスト名は仮のものです。certbotを使っていると途中でホスト名の入力を促されるので、そこで自分のホスト名を設定してください。

docker-composeで構築

次にdocker-composeで環境を構築します。

以下のパスのようにフォルダ・ファイル等を作成してください。

 

各々のファイルの内容は以下の通りです。

 

用意するファイルは以上です。

最後にターミナルでcdコマンドを使って今回作成した親ディレクトリに移動して

を実行するだけ。

これで環境構築完成です!

html以下にあるファイルを自分のものと置き換えれば、好きなウェブサイトが構築できます。

まとめ

正直言って、調べるのにめちゃくちゃ苦労しましたw

特に苦労したのはdockerでサーバー証明書のディレクトリをマウントさせる部分ですね。

私はdocker自体あまり使ったことがないので、ボリュームのマウントの挙動がよくわかりませんでした。

何はともあれ、できて良かったです!

わからないことがあればコメント欄へどうぞ♪( ´▽`)

 - 技術系