前書き
WordPressは、インターネット上で最も人気のあるCMS(コンテンツ管理システム)です。 PHP処理を使用して、MySQLバックエンド上に柔軟なブログとWebサイトを簡単にセットアップできます。 WordPressは信じられないほど採用されており、Webサイトを迅速に立ち上げて運用するのに最適な選択肢です。 セットアップ後、ほとんどすべての管理はWebフロントエンドから実行できます。
このガイドでは、Ubuntu 16.04サーバー上のLAMPスタック(Linux、Apache、MySQL、およびPHP)でWordPressインスタンスをセットアップすることに焦点を当てます。
前提条件
このチュートリアルを完了するには、Ubuntu 16.04サーバーにアクセスする必要があります。
このガイドを開始する前に、次のタスクを実行する必要があります。
-
Create a
sudo
user on your server:このガイドの手順は、sudo
権限を持つroot以外のユーザーを使用して完了します。 Ubuntu 16.04 initial server setup guideに従うことで、sudo
特権を持つユーザーを作成できます。 -
Install a LAMP stack:WordPressが正しく機能するには、Webサーバー、データベース、およびPHPが必要です。 LAMPスタック(Linux、Apache、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 Apacheに従ってください。
-
If you do not have a domain…で、この構成をテストまたは個人的な使用に使用している場合は、代わりに自己署名証明書を使用できます。 これにより、同じタイプの暗号化が提供されますが、ドメイン検証は行われません。 self-signed SSL guide for Apacheに従ってセットアップします。
-
セットアップ手順が完了したら、sudo
ユーザーとしてサーバーにログインし、以下に進みます。
ステップ1:WordPress用のMySQLデータベースとユーザーを作成する
最初のステップは準備です。 WordPressはMySQLを使用して、サイトおよびユーザー情報を管理および保存します。 MySQLはすでにインストールされていますが、WordPressで使用するデータベースとユーザーを作成する必要があります。
開始するには、次のコマンドを発行して、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;
ステップ2:追加のPHP拡張機能をインストールする
LAMPスタックをセットアップするとき、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
[.note]#各WordPressプラグインには独自の要件があります。 追加のPHPパッケージをインストールする必要がある場合があります。 プラグインのドキュメントをチェックして、PHPの要件を確認してください。 利用可能な場合は、上記のようにapt-get
を使用してインストールできます。
#
次のセクションで、これらの新しい拡張機能を活用するためにApacheを再起動します。 ここに戻って追加のプラグインをインストールする場合は、次のように入力して、Apacheを再起動できます。
sudo systemctl restart apache2
手順3:.htaccessの上書きと書き換えを許可するようにApacheの構成を調整する
次に、Apacheの構成を少し調整します。 現在、.htaccess
ファイルの使用は無効になっています。 WordPressおよび多くのWordPressプラグインは、Webサーバーの動作をディレクトリ内で調整するためにこれらのファイルを広範囲に使用します。
さらに、mod_rewrite
を有効にします。これは、WordPressのパーマリンクを正しく機能させるために必要です。
.htaccessオーバーライドを有効にする
プライマリApache設定ファイルを開いて、最初の変更を行います。
sudo nano /etc/apache2/apache2.conf
.htaccess
ファイルを許可するには、ドキュメントルートを指すDirectory
ブロック内にAllowOverride
ディレクティブを設定する必要があります。 ファイルの下部に向かって、次のブロックを追加します。
/etc/apache2/apache2.conf
. . .
AllowOverride All
. . .
終了したら、ファイルを保存して閉じます。
書き換えモジュールを有効にする
次に、mod_rewrite
を有効にして、WordPressのパーマリンク機能を利用できるようにします。
sudo a2enmod rewrite
変更を有効にする
行った変更を実装する前に、構文エラーが発生していないことを確認してください。
sudo apache2ctl configtest
出力には、次のようなメッセージが含まれる場合があります。
OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
一番上の行を抑制したい場合は、サーバーのドメインまたはIPアドレスを指す/etc/apache2/apache2.conf
ファイルにServerName
ディレクティブを追加するだけです。 ただし、これは単なるメッセージであり、サイトの機能には影響しません。 出力にSyntax OK
が含まれている限り、続行する準備ができています。
Apacheを再起動して、変更を実装します。
sudo systemctl restart apache2
ステップ4:WordPressをダウンロードする
サーバーソフトウェアが構成されたので、WordPressをダウンロードしてセットアップできます。 特にセキュリティ上の理由から、サイトからWordPressの最新バージョンを入手することを常にお勧めします。
書き込み可能なディレクトリに移動し、次のように入力して圧縮リリースをダウンロードします。
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
圧縮ファイルを解凍して、WordPressディレクトリ構造を作成します。
tar xzvf latest.tar.gz
これらのファイルをドキュメントルートに一時的に移動します。 その前に、ダミーの.htaccess
ファイルを追加し、そのアクセス許可を設定して、後でWordPressで使用できるようにすることができます。
次のように入力して、ファイルを作成し、アクセス許可を設定します。
touch /tmp/wordpress/.htaccess
chmod 660 /tmp/wordpress/.htaccess
また、サンプルの設定ファイルを、WordPressが実際に読み込むファイル名にコピーします。
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
upgrade
ディレクトリを作成して、ソフトウェアの更新後にWordPressが単独でこれを実行しようとしたときに、アクセス許可の問題が発生しないようにすることもできます。
mkdir /tmp/wordpress/wp-content/upgrade
これで、ディレクトリの内容全体をドキュメントルートにコピーできます。 -a
フラグを使用して、権限が維持されていることを確認しています。 ソースディレクトリの最後にドットを使用して、隠しファイル(作成した.htaccess
ファイルなど)を含む、ディレクトリ内のすべてをコピーする必要があることを示しています。
sudo cp -a /tmp/wordpress/. /var/www/html
ステップ5:WordPressディレクトリを構成する
WebベースのWordPressセットアップを行う前に、WordPressディレクトリ内のいくつかの項目を調整する必要があります。
所有権と許可の調整
達成する必要がある大きなことの1つは、適切なファイルのアクセス許可と所有権を設定することです。 通常のユーザーとしてこれらのファイルに書き込むことができる必要があり、Webサーバーが正しく機能するために特定のファイルとディレクトリにアクセスして調整できる必要があります。
まず、ドキュメントルート内のすべてのファイルの所有権をユーザー名に割り当てます。 このガイドではユーザー名としてsammy
を使用しますが、sudo
ユーザーが呼び出されるものと一致するようにこれを変更する必要があります。 グループの所有権をwww-data
グループに割り当てます。
sudo chown -R sammy:www-data /var/www/html
次に、ドキュメントルート内の各ディレクトリにsetgid
ビットを設定します。 これにより、これらのディレクトリ内に作成された新しいファイルは、作成中のユーザーのプライマリグループではなく、親ディレクトリのグループ(www-data
に設定)を継承します。 これにより、コマンドラインのディレクトリにファイルを作成するたびに、Webサーバーのグループ所有権が維持されます。
次のように入力して、WordPressインストールのすべてのディレクトリにsetgid
ビットを設定できます。
sudo find /var/www/html -type d -exec chmod g+s {} \;
他にも細かな権限がいくつか調整されます。 まず、グループにwp-content
ディレクトリへの書き込みアクセス権を付与して、Webインターフェイスでテーマとプラグインを変更できるようにします。
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/
次のような一意の値が返されます。
[.warning]#Warning!毎回一意の値を要求することが重要です。 NOTは以下に示す値をコピーしますか!
#
Outputdefine('AUTH_KEY', '1jl/vqfs
これらは、構成ファイルに直接貼り付けて安全なキーを設定できる構成行です。 今受け取った出力をコピーします。
次に、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', '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/html/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');
完了したら、ファイルを保存して閉じます。
ステップ6:Webインターフェースを介したインストールの完了
サーバーの構成が完了したので、Webインターフェースからインストールを完了できます。
Webブラウザーで、サーバーのドメイン名またはパブリックIPアドレスに移動します。
http://server_domain_or_IP
使用する言語を選択します。
次に、メインのセットアップページが表示されます。
WordPressサイトの名前を選択し、ユーザー名を選択します(セキュリティ上の理由から「admin」などを選択しないことをお勧めします)。 強力なパスワードが自動的に生成されます。 このパスワードを保存するか、別の強力なパスワードを選択してください。
メールアドレスを入力し、検索エンジンがサイトのインデックスを作成しないようにするかどうかを選択します。
先にクリックすると、ログインを促すページが表示されます:
ログインすると、WordPress管理ダッシュボードが表示されます:
WordPressのアップグレード
WordPressのアップグレードが利用可能になると、現在の権限のあるインターフェースからアップグレードをインストールできなくなります。
ここで選択したアクセス許可は、アップグレードとアップグレードの99%の間、セキュリティと使いやすさのバランスをとることを目的としています。 ただし、ソフトウェアが更新を自動的に適用するには制限が少なすぎます。
更新が利用可能になったら、sudo
ユーザーとしてサーバーに再度ログインします。 一時的にWebサーバープロセスにドキュメントルート全体へのアクセスを許可します。
sudo chown -R www-data /var/www/html
次に、WordPress管理パネルに戻り、更新を適用します。
終了したら、セキュリティのためにアクセス許可を再度ロックダウンします。
sudo chown -R sammy /var/www/html
これは、WordPress自体にアップグレードを適用する場合にのみ必要です。
結論
WordPressがインストールされ、使用できる状態になっているはずです! いくつかの一般的な次のステップは、投稿のパーマリンク設定を選択するか(Settings > Permalinks
にあります)、または新しいテーマを選択することです(Appearance > Themes
にあります)。 WordPressを初めて使用する場合は、インターフェースを少し調べて、新しいCMSに慣れてください。