WordPressをホームフォルダで動かす方法
この記事では、通常「/var/www/html」等のフォルダで動作するWordpressを、自分のホームディレクトリ「/home/user01」等以下で動作させる方法について解説しています。
公開しているサイトではあまり意味がありませんが、開発時にはホームディレクトリで動作してくれた方が何かと便利です。実際に試されたい方は、こちらの記事等を参考に、WEBサーバー、PHPとデータベースのインストールを行っておいてください。WSL2を想定していますが、一般のサーバーでも設定可能と思われます。
仮想ディレクトリを設定します
Apache2の設定ファイル「/etc/apache2/apache2.conf」を開き、ファイルの一番最後に以下の設定を追加します。WinSCPというFTPソフトをダウンロードして、こちらの設定を行っておくと設定ファイルの修正が楽かもしれません。以下の例では「<ローカルドメイン>/blog」へのアクセスを「/home/user01/blog」に転送する想定で設定しています。ご自身の環境に合わせて適宜修正してください。
Alias /blog /home/user01/blog
<Directory /home/user01/blog/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
以降の設定はユーザー権限で行っていきます。現在のユーザー(user01)のグループに「www-data」ユーザーを追加します。この設定でブラウザからホームディレクトリ(/home/user01/blog)内のファイルにアクセスできる様になります。ユーザー名はご自身の環境に合わせて適宜修正してください。
sudo usermod -a -G user01 www-data
グループが無いというエラーが出た場合は、以下の様に入力してグループを作成してから再度実行してください。
sudo addgroup user01
sudo adduser user01 user01
Apache2を再起動します。
sudo systemctl restart apache2
以下のコマンドを実行して、ホームディレクトリに「blog」フォルダと表示確認用ページを作成します。
cd ~
mkdir blog
echo "OK" > blog/index.html
ブラウザのURL欄に「localhost/blog」と入力して、確認用ページが表示されれば設定完了です。
WordPressをインストールします
こちらの設定もユーザー権限で行います。以下のコマンドを実行して、ホームディレクトリにWordpressをダウンロードして展開します。所有者は特に変更しません。(user01のままにしておきます。)
cd ~
wget https://ja.wordpress.org/latest-ja.tar.gz
tar xvzf latest-ja.tar.gz
WordPressは表示(読み取り)だけでなく書き込みも行うので、以下のコマンドを入力して、所属しているグループに書き込み権限を付与します。この設定を行わないとプラグインやテーマのインストールができない様です。(今回は開発環境の構築のためにこの設定を行っています。公開用のサーバーではこの設定の代わりに、所有者の変更(sudo chown -R www-data:www-data wordpress/)を行ってください。)
sudo chmod -R 775 wordpress/
最初に作成した「blog」フォルダを削除して、展開されたWordpressフォルダ名を「blog」に変更します。
rm -rf blog/
mv wordpress/ blog/
このまま「localhost/blog」と入力すればWordPressをセットアップできますが、サイト名がlocalhostになります。サイト名を変更したい場合は、以前ご紹介したhostsファイルのアクセス権限を修正してから以下の様な文字列をhostsファイルに追加します。IPアドレスをご自身のWSL2に割り当てられたアドレスに変更してください。サイト名はご自由に変更してください。
172.19.88.145 mimura-soft.local
ブラウザで「<設定したサイト名>/blog」と入力するとWordPressのセットアップ画面が表示されますので、デフォルト設定でセットアップを行います。サイト名称等はご自由に入力してください。
セットアップが完了したら、ブラウザのURL欄に「localhost/blog」または「<設定したサイト名>/blog」と入力するとトップページが表示されます。
お手数ですが追加で、Wordpressのインストールフォルダ内にある設定ファイル(wp-config.php)の最後に以下の定義を追加します。この定義を追加しないと、Wordpressやテーマの更新時にFTP接続画面が表示されてしまう様です。(ファイルの所有者を「www-data」にしている場合はこの設定は必要ありません。)
define('FS_METHOD','direct');
以上でWordpressの設定は終了ですが、サブディレクトリ名で転送するため、「/blog」は消せない様です。また、「localhost」と入力するとApacheの初期画面が表示されてしまいますので、「/var/www/html」フォルダ内に「.htaccess」ファイルを作成して以下の設定を書き込んでおくと、「localhost」へのアクセスを「localhost/blog」にリダイレクトしてくれます。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteRule .? /blog/ [R,L]
今回の設定で、すべてのファイルの所有者が自分(user01)になりましたので、ファイル管理(Git)も差分修正(WinMerge)も制限なく実行できる様になりました。
以上です。