Ubuntu16.04でHTTPSなWordPress構築

ここではOSインストールに際してLAMPスタックを一切インストールしていないものとして、Ubuntu 16.04 LTSでのLAMP構築からHTTPS対応、そしてWordpressインストールまでの手順を公開しています。

結果的にインストールできたLAMPスタックのバージョンは以下もの。

  • MySQL5.7.20
  • PHP7.0.22
  • Apache22.4.18
$ sudo apt-get update

$ sudo apt-get install mysql-server

$ sudo apt-get install php

$ sudo apt-get install apache2

$ sudo apt-get install libapache2-mod-php

ここまででの作業によってmysqlへのログイン、PHPのApache上での動作が確認できる。

PHPのデータベース抽象化モジュールのインストール

これまでの作業ではPHPでPODが動かなかった。
どうやらphp-mysqlをインストールしなければならないとのこと。

$ sudo apt-get install php-mysql

HTTPSの有効化

HTTPS対応がため重い腰を上げたものの、コマンドを叩くだけで簡単に無料で実装できたので肩透かしを食らうまである。

UbuntuとSSLについてはgihyoのこちらの記事が参考になった。

実際の導入までに叩くコマンドなどはこちらの記事を参考にさせていただいた。

$ sudo apt-get install letsencrypt python-letsencrypt-apache -y
$ sudo letsencrypt --apache

WPのインストール

まずは何よりMySQLでWordPress用のDBを作成

mysql> CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

コマンドでWordPressやそのモジュールをインストールするためのwp-cliをインストール

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ php wp-cli.phar --info
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

WordPressをドキュメントルートにインストール


$ sudo chown -R <ユーザ>:www-data /var/www/ $ wp core download --locale=ja --path=/var/www/html

.htaccessをドキュメントルートに配置

$ sudo touch /var/www/html/.htaccess

.htaccessを有効化 (https化していない場合は000-default.conf)


sudo a2enmod rewrite$ sudo vim 000-default-le-ssl.conf

下記を適所に追記

<div id="crayon-5a1ba0e12e7ff607702925-1" class="crayon-line"><Directory /var/www/></div>
<div id="crayon-5a1ba0e12e7ff607702925-2" class="crayon-line">    AllowOverride All</div>
<div id="crayon-5a1ba0e12e7ff607702925-3" class="crayon-line">    Order allow,deny</div>
<div id="crayon-5a1ba0e12e7ff607702925-4" class="crayon-line">    allow from all</div>
<div id="crayon-5a1ba0e12e7ff607702925-5" class="crayon-line"></Directory></div>
<div></div>

sudo a2enmod rewrite

ウェブブラウザからアクセスしてブラウザから設定を済ませれば完了。