前書き

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

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

前提条件

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

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

  • *サーバーに `+ sudo `ユーザーを作成します*: ` sudo `権限を持つ非ルートユーザーを使用して、このガイドの手順を完了します。 https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04[Ubuntu 16.04初期サーバーセットアップガイド]に従って、「 sudo +」権限を持つユーザーを作成できます。

  • * LEMPスタックのインストール*:WordPressが正しく機能するには、Webサーバー、データベース、およびPHPが必要です。 LEMPスタック(Linux、Nginx、MySQL、およびPHP)をセットアップすると、これらの要件がすべて満たされます。 https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 [このガイド]に従って、このソフトウェアをインストールおよび構成してください。 。

  • * SSLでサイトを保護*:WordPressは動的コンテンツを提供し、ユーザーの認証と承認を処理します。 TLS / SSLは、接続を安全にするためにサイトからのトラフィックを暗号化できる技術です。 SSLを設定する方法は、サイトのドメイン名があるかどうかによって異なります。

  • *ドメイン名を持っている場合…*サイトを保護する最も簡単な方法は、無料の信頼できる証明書を提供するLet’s Encryptを使用することです。 Nginxの暗号化ガイドに従って設定してください。 。

  • *ドメインがない場合…*この構成をテストまたは個人的な使用のために使用している場合は、代わりに自己署名証明書を使用できます。 これにより、同じタイプの暗号化が提供されますが、ドメイン検証は行われません。 https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-16-04 [自己署名SSLガイドNginx]をセットアップします。

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

ステップ1:WordPress用のMySQLデータベースとユーザーを作成する

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

開始するには、次のコマンドを発行して、MySQLルート(管理)アカウントにログインします。

mysql -u root -p

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

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

CREATE DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Note

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

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

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

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

FLUSH PRIVILEGES;

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

EXIT;

ステップ2:Nginxの構成を調整してWordPressを正しく処理する

次に、Nginxサーバーブロックファイルにいくつかのマイナーな調整を行います。

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

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

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

+ / favicon.ico`と + / robots.txt or`へのリクエストに対して完全に一致するロケーションブロックを作成することから始めます。これらは両方ともリクエストをログに記録しません。

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

/ etc / nginx / sites-available / default

server {
   . . .







   . . .
}

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

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

/ etc / nginx / sites-available / default

server {
   . . .
   location / {
       try_files $uri $uri/ =404;

   }
   . . .
}

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

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

sudo nginx -t

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

sudo systemctl reload nginx

ステップ3:追加のPHP拡張機能をインストールする

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

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

sudo apt-get update
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

Note

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

sudo systemctl restart php7.0-fpm

ステップ4:WordPressをダウンロードする

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

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

cd /tmp
curl -O 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

`+ upgrade of`ディレクトリを作成することもできます。これにより、ソフトウェアの更新後にWordPressが独自にこれを実行しようとしたときに、権限の問題が発生しなくなります。

mkdir /tmp/wordpress/wp-content/upgrade

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

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

ステップ5:WordPressディレクトリを構成する

WebベースのWordPressセットアップを行う前に、WordPressディレクトリ内のいくつかの項目を調整する必要があります。

所有権と許可の調整

私たちが成し遂げなければならない大きなことの一つは、妥当なファイル許可と所有権を設定することです。 通常のユーザーとしてこれらのファイルに書き込むことができる必要があり、Webサーバーが正しく機能するために特定のファイルとディレクトリにアクセスして調整できる必要があります。

まず、ドキュメントルート内のすべてのファイルの所有権をユーザー名に割り当てます。 このガイドではユーザー名として「+ sammy 」を使用しますが、「 sudo」ユーザーが呼び出されるものに一致するようにこれを変更する必要があります。 グループの所有権を `+ www-data`グループに割り当てます:

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

次に、ドキュメントルート内の各ディレクトリに `+ setgid `ビットを設定します。 これにより、これらのディレクトリ内に作成された新しいファイルは、ユーザーのプライマリグループを作成する代わりに、親ディレクトリのグループ(「 www-data +」に設定しただけ)を継承します。 これにより、コマンドラインのディレクトリにファイルを作成するたびに、Webサーバーのグループ所有権が維持されます。

次のように入力して、WordPressインストールのすべてのディレクトリに「+ setuid」ビットを設定できます。

sudo find /var/www/html -type d -exec chmod g+s {} \;

他にも細かく調整できる権限がいくつかあります。 まず、グループに `+ wp-content +`ディレクトリへの書き込みアクセス権を付与して、ウェブインターフェースがテーマとプラグインを変更できるようにします。

sudo chmod g+w /var/www/html/wp-content

このプロセスの一環として、次の2つのディレクトリ内のすべてのコンテンツへの書き込みアクセス権をWebサーバーに付与します。

sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins

これは、最初から適切な許可セットに設定する必要があります。 一部のプラグインおよび手順では、追加の調整が必要になる場合があります。

WordPress構成ファイルのセットアップ

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

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

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

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

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

警告

Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9  c_j{iwqD^<+c9.k<[email protected]');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X  {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF  2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+  #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf   07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY  C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3  t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7  1% ^qUswWgn+6&xqHN&%');

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

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

nano /var/www/html/wp-config.php

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

/var/www/html/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/html/wp-config.php

. . .

define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

. . .

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

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

この設定は、データベース接続設定の下、またはファイル内の他の場所に追加できます。

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

. . .

define('DB_NAME', '');

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

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

. . .

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

ステップ6:Webインターフェースを介したインストールの完了

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

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

http://

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

image:https://assets.digitalocean.com/articles/wordpress_lemp_1604/language_selection.png [WordPress言語選択]

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

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

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

image:https://assets.digitalocean.com/articles/wordpress_lemp_1604/setup_installation.png [WordPressセットアップインストール]

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

image:https://assets.digitalocean.com/articles/wordpress_lemp_1604/login_prompt.png [WordPressログインプロンプト]

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

image:https://assets.digitalocean.com/articles/wordpress_lemp_1604/admin_screen.png [WordPressログインプロンプト]

WordPressのアップグレード

WordPressのアップグレードが利用可能になると、現在の権限のあるインターフェースからアップグレードをインストールできなくなります。

ここで選択したアクセス許可は、アップグレードとアップグレードの99%の間、セキュリティと使いやすさのバランスをとることを目的としています。 ただし、ソフトウェアが更新を自動的に適用するには制限が少なすぎます。

更新が利用可能になったら、 `+ sudo +`ユーザーとしてサーバーに再度ログインします。 一時的にWebサーバープロセスにドキュメントルート全体へのアクセスを許可します。

sudo chown -R www-data /var/www/html

次に、WordPress管理パネルに戻り、更新を適用します。

終了したら、セキュリティのためにアクセス許可を再度ロックダウンします。

sudo chown -R  /var/www/html

これは、WordPress自体にアップグレードを適用する場合にのみ必要です。

結論

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