WordPress-秘密鍵を設定する

非公開ファイルを作りそこに設定する

1. 公開ディレクトリと非公開ディレクトリ

レンタルサーバー(Xserver など)では以下のような構造になっていることが多いです:

public_html や htdocs が公開フォルダ
その 一つ上の階層 は Web から直接アクセスできないので安全

2. 秘密ファイルの作成

例えば /home/username/secret-config.php を作成して:

ここでdefineしたトークンなどは変数のように使えます。
公開したくないものはdefineして使いましょう。

3. WordPress 側で読み込む

APIを叩くPHPファイル(例:my-api.php)から:

require のところのファイルパスは公開されてしまうので
require_once(ABSPATH . ‘../secret-config.php’);
プラグインフォルダからのパスの例ですが、このようにしておくと安心。

4. 利点

  • secret-config.php 自体はWebからアクセス不可
  • public_html 以下のコードが流出しても、キーは含まれない
  • 他のプロジェクトでも同じ秘密ファイルを require すれば使い回せる

5. 注意点

  • ファイルパス /home/username/secret-config.php はサーバー環境で異なります
    → Xserverなら「サーバーパネル → サイトパス確認」でフルパスを確認できます
  • パーミッションは 600 や 640 にしておくとさらに安心

🔑 パーミッションについて

パーミッションとは「ファイルやフォルダを誰が読めるか・書けるか・実行できるか」を数字で表したものです。

  • 600 → 所有者だけが読み書きできる
  • 640 → 所有者は読み書き可、同じグループは読み取り可、それ以外はアクセス不可
  • 644 → 所有者は読み書き可、それ以外は読み取りのみ可(公開ファイルに多い)
  • 755 → ディレクトリに多い設定(所有者が書ける、他は読み取りと実行可)

👉 秘密情報ファイル(例:secret-config.php)は 600 or 640 が理想です。
サーバーのPHP実行ユーザーが所有者グループに含まれていれば、WordPressから読み込み可能です。

✅ まとめ

  • 秘密ファイルは公開ディレクトリの外に置く
  • パーミッションは600〜640 で制限
  • プラグインやテーマから require して使う
  • REST API を作ってアプリに返せばセキュリティも保てる
  • これを使ってメールを出すコード等で自分のアドレスをdefineして使うと安心

wp-config.phpに定義する

WordPress の設定ファイルは公開ディレクトリの直下にありますが、外部から直接アクセスはできない仕組みになっています。

wp-config.php に書く場所

WordPressの wp-config.php の場合は、
他の define(...) が並んでいるあたりに書いて問題ありません(順番は関係なし)。

例:

使うときはPHPコード内で:

※ ただし注意点として:

  • /* That's all, stop editing! Happy blogging. */ の「上」に書くこと
  • これより下に書くと読み込まれないことがあります

.htaccess + 環境変数を使う(Xserverでも可能)

サーバー設定で環境変数に仕込んでおいて、PHPから読み取ります。

1. .htaccess に SetEnv を書く場所

基本的には <IfModule mod_rewrite.c> の上 
SetEnv は mod_rewrite とは関係ないディレクティブなので、ブロックの外に書くのが正解です。)

例:

PHPで:

一番安全らしいですがサーバー設定なのでミスると痛いです。

コメント

タイトルとURLをコピーしました