Ubuntu16.04にLEMPを使用してWordPressをインストールする方法
序章
WordPressは、インターネット上で最も人気のあるCMS(コンテンツ管理システム)です。 これにより、PHP処理を使用してMySQLバックエンド上に柔軟なブログやWebサイトを簡単に設定できます。 WordPressは信じられないほど採用されており、Webサイトをすばやく立ち上げて実行するための優れた選択肢です。 セットアップ後、ほとんどすべての管理はWebフロントエンドを介して実行できます。
このガイドでは、Ubuntu 16.04サーバー上のLEMPスタック(Linux、Nginx、MySQL、およびPHP)にWordPressインスタンスをセットアップすることに焦点を当てます。
前提条件
このチュートリアルを完了するには、Ubuntu16.04サーバーにアクセスする必要があります。
このガイドを開始する前に、次のタスクを実行する必要があります。
- サーバー上にsudoユーザーを作成します:このガイドの手順は、root以外のユーザーを使用して完了します。
sudo
特権。 次のユーザーを作成できますsudo
Ubuntu16.04初期サーバーセットアップガイドに従ってください。 - LEMPスタックのインストール:WordPressが正しく機能するには、Webサーバー、データベース、およびPHPが必要です。 LEMPスタック(Linux、Nginx、MySQL、およびPHP)をセットアップすると、これらの要件がすべて満たされます。 このガイドに従って、このソフトウェアをインストールおよび構成します。
- SSLでサイトを保護する:WordPressは動的コンテンツを提供し、ユーザーの認証と承認を処理します。 TLS / SSLは、接続が安全になるようにサイトからのトラフィックを暗号化できるようにするテクノロジーです。 SSLの設定方法は、サイトのドメイン名があるかどうかによって異なります。
セットアップ手順が完了したら、サーバーにログインします。 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;
ノート
すべてのMySQLステートメントはセミコロン(;)で終了する必要があります。 問題が発生した場合は、これが存在することを確認してください。
次に、新しいデータベースを操作するためだけに使用する別のMySQLユーザーアカウントを作成します。 管理とセキュリティの観点から、1つの機能を持つデータベースとアカウントを作成することをお勧めします。 名前を使用します wordpressuser
このガイドでは。 必要に応じて、これを自由に変更してください。
このアカウントを作成し、パスワードを設定して、作成したデータベースへのアクセスを許可します。 これを行うには、次のコマンドを入力します。 ここで、データベースユーザーの強力なパスワードを選択することを忘れないでください。
- GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
これで、データベースとユーザーアカウントができました。それぞれ、WordPress用に特別に作成されています。 MySQLの現在のインスタンスが最近行った変更を認識できるように、特権をフラッシュする必要があります。
- FLUSH PRIVILEGES;
次のように入力してMySQLを終了します。
- EXIT;
ステップ2:WordPressを正しく処理するようにNginxの構成を調整する
次に、Nginxサーバーのブロックファイルにいくつかの小さな調整を加えます。
でデフォルトのサーバーブロックファイルを開きます sudo
開始する特権:
- sudo nano /etc/nginx/sites-available/default
メイン内 server
ブロック、いくつか追加する必要があります location
ブロック。
リクエストに対して完全に一致するロケーションブロックを作成することから始めます /favicon.ico
と /robots.txt
、どちらもリクエストをログに記録したくありません。
静的ファイルのリクエストに一致させるために、正規表現の場所を使用します。 これらのリクエストは通常、提供するのに費用のかかるリソースであるため、これらのリクエストのロギングを再度オフにし、高度にキャッシュ可能としてマークします。 この静的ファイルリストを調整して、サイトで使用できる他のファイル拡張子を含めることができます。
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
リクエスト引数を含むファイル。
これは次のようになります。
server {
. . .
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php$is_args$args;
}
. . .
}
終了したら、ファイルを保存して閉じます。
これで、次のように入力して、構文エラーの構成を確認できます。
- 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
ノート
各WordPressプラグインには、独自の要件セットがあります。 一部の場合、追加のPHPパッケージをインストールする必要があります。 プラグインのドキュメントを確認して、PHPの要件を確認してください。 利用可能な場合は、 apt-get
上に示したように。
拡張機能のインストールが完了したら、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
ディレクトリ。これにより、WordPressは、ソフトウェアの更新後に単独でこれを実行しようとしたときに、アクセス許可の問題が発生しなくなります。
- mkdir /tmp/wordpress/wp-content/upgrade
これで、ディレクトリの内容全体をドキュメントルートにコピーできます。 私たちは使用しています -a
権限が維持されていることを確認するためのフラグ。 ソースディレクトリの最後にドットを使用して、非表示のファイルを含め、ディレクトリ内のすべてをコピーする必要があることを示しています。
- 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サーバーがそのファイルに対するグループ所有権を保持することが保証されます。
設定できます setgid
次のように入力して、WordPressインストールのすべてのディレクトリをビットします。
- sudo find /var/www/html -type d -exec chmod g+s {} \;
調整する他のいくつかのきめ細かい権限があります。 まず、グループに書き込みアクセスを許可します wp-content
Webインターフェイスがテーマとプラグインを変更できるようにするためのディレクトリ:
- sudo chmod g+w /var/www/html/wp-content
このプロセスの一環として、Webサーバーに次の2つのディレクトリ内のすべてのコンテンツへの書き込みアクセスを許可します。
- 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/
次のような一意の値が返されます。
警告
毎回一意の値を要求することが重要です。 以下に示す値をNOTコピーしないでください!
Outputdefine('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
これらは、安全なキーを設定するために構成ファイルに直接貼り付けることができる構成行です。 今受け取った出力をコピーします。
次に、WordPress構成ファイルを開きます。
- nano /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');
. . .
これらの行を削除し、コマンドラインからコピーした値を貼り付けます。
. . .
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クレデンシャルの入力を求める結果になります。
この設定は、データベース接続設定の下、またはファイル内の他の場所に追加できます。
. . .
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% of回のセキュリティと使いやすさのバランスをとることを目的としています。 ただし、ソフトウェアが更新を自動的に適用するには、制限が厳しすぎます。
アップデートが利用可能になったら、サーバーにログインし直します。 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について理解してください。