Ubuntu 18.04でLEMPを使用してWordPressをインストールする方法

前書き

WordPressは、インターネット上で最も人気のあるCMS(コンテンツ管理システム)です。 PHP処理を使用して、MySQLバックエンド上に柔軟なブログとWebサイトを簡単にセットアップできます。 WordPressは信じられないほど採用されており、Webサイトを迅速に立ち上げて運用するのに最適な選択肢です。 セットアップ後、ほとんどすべての管理はWebフロントエンドから実行できます。

このガイドでは、Ubuntu 18.04サーバー上のLEMPスタック(Linux、Nginx、MySQL、およびPHP)でWordPressインスタンスをセットアップすることに焦点を当てます。

前提条件

このチュートリアルを完了するには、Ubuntu 18.04サーバーにアクセスする必要があります。

このガイドを開始する前に、次のタスクを実行する必要があります。

  • Create a sudo user on your server:このガイドの手順は、sudo権限を持つroot以外のユーザーを使用して完了します。 Ubuntu 18.04 initial server setup guideに従うことで、sudo特権を持つユーザーを作成できます。

  • Install a LEMP stack:WordPressが正しく機能するには、Webサーバー、データベース、およびPHPが必要です。 LEMPスタック(Linux、Nginx、MySQL、およびPHP)をセットアップすると、これらの要件がすべて満たされます。 this guideに従って、このソフトウェアをインストールおよび構成します。

  • Secure your site with SSL:WordPressは動的コンテンツを提供し、ユーザーの認証と承認を処理します。 TLS/SSL is the technology that allows you to encrypt the traffic from your site so that your connection is secure. SSLを設定する方法は、サイトのドメイン名があるかどうかによって異なります。

    • If you have a domain name…は、サイトを保護する最も簡単な方法は、無料の信頼できる証明書を提供するLet’sEncryptを使用することです。 これを設定するには、Let’s Encrypt guide for Nginxに従ってください。

    • If you do not have a domain…で、この構成をテストまたは個人的な使用に使用している場合は、代わりに自己署名証明書を使用できます。 これにより、同じタイプの暗号化が提供されますが、ドメイン検証は行われません。 self-signed SSL guide for Nginxに従ってセットアップします。

セットアップ手順が完了したら、sudoユーザーとしてサーバーにログインし、以下に進みます。

[[step-1 -—- creating-a-mysql-database-and-user-for-wordpress]] ==ステップ1—WordPress用のMySQLデータベースとユーザーの作成

最初のステップは準備です。 WordPressはMySQLを使用して、サイトおよびユーザー情報を管理および保存します。 MySQLはすでにインストールされていますが、WordPressで使用するデータベースとユーザーを作成する必要があります。

開始するには、MySQLルート(管理)アカウントにログインします。 MySQLがauth_socket認証プラグイン(デフォルト)を使用するように構成されている場合、sudoを使用してMySQL管理アカウントにログインできます。

sudo mysql

MySQLルートアカウントにパスワードを使用するように認証方法を変更した場合は、代わりに次の形式を使用します。

mysql -u root -p

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

まず、WordPressが制御できる別のデータベースを作成できます。 これは好きなように呼び出すことができますが、このガイドでは簡単にするためにwordpressを使用します。 次のように入力して、WordPress用のデータベースを作成できます。

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

[.note]#Note:すべてのMySQLステートメントはセミコロン(;)で終了する必要があります。 問題が発生した場合は、これが存在することを確認してください。

次に、新しいデータベースの操作専用に使用する別のMySQLユーザーアカウントを作成します。 管理とセキュリティの観点から、単一機能のデータベースとアカウントを作成することをお勧めします。 このガイドでは、wordpressuserという名前を使用します。 必要に応じて自由に変更してください。

このアカウントを作成し、パスワードを設定し、作成したデータベースへのアクセスを許可します。 これを行うには、次のコマンドを入力します。 データベースユーザーの強力なパスワードをここで選択することを忘れないでください。

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

これで、それぞれWordPress専用に作成されたデータベースとユーザーアカウントが作成されました。 MySQLの現在のインスタンスが最近行った変更を認識できるように、特権をフラッシュする必要があります。

FLUSH PRIVILEGES;

次のように入力して、MySQLを終了します。

EXIT;

MySQLセッションが終了し、通常のLinuxシェルに戻ります。

[[step-2 -—- installing-additional-php-extensions]] ==ステップ2—追加のPHP拡張機能のインストール

LEMPスタックをセットアップするとき、PHPがMySQLと通信できるようにするために必要な拡張機能のセットは最小限で済みました。 WordPressとそのプラグインの多くは、追加のPHP拡張機能を活用しています。

次のように入力して、WordPressで使用するための最も人気のあるPHP拡張機能の一部をダウンロードしてインストールできます。

sudo apt update
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

[.note]#Note:各WordPressプラグインには独自の要件セットがあります。 追加のPHPパッケージをインストールする必要がある場合があります。 プラグインのドキュメントをチェックして、PHPの要件を確認してください。 利用可能な場合は、上記のようにaptを使用してインストールできます。

拡張機能のインストールが完了したら、PHP-FPMプロセスを再起動して、実行中のPHPプロセッサが新しくインストールされた機能を活用できるようにします。

sudo systemctl restart php7.2-fpm

これで、サーバーに必要なPHP拡張機能がすべてインストールされました。

[[step-3 -—- configuring-nginx]] ==ステップ3—Nginxの構成

次に、Nginxサーバーブロックファイルにいくつかのマイナーな調整を行います。 前提条件のチュートリアルに基づいて、サーバーのドメイン名またはIPアドレスに応答し、TLS / SSL証明書で保護されるように構成された/etc/nginx/sites-available/ディレクトリにサイトの構成ファイルが必要です。 ここでは例として/etc/apache2/sites-available/wordpressを使用しますが、必要に応じて構成ファイルへのパスを置き換える必要があります。

さらに、WordPressインストールのルートディレクトリとして/var/www/wordpressを使用します。 独自の構成で指定されたWebルートを使用する必要があります。

[.note]#Note:/etc/nginx/sites-available/defaultのデフォルト構成を使用している可能性があります(Webルートとして/var/www/htmlを使用)。 これは、このサーバーで1つのWebサイトのみをホストする場合に使用できます。 そうでない場合は、必要な構成を論理チャンクに分割することをお勧めします。サイトごとに1つのファイルです。

開始するには、sudo権限でサイトのサーバーブロックファイルを開きます。

sudo nano /etc/nginx/sites-available/wordpress

メインのserverブロック内に、いくつかのlocationブロックを追加する必要があります。

/favicon.ico/robots.txtへのリクエストに対して完全に一致するロケーションブロックを作成することから始めます。どちらもリクエストをログに記録したくありません。

正規表現の場所を使用して、静的ファイルの要求と一致させます。 これらのリクエストのロギングを再びオフにし、これらのリクエストは通常​​、処理するのに高価なリソースであるため、高度にキャッシュ可能としてマークします。 この静的ファイルリストを調整して、サイトで使用できる他のファイル拡張子を含めることができます。

/etc/nginx/sites-available/wordpress

server {
    . . .

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

既存のlocation /ブロック内で、try_filesリストを調整して、デフォルトオプションとして404エラーを返す代わりに、要求引数を使用して制御がindex.phpファイルに渡されるようにする必要があります。 。

これは次のようになります。

/etc/nginx/sites-available/wordpress

server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

終了したら、ファイルを保存して閉じます。

次のように入力して、構文エラーの構成を確認できます。

sudo nginx -t

エラーが報告されていない場合は、次を入力してNginxをリロードします。

sudo systemctl reload nginx

次に、WordPress自体をダウンロードして設定します。

[[step-4 -—- downloading-wordpress]] ==ステップ4—WordPressのダウンロード

サーバーソフトウェアが構成されたので、WordPressをダウンロードしてセットアップできます。 特にセキュリティ上の理由から、サイトからWordPressの最新バージョンを入手することを常にお勧めします。

書き込み可能なディレクトリに移動し、次のように入力して圧縮リリースをダウンロードします。

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz

圧縮ファイルを解凍して、WordPressディレクトリ構造を作成します。

tar xzvf latest.tar.gz

これらのファイルをドキュメントルートに一時的に移動します。 それを行う前に、サンプルの設定ファイルを、WordPressが実際に読み込むファイル名にコピーできます。

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

これで、ディレクトリの内容全体をドキュメントルートにコピーできます。 -aフラグを使用して、権限が維持されていることを確認しています。 ソースディレクトリの最後にドットを使用して、隠しファイルを含むディレクトリ内のすべてをコピーする必要があることを示しています。

sudo cp -a /tmp/wordpress/. /var/www/wordpress

ファイルが配置されたので、所有権をwww-dataユーザーとグループに割り当てます。 これは、Nginxを実行するユーザーとグループです。Nginxは、Webサイトにサービスを提供して自動更新を実行するために、WordPressファイルを読み書きできる必要があります。

sudo chown -R www-data:www-data /var/www/wordpress

現在、ファイルはサーバーのドキュメントルートにあり、正しい所有権を持っていますが、さらに設定を完了する必要があります。

[[step-5 -—- setting-up-the-wordpress-configuration-file]] ==ステップ5—WordPress構成ファイルの設定

次に、メインのWordPress構成ファイルにいくつかの変更を加える必要があります。

ファイルを開くとき、最初の仕事は、インストールにセキュリティを提供するためにいくつかの秘密鍵を調整することです。 WordPressはこれらの値に対して安全なジェネレーターを提供しているため、独自に適切な値を考え出す必要はありません。 これらは内部でのみ使用されるため、ここで複雑で安全な値を使用しても、使いやすさを損なうことはありません。

WordPressシークレットキージェネレーターから安全な値を取得するには、次のように入力します。

curl -s https://api.wordpress.org/secret-key/1.1/salt/

次のような一意の値が返されます。

[.warning]#Warning:毎回一意の値を要求することが重要です。 NOTは以下に示す値をコピーしますか!

Outputdefine('AUTH_KEY',         '1jl/vqfs

これらは、構成ファイルに直接貼り付けて安全なキーを設定できる構成行です。 今受け取った出力をコピーします。

次に、WordPress構成ファイルを開きます。

sudo nano /var/www/wordpress/wp-config.php

それらの設定のダミー値を含むセクションを見つけます。 これは次のようになります。

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

. . .

これらの行を削除し、コマンドラインからコピーした値を貼り付けます。

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

次に、ファイルの先頭にあるデータベース接続設定の一部を変更する必要があります。 MySQL内で設定したデータベース名、データベースユーザー、および関連するパスワードを調整する必要があります。

他に必要な変更は、WordPressがファイルシステムへの書き込みに使用するメソッドを設定することです。 Webサーバーに必要な場所に書き込む許可を与えたため、ファイルシステムメソッドを明示的に「direct」に設定できます。 現在の設定でこれを設定しないと、WordPressが何らかのアクションを実行するときにFTPクレデンシャルを要求する結果になります。 この設定は、データベース接続設定の下、またはファイル内の他の場所に追加できます。

/var/www/wordpress/wp-config.php

. . .

define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

. . .

define('FS_METHOD', 'direct');

完了したら、ファイルを保存して閉じます。

[[step-6 -—- completing-the-installation-through-the-web-interface]] ==ステップ6—Webインターフェイスを介したインストールの完了

サーバーの構成が完了したので、Webインターフェースからインストールを完了できます。

Webブラウザーで、サーバーのドメイン名またはパブリックIPアドレスに移動します。

http://server_domain_or_IP

使用する言語を選択します。

WordPress language selection

次に、メインのセットアップページが表示されます。

WordPressサイトの名前を選択し、ユーザー名を選択します(セキュリティ上の理由から「admin」などを選択しないことをお勧めします)。 強力なパスワードが自動的に生成されます。 このパスワードを保存するか、別の強力なパスワードを選択してください。

メールアドレスを入力し、検索エンジンがサイトのインデックスを作成しないようにするかどうかを選択します。

WordPress setup installation

先にクリックすると、ログインを促すページが表示されます:

WordPress login prompt

ログインすると、WordPress管理ダッシュボードが表示されます:

WordPress login prompt

結論

WordPressがインストールされ、使用できる状態になっているはずです! いくつかの一般的な次のステップは、投稿のパーマリンク設定を選択するか(Settings > Permalinksにあります)、または新しいテーマを選択することです(Appearance > Themesにあります)。 WordPressを初めて使用する場合は、インターフェースを少し調べて、新しいCMSに慣れてください。

Related