メインコンテンツに移動

WordPressのセキュリティを高めるインストール設計|SSHで手動構築する方法

WordPressは、レンタルサーバーの「簡単インストール」を使えば、数分で構築できます。

便利な機能なので、初めてWordPressを使う場合は非常に助かります。

ただし、WordPressを長く運用するのであれば、「どうインストールするか」だけでなく、「どのファイルをどこに置くか」まで考えておくことが重要です。

特に意識したいのが、Webから公開されるディレクトリと、設定ファイルなどの重要なファイルを分けることです。

この記事では、XServerを例に、SSHを使ってWordPressを手動でインストールする方法を紹介します。

単に「簡単インストールを使わない」という話ではありません。

WordPressを安全に運用するために、サーバー上のファイル構成をどう考えるかという視点で解説します。

 

「簡単インストール=危険」ではない

最初に、誤解のないようにしておきます。

レンタルサーバーの簡単インストール機能そのものが、危険というわけではありません。

WordPressを手動でインストールしたからといって、それだけでセキュリティが高くなるわけでもありません。

WordPressのセキュリティは、

  • WordPress本体を最新の状態に保つ
  • テーマやプラグインを適切に管理する
  • 管理者アカウントを適切に設定する
  • 強固なパスワードを使用する
  • 不要なプラグインを削除する
  • バックアップを取得する
  • 重要な設定ファイルへのアクセスを制限する

といった複数の対策によって成り立っています。

そのうえで、手動インストールにはサーバー上の構成を自分で決められるというメリットがあります。

これが今回のポイントです。

 

公開ディレクトリと設定ファイルを分けて考える

Webサーバーには、ブラウザからアクセスできる「公開領域」があります。

XServerでは、ドメインに設定された公開ディレクトリがWebサイトのドキュメントルートになります。

ここに置かれたファイルは、Webサーバーから配信されます。

一方、Webから直接アクセスする必要のないファイルまで、すべて公開領域に置く必要はありません。

WordPressで特に重要なのが、

wp-config.php

です。

このファイルにはデータベースへの接続情報などが含まれます。

そのため、WordPressではwp-config.phpをWebルートの1階層上に置く構成も利用できます。

重要なのは、「ファイルを外に出せばWordPressが安全になる」という単純な話ではありません。

Webから公開する必要のないファイルを、公開領域から分離する。

こうした考え方でサーバー構成を設計することが重要です。

 

手動インストールするメリット

手動インストールには、簡単インストールにはないメリットがあります。

 

1. サーバーの構成を自分で把握できる

WordPressがどこにインストールされ、どのデータベースを使用し、どのファイルが公開されているのかを自分で確認できます。

 

2. 不要な構成を作りにくい

自分で必要なファイルだけを配置するため、サーバー上の構成を把握しやすくなります。

 

3. SSHやLinuxの基本を理解できる

WordPressを手動で構築すると、SSH、ディレクトリ、ファイル権限、データベースなど、Webサイト運用に必要なサーバーの基本を学べます。

 

4. 複数サイトを運用するときに設計しやすい

サイトごとのディレクトリやデータベースを自分で管理できるため、複数サイトを運用するときにも構成を考えやすくなります。

ただし、これらは「手動インストールだから自動的にセキュリティが高くなる」という意味ではありません。

手動で構築することで、セキュリティを含めたサーバー構成を自分で管理しやすくなる、ということです。

 

インストールの全体像

今回は、次の流れで構築します。

  1. MySQLデータベースとユーザーを作成する
  2. SSHでWordPressをダウンロードする
  3. WordPressの配置場所を確認する
  4. wp-config.phpを設定する
  5. ブラウザからWordPressの初期設定を行う
  6. インストール後のセキュリティ設定を行う

SSHの使い方については、以下の記事で解説しています。

XServerにSSHで接続する方法

 

STEP 1:データベースを作成する

WordPressでは、記事、ユーザー、設定などの情報をMySQLデータベースに保存します。

まず、WordPress専用のデータベースとユーザーを作成します。

XServerの場合は、サーバーパネルから「MySQL設定」を開きます。

  1. 「MySQLデータベース追加」でデータベースを作成する
  2. 「MySQLユーザー追加」でユーザーを作成する
  3. 作成したユーザーにデータベースへのアクセス権限を設定する

以下の情報を控えておきます。

  • データベース名
  • データベースユーザー名
  • データベースパスワード
  • データベースホスト名

XServerでは環境によってホスト名などが異なる場合があるため、サーバーパネルに表示される情報を使用してください。

 

STEP 2:SSHでWordPressをダウンロードする

SSHでサーバーに接続し、WordPressをダウンロードします。

例えば、作業用ディレクトリを作成します。

mkdir -p ~/wp-example.com cd ~/wp-example.com

次にWordPress日本語版をダウンロードします。

wget https://ja.wordpress.org/latest-ja.tar.gz tar -xzf latest-ja.tar.gz mv wordpress/* . mv wordpress/.[!.]* . 2>/dev/null rmdir wordpress rm latest-ja.tar.gz

配置されたファイルを確認します。

ls

wp-admin、wp-content、wp-includes、index.phpなどが確認できれば、WordPressのファイルが配置されています。

 

STEP 3:wp-config.phpを設定する

WordPressには、データベースへの接続情報などを保存するwp-config.phpがあります。

サンプルファイルをコピーします。

cp wp-config-sample.php wp-config.php

編集します。

nano wp-config.php

以下の項目を、自分の環境に合わせて変更します。

define( 'DB_NAME', 'データベース名' ); define( 'DB_USER', 'データベースユーザー名' ); define( 'DB_PASSWORD', 'データベースパスワード' ); define( 'DB_HOST', 'データベースホスト名' );

データベース情報は、STEP 1で作成したものを使用してください。

 

認証用のセキュリティキーを設定する

WordPressには、認証情報などを保護するためのセキュリティキーがあります。

WordPress公式の生成ページからランダムなキーを取得し、wp-config.phpの該当部分を置き換えます。

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

設定が終わったら保存します。

 

wp-config.phpは公開領域から分離する

ここがセキュリティ上重要なポイントです。

wp-config.phpは、WordPressの構成によってはWebルートの1階層上に移動できます。

例えば、次のような構成です。

~/ ├─ xxxxx.com/ │   └─ public_html/   ← ドキュメントルート変更後は参照されない │                           (バックアップとして残しておく) └─ wp-xxxxx.com/       ← WordPressが動いている場所     ├─ wp-admin/     ├─ wp-content/    ← テーマ・プラグイン・画像はここ     ├─ wp-includes/     ├─ wp-config.php  ← パーミッション600で厳重管理     └── index.php

ただし、実際に利用できる構成はサーバー環境によって異なります。

重要なのは、単にファイルを移動することではなく、Webサーバーが正しくWordPressを実行できる構成になっていることを確認することです。

 

STEP 4:ブラウザからWordPressをセットアップする

ファイルとデータベースの準備ができたら、ブラウザからサイトURLへアクセスします。

WordPressのインストール画面が表示されたら、サイト情報を入力します。

  • サイトのタイトル
  • 管理者ユーザー名
  • 管理者パスワード
  • メールアドレス

管理者ユーザー名には、推測されやすい名前を避けます。

パスワードも、他のサービスと使い回さず、十分に強度のあるものを設定してください。

 

インストール後に設定しておきたいセキュリティ対策

WordPress本体を最新に保つ

WordPressのセキュリティ対策で基本となるのが、WordPress本体を最新の状態に保つことです。

手動インストールをしたからといって、アップデートまで手動で行う必要があるわけではありません。

更新が必要なものを定期的に確認し、WordPress本体、テーマ、プラグインを適切に更新します。

 

不要なテーマやプラグインを削除する

使用していないプラグインやテーマを放置する必要はありません。

不要なものは削除し、使用するものだけを残します。

特に、更新が長期間行われていないプラグインを安易に使い続けないことも重要です。

 

管理画面からのファイル編集を無効にする

WordPressでは、管理画面からテーマやプラグインのファイルを編集できる機能があります。

運用上必要がなければ、この機能を無効にできます。

wp-config.phpに以下を追加します。

define( 'DISALLOW_FILE_EDIT', true );

ただし、サーバー上のファイルを直接編集する運用では、管理方法を事前に決めておく必要があります。

 

バックアップを別の場所にも保存する

バックアップは、サーバー内だけに保存して終わりにしないことが重要です。

サーバーそのものに問題が発生した場合、同じサーバーに保存しているバックアップも利用できなくなる可能性があります。

そのため、別の保存先にもバックアップを保持します。

バックアップについては、復元できるかどうかまで確認しておくことが重要です。

 

サーバー上の構成を理解する

WordPressのセキュリティを考えるとき、管理画面だけを見ていてはいけません。

サーバー上では、次のようなものが関係しています。

  • Web公開ディレクトリ
  • WordPress本体
  • wp-content
  • wp-config.php
  • データベース
  • ファイルのアクセス権限

これらを理解すると、「WordPressをインストールする」という作業が、単にファイルを置くだけの作業ではないことが分かります。

どのファイルを公開し、どの情報を公開しないのか。

ここまで考えてサーバーを設計することが大切です。

 

複数サイトを運用する場合は、さらに設計が重要になる

WordPressを1サイトだけ運用するのであれば、簡単インストールでも大きな問題にならないケースがあります。

しかし、複数のWebサイトを運用するようになると、話が変わります。

サイトごとにWordPress本体を管理するのか。

どこにファイルを置くのか。

データベースをどう分けるのか。

バックアップをどう管理するのか。

アップデートをどう行うのか。

こうした設計を最初に考えておくことで、後からサイトが増えたときの運用負担を減らせます。

WordPressを「サイトを作るためのツール」だけではなく、サーバー上で動くシステムとして考えることが重要です。

 

まとめ

WordPressのセキュリティは、インストール方法だけで決まるものではありません。

「簡単インストールを使わないから安全」という考え方ではなく、

公開するものと、公開しないものを分けて考える。

これが重要です。

今回紹介したポイントをまとめると、次のとおりです。

  1. WordPressのインストール方法だけで安全性を判断しない
  2. Web公開ディレクトリの役割を理解する
  3. wp-config.phpなど重要なファイルの公開範囲を考える
  4. WordPress本体・テーマ・プラグインを最新に保つ
  5. 不要なテーマやプラグインを削除する
  6. 管理画面からのファイル編集を必要に応じて無効化する
  7. サーバーとは別の場所にもバックアップを保存する

手動インストールは、簡単インストールより少し手間がかかります。

しかし、その分だけWordPressがサーバーの上でどのように動いているのかを理解できます。

「WordPressを入れる」だけではなく、「どこに何を置き、何を公開するのか」まで考える。

それが、長期的にWordPressを運用するうえで重要な考え方です。

「WordPressを安全に導入したい」「サーバーの構成から相談したい」という方は、金風株式会社までご相談ください。

レンタルサーバーへのWordPress導入から、サーバー構成、セキュリティ設定、運用までサポートしています。

記事の更新はメルマガでもお届けしています。