どもです。
社内で共有したいと言われたので、今回はWordPressの超初心者向けの記事を書きます。
こんな感じで、WordPressのインストールディレクトリがルート直下ではない場合に、WordPressをドメイン直下のURLで動かすためのお話です。
①管理画面から
管理画面上で設定すべき事項は2つです。
ひとつは、「設定」>「一般」から、「サイトアドレス」を変更すること。
この「サイトアドレス」の内容をルート直下(WordPressのトップページを置きたいディレクトリ)に変更し、保存します。
次に、「設定」>「パーマリンク設定」から「共通設定」を「デフォルト」以外にします。
項目はいくつかありますが、デフォルト以外なら何でも良いです。
何故デフォルト以外なのかと言えば、デフォルト以外の設定で保存すると、「.htaccess」というファイルが自動的に生成されるから。
この「.htaccess」がサイトアドレスを変更するのに必須のアイテムになります。
WordPress手動でインストールした場合や、サーバーの設定によっては、保存すると、
「.htaccess を更新する必要があります。」
というメッセージが表示されることがあります。
これは、「.htaccess」を自動で生成できませんでした、という意味ですので、「.htaccess」を手動で設置しなければなりません。
②FTPから
管理画面から設定しただけでは、404エラーや403エラーが表示されます。
この解決法についてです。
404エラーが表示された場合。
これは最もシンプルな理由で、「.htaccessかindex.phpが存在しない」というものです。
WordPressの「サイトアドレス」で設置したディレクトリに、「.htaccess」と「index.php」を置かなくてはなりません。
「.htaccess」を自動的に設置できなかった場合、以下の内容を書いた「.htaccess」というファイルを用意します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
拡張子が「.htaccess」でファイル名は無しです。
PCの設定によっては、ファイル名のない拡張子だけのファイルは作成できないので、その場合は「.htaccess.txt」などのテキストファイルとして作成してFTPソフトでアップロード、アップロード先のサーバーでファイル名を変更して「.htaccess」を作ります。
これを設置したら、今度はindex.phpを設置します。
index.phpはWordPressをインストールしたディレクトリに入っていますので、一度ダウンロードして開きます。
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
この行を、
require(dirname( __FILE__ ) . '/WordPressのディレクトリ名/wp-blog-header.php');
あるいは、
require($_SERVER['DOCUMENT_ROOT'] . '/WordPressのディレクトリ名/wp-blog-header.php');
に変更します。
includeやrequireのパスは、フルパスでなければならないので、フルパスを取得するPHPタグを使います。
dirname( __FILE__ )は「現在開いているファイルの位置」を指します。
$_SERVER['DOCUMENT_ROOT']は「ルートディレクトリの位置」を指します。
どっちを使っても良いです。
肝心なのは、index.phpを開くとWordPressのディレクトリにあるwp-blog-header.phpにアクセスできるかどうかです。
403エラーの場合。
403エラーの場合、「.htaccess」にもう一文を追加する必要があります。
Options +FollowSymLinks
「シンボリックファイルを認識するかどうかの設定」ですが、シンボリックファイルとは…の説明は置いといて、取り敢えず403エラーが表示されたら「Options +FollowSymLinks」を書き加えるぞという認識で良いかと思います。
サーバーの種類・設定によっては、この記述を追加で行う必要がある感じです。
サーバーによってはPHPのバージョンを指定する必要性。
また、複数のPHPを持つサーバーの場合、PHPバージョンを指定しなければならないこともあります。
いわゆるCPIサーバーなどですね。
この場合は「このPHPを拡張子.phpのファイルで動かす」という指定をする必要がありますので、
AddHandler x-httpd-php5516 .php
5516の部分は、お使いのサーバーのPHPバージョンに合わせる感じです。