scroll

www.solepro.jp
www.solepro.jp

マーケティング視点で利益を創出するECサイト制作・伴走支援 | ソレプロ

SOLEPRO

2020-01-24

CPIサーバーでWordPressをサブディレクトリにインストールして運用する方法<セキュリティ対策にも>

サブディレクトリ (例: https://solepro.jp/wordpress/) にインストールしたWordPressをルートディレクトリ (例: https://solepro.jp/) で表示するという設定をCPIサーバーでさせて頂いたのですがハマりまくったので覚書。

「403 Forbidden」エラーや、投稿の保存や下書き保存が保存中画面から終わらない、切り替わらないといった症状の解決方法も。

なぜサブディレクトリなのか。

ワードプレスのファイルをドメイン直下(ルートディレクトリ)に設置してあると、ハッカーからすればファイルの格納場所を探さずに攻撃ができます。
ドメイン直下にファイルが設置してあるサイトは「私のサイトはセキュリティ対策が出来てません^^」と言っているようなもの。
セキュリティ対策のためにもサブディレクトリにファイルを設置することをおすすめしています。

また、サブディレクトリに設置することで、FTPで接続した時にファイルが散らかって見えてたのがスッキリと整理できるのも利点ですね。 サブディレクトリの名前もwordpressやwpといった憶測しやすい名前を避けて探りにくい名前にしておきましょう。

本題。
CPIサーバーでWordPressをサブディレクトリに設置する方法。

1.WordPressを任意のディレクトリ(下層フォルダ)にインストールする。

インストール方法はこちらのウェブライターさんの記事がわかりやすいです。

https://www.cpi.ad.jp/column/column05/

2.WordPress管理画面でサイトのURLを変更。

管理画面>設定>一般 箇所にてサイトアドレスにルートのURLを記述し「変更を保存」をクリックします。

この時点で公開ページを確認するとサイトが表示されなくなっていますが、全ての設定が完了すれば表示されますので気にせず次に進みましょう。

3..htaccessとindex.phpをダウンロードする。

WordPressをインストールした階層にある .htaccess と index.php ファイルをダウンロードします。 アップされているファイルは編集や削除をせずにそのまま残しておいてください。

4.ダウンロードしたindex.phpを編集する。

index.phpを開き以下の箇所を変更します。

[sourcecode language=”plain”]
require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );
[/sourcecode]

と記述してあるところをディレクトリ階層に変更します。

[sourcecode language=”plain”]
require( dirname( __FILE__ ) . ‘/wordpress/wp-blog-header.php’ );
[/sourcecode]

5.ダウンロードした.htaccessファイルを編集する。

.htaccessファイルを開き以下の3箇所を変更します。

(CPIサーバーの場合の設定方法です。サーバーによって記述内容が違いますのでサーバーに合わせた設定をしてください。)

※注 .htaccessファイルは不可視ファイルですのでパソコン側で不可視ファイルを表示できるように設定しておかないと表示されません。 「htaccessファイル 表示」等でググってみてください。

↓修正前↓

[sourcecode language=”plain”]
AddHandler x-httpd-php73 .php
suPHP_ConfigPath /home/ディレクトリ名/html/wordpress 【※変更箇所】
<FilesMatch "^(\.htaccess|\.htpasswd|php\.ini|.*\.sql|.*\.log|.*\.cron|.*\.inc|.*\.phps|.*\.yml)$">
Deny from all
</FilesMatch>
Options +SymLinksIfOwnerMatch

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/ 【※変更箇所】
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L] 【※変更箇所】
</IfModule>

# END WordPress
[/sourcecode]

↓修正後↓

[sourcecode language=”plain”]
AddHandler x-httpd-php73 .php
suPHP_ConfigPath /home/ディレクトリ名/html/
<FilesMatch "^(\.htaccess|\.htpasswd|php\.ini|.*\.sql|.*\.log|.*\.cron|.*\.inc|.*\.phps|.*\.yml)$">
Deny from all
</FilesMatch>
Options +SymLinksIfOwnerMatch

# BEGIN WordPress
# `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
</IfModule>

# END WordPress
[/sourcecode]

上記の3箇所を変更してください。 CPIサーバーはPHPの動作場所をルートに変更する必要があるみたいです。

こちらを設定しておかないと、403エラーや、投稿や固定ページの追加時に公開ボタンを押しても更新中の画面が終わらないというフリーズ状態になってしまいます。

6..htaccessとindex.phpをルートディレクトリにアップロードする。

先ほどダウンロードした階層へのアップロードはエラーの原因となるので絶対にしないでください。 必ず、ドメイン直下(ルートディレクトリ)へアップロードしてください。

7.パーマリンク更新、ログアウト・ログイン

最後にデータベースを最新の状態に更新するために 設定>パーマリンク設定 箇所にて何も変更せずに、「変更を保存」をクリックしてください。 こちらのボタンを押すことでデータベースと通信しデータベースが最新の状態に更新されます。

 

更新が完了した段階で、一度ログアウトし、再ログインしてください。

8.確認

以上で作業完了です。ルートドメインにアクセスして表示されているか確認してみてください。 私は最後のログアウト作業をせず、投稿の保存中が終わらないという症状に丸1日悩まされました。 ふとログアウトしてみたら改善されたので、最後のログアウトログイン作業を忘れずに。

 

 

 

 

 

久しぶりのブログが備考録となってしまいました。
今日の神戸は1月というのに春みたいにポカポカ陽気です。最近は神戸の地下街を探索するのにハマっています。
一緒に探索してくれる地下好きさん募集中です。では。

いちかわ はるひで

writer

いちかわ はるひで

代表取締役社長

カテゴリー : 制作・運営のこと

新着記事