序章

WordPress は、人気のあるコンテンツ管理システム(CMS)です。 ブログやウェブサイトをすばやく簡単に設定するために使用でき、ほとんどすべての管理はウェブインターフェースを介して可能です。

ほとんどの場合、WordPressはLAMPまたはLEMPスタックを使用してインストールされます(つまり、 ApacheまたはNginxのいずれかをWebサーバーとして使用します)。 このガイドでは、代わりにCaddyを使用してWordPressを設定します。 Caddyは、HTTP / 2サポートや、人気のある無料の証明書プロバイダーであるLet’s Encryptによる自動TLS暗号化など、さまざまな独自機能で急速に人気を博している新しいWebサーバーです。

このチュートリアルでは、CaddyがサポートするWordPressをインストールして構成します。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • この最初のUbuntu16.04サーバーセットアップチュートリアルでセットアップされた1つのUbuntu16.04サーバー。これには、sudo非rootユーザーとファイアウォールが含まれます。
  • Ubuntu16.04チュートリアルにMySQLをインストールする方法に従ってインストールされたMySQL。
  • Ubuntu 16.04 チュートリアルでCaddyを使用してWebサイトをホストする方法( Droplet を指すように構成されたドメイン名を含む)に従ってインストールされたCaddy。

ステップ1—PHPのインストール

WordPressを実行するには、Webサーバー、MySQLデータベース、およびPHPスクリプト言語が必要です。 前提条件からすでにCaddyWebサーバーとMySQLデータベースがインストールされているため、最後の要件はPHPをインストールすることです。

まず、パッケージが最新であることを確認します。

  1. sudo apt-get update

次に、PHPをインストールします。 PHP拡張機能WordPressは、MySQL、curl、XML、マルチバイト文字列のサポートなどに依存しています。

  1. sudo apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-xmlrpc

インストールが完了したら、PHPのバージョンを確認することで、PHPが正しくインストールされたことを確認できます。

  1. php -v

これに似た出力が表示され、PHPのバージョン番号が表示されます。

PHP version output
PHP 7.0.18-0ubuntu0.16.04.1 (cli) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.18-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

WordPressの依存関係はすべてインストールされているので、次に、WordPressが使用するようにMySQLデータベースを構成します。

ステップ2—MySQLデータベースと専用ユーザーの作成

WordPressは、MySQLデータベースを使用してすべての情報を保存します。 デフォルトのMySQLインストールでは、root管理者アカウントのみが作成されます。 データベースサーバーに対する無制限の特権はセキュリティ上のリスクがあるため、このアカウントは使用しないでください。 ここでは、WordPressが使用する専用のMySQLユーザーと、新しいユーザーがアクセスできるデータベースを作成します。

まず、MySQL root管理者アカウントにログインします。

  1. mysql -u root -p

インストール中にMySQLrootアカウントに設定したパスワードの入力を求められます。

WordPressWebサイトで使用されるwordpressという名前の新しいデータベースを作成します。 別の名前を使用することもできますが、後で追加の構成を行うために覚えておいてください。

  1. CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

次に、このデータベースへのアクセスを許可する新しいユーザーを作成します。 ここでは、簡単にするためにユーザー名wordpressuserを使用しますが、独自の名前を選択することもできます。 passwordを強力で安全なパスワードに置き換えることを忘れないでください。

  1. GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

MySQLサーバーに変更を通知するためのフラッシュ特権。

  1. FLUSH PRIVILEGES;

これで、MySQLを安全に終了できます。

  1. EXIT;

WordPressには専用のデータベースとユーザーアカウントがあるため、すべてのシステムコンポーネントがセットアップされます。 次のステップは、WordPress自体をインストールすることです。

ステップ3—WordPressをダウンロードする

WordPressのインストールには、最新リリースをWebルートディレクトリにダウンロードし、Webサーバーからアクセスできることを確認してから、WordPressのグラフィカルインターフェイスを介してインストールを完了する必要があります。 このステップでは、GUIにアクセスする前にWebサーバーを構成する必要があるため、リリースをダウンロードするだけです。

まず、現在のディレクトリを/var/wwwに変更します。これは、Webサイトファイルを保存するWebルートです。

  1. cd /var/www

最新の圧縮されたWordPressリリースをダウンロードします。 ソフトウェアはセキュリティパッチで頻繁に更新されるため、最新のリリースを使用することが重要です。

  1. sudo curl -O https://wordpress.org/latest.tar.gz

ダウンロードした圧縮アーカイブを解凍します。

  1. sudo tar zxf latest.tar.gz

これにより、wordpressという新しいディレクトリが自動的に作成されます。 ダウンロードしたアーカイブは不要になったため、安全に削除できるようになりました。

  1. sudo rm latest.tar.gz

最後のステップは、すべてのファイルがCaddyによって書き込み可能になるように、WordPressファイルとディレクトリのアクセス許可を変更することです。 これにより、WordPressを新しいバージョンに自動的に更新できるようになります。

  1. sudo chown -R www-data:www-data wordpress

注: WordPressファイルの適切な権限の選択は、設定と管理方法の問題です。 WordPressファイルへの書き込みアクセスを禁止すると、WordPressコアファイルの侵害につながる可能性のあるいくつかのバグを悪用できなくなるため、セキュリティが向上しますが、同時に、自動セキュリティ更新が無効になり、WordPressを介してプラグインをインストールおよび更新する機能が無効になりますWebインターフェイス。

次に、Webサイトを提供するためにWebサーバーの構成を変更する必要があります。

ステップ4—WordPressWebサイトにサービスを提供するようにCaddyを構成する

ここでは、Caddyfile構成ファイルを変更して、WordPressのインストール場所と、訪問者に公開するドメイン名をCaddyに通知します。

nanoまたはお好みのテキストエディタを使用して構成ファイルを開きます。

  1. sudo nano /etc/caddy/Caddyfile

次の構成をコピーしてファイルに貼り付けます。 以前のチュートリアルから構成例を削除できます。

/ etc / caddy / Caddyfile
example.com {
    tls [email protected]
    root /var/www/wordpress
    gzip
    fastcgi / /run/php/php7.0-fpm.sock php
    rewrite {
        if {path} not_match ^\/wp-admin
        to {path} {path}/ /index.php?_url={uri}
    }
}

このCaddyfileは次のように構成されています。

  • 最初の行のexample.comは、サイトを利用できるドメイン名です。 独自のドメイン名に置き換えてください。
  • tlsディレクティブの後の[email protected]は、Let’sEncrypt証明書を要求するために使用する必要がある電子メールアドレスをCaddyに通知します。 証明書を回復する必要がある場合は、Let’sEncryptが回復プロセスでこの電子メールアドレスを使用します。
  • rootディレクティブは、Webサイトファイルの場所をCaddyに通知します。 この例では、/var/www/wordpressです。
  • gzipディレクティブは、Webサイトを高速化するためにGzip圧縮を使用するようにCaddyに指示します。
  • fastcgiディレクティブは、php拡張子のファイルをサポートするようにPHPハンドラーを構成します
  • rewriteディレクティブを使用すると、きれいなURL(WordPressではきれいなパーマリンクと呼ばれます)が有効になります。 この構成は、Apacheを使用する場合、WordPressによって.htaccessファイルで自動的に提供されますが、Caddy用に個別に構成する必要があります。

それに応じて構成ファイルを変更した後、ファイルを保存して終了します。

Caddyを再起動して、新しい構成ファイル設定を有効にします。

  1. sudo systemctl restart caddy

Caddyが起動すると、Let’s EncryptからSSL証明書を自動的に取得し、TLS暗号化を使用してサイトに安全にサービスを提供します。 これで、Webブラウザーを使用してドメインに移動することにより、CaddyがホストするWordPressWebサイトにアクセスできます。 これを行うと、アドレスバーに緑色の鍵のサインが表示されます。これは、サイトが安全な接続を介して表示されていることを意味します。

これで、Caddyと、WordPressWebサイトをホストするために必要なすべてのソフトウェアがインストールおよび構成されました。 最後のステップは、グラフィカルインターフェイスを使用してWordPressの構成を完了することです。

ステップ5—WordPressの設定

WordPressには、データベースへの接続や最初のWebサイトのセットアップなど、セットアップを完了するためのGUIインストールウィザードがあります。

ブラウザで新しいWordPressインスタンスに初めてアクセスすると、言語のリストが表示されます。 使用したい言語を選択してください。 次の画面では、データベースに関して必要な情報について説明します。 Let’s go!をクリックすると、次のページでデータベース接続の詳細を尋ねられます。 このフォームに次のように記入します。

  • 手順2でカスタマイズした場合を除き、データベース名wordpressである必要があります。
  • 手順2でカスタマイズした場合を除き、ユーザー名wordpressuserである必要があります。
  • Password は、手順2でwordpressuserに設定したパスワードである必要があります。
  • データベースホストおよびテーブルプレフィックスはデフォルト値のままにしておく必要があります。

送信をクリックすると、WordPressは提供された詳細が正しいかどうかを確認します。 エラーメッセージが表示された場合は、データベースの詳細を正しく入力したことを再確認してください。

WordPressがデータベースに正常に接続すると、次のメッセージが表示されます。 大丈夫、キラキラ! インストールのこの部分を完了しました。 WordPressがデータベースと通信できるようになりました。

これで、[インストールの実行]をクリックしてインストールを開始できます。 しばらくすると、WordPressは、Webサイトのタイトル、管理者アカウントのユーザー名、パスワード、電子メールアドレスなどのWebサイトの詳細を尋ねる最終画面を表示します。 強力なパスワードは自動的に生成されますが、必要に応じて独自のパスワードを選択できます。

注:多くのセキュリティエクスプロイトは標準のユーザー名とパスワードに依存しているため、管理者アカウントにadminのような一般的なユーザー名を使用しないことをお勧めします。 サイトを安全にするために、メインアカウントに一意のユーザー名と強力なパスワードを選択してください。

WordPressのインストールをクリックすると、WordPressダッシュボードに移動します。 これでWordPressのインストールが完了し、WordPressを自由に使用してWebサイトをカスタマイズしたり、投稿やページを書き込んだりできます。

結論

これで、CaddyWebサーバーを使用してWordPressのインストールが機能するようになりました。 CaddyはLet’sEncryptからSSL証明書を自動的に取得し、安全な接続を介してサイトにサービスを提供し、HTTP/2とGzip圧縮を使用してWebサイトに高速でサービスを提供します。 の公式Caddyドキュメントで、CaddyfileのCaddy独自の機能と構成ディレクティブの詳細を読むことができます。

新しいWordPressインスタンスでプラグインを使用する場合、一部のプラグインはApacheWebサーバーの.htaccessファイルに依存していることに注意してください。 Apache以外のWebサーバーがWordPressで一般的になっているため、これらの.htaccessに依存するプラグインは多くありません。 ただし、.htaccessを使用していないため、Caddyではそのままでは機能しないものがいくつかあります。 Caddyを使用しているときにWordPressプラグインで問題が発生した場合は、これを覚えておくとよいでしょう。

.htaccessに依存するほとんどのプラグインは、.htaccessを使用してPHPを完全に回避して処理するキャッシュプラグイン(たとえば、W3 Total Cache)です。 もう1つの例はWordfenceです。これは、デフォルトで.htaccessを使用するWebアプリケーションファイアウォールモジュールですが、さまざまな構成モデルを適切にサポートしています。