今どき自宅サーバなんて流行らない!という向きも多いかと思いますけれども、やはり自分の腕次第で如何様にもセットアップできるという自鯖の柔軟性・拡張性は捨てたものではないと思っています。また、近年は安いコストで高品質な回線を引くことができますから、自宅のほかに例えば実家とか別荘にも省電力サーバを置き、データをセルフ分散バックアップさせることも容易です。
実際に私は2か所のサーバを同期させて運用中ですが、今回はそのサーバの上でWordPressをゴリゴリインストールする方法について自分向けメモの意味も込めて記録しておこうと思う次第。
Apacheとmysqlのインストール
昔は何でもかんでもソース(tar.gz)から展開してconfigure、make、make installをやっておりましたが、流石にもう十分だろうということでpkgのお世話になっております。
なんて感じでやればOK。但し、これだけではWordPressは動きませんので、適宜php74-mysqliだとか色々必要です。
ちなみに現在稼働している状態のpkg info は次の通りです。
/etc/rc.confは次のような感じ。
Apacheの設定
Apacheは、phpが使えるように普通に設定すればOK。バーチャルホストにするなら/usr/local/etc/apache24/extra/httpd-vhosts.conf を編集する、みたいな感じで普通にやればおっけー。letsencryptでhttps化しているとかあるのであれば、それに合わせてSSLの設定をすればおおけー。
お約束ですがindex.phpが正常に扱われるように↓の設定とかも。
DNSの設定
こちらも、必要に応じて設定すればおk。
私の場合は、kemanai.jpとannex.kemanai.jpという二本建てでやっていますので、それに合わせてアクセスできるようにすればいいってことです。
ディレクトリの設定とwordpressの展開
httpd*.confで設定したとおりにディレクトリを作り、権限を設定して、apacheで設定したweb空間のrootディレクトリにwordpressのtar.gzを展開します。i
まずはhttpdからのアクセス確認
ここまで来たら、ブラウザ経由でwordpressのindex.phpにアクセスでき、初期画面が出るかどうかの確認です。apache内のphpモジュールが正常に動作していないとか、DirectoryIndexの設定出来てないとか、何か問題があればこの段階で正常に初期画面が出てこないはずです。
ここまではそう難しい話じゃないんですが、いよいよ本丸のmysqlの設定などに入りますよ。
MySQLの設定
まずroot権限でmysqlにアクセスします。
rootのままでは余りにアレなので、wordpressからアクセスするユーザを作成します。これは別にシステムアカウントに登録されているユーザ名と一緒である必要はありません。
作成したユーザにパスワードを設定します。もちろん、「P@ssW0rd」は自分で考えた難しいパスワード文字列にするんですよ。
そしたら、wordpressで使用するデータベースを作成します。例の中の「wp_DaTaBaSe」は自分なりになにか捻ったデータベース名にしてください。
次は、このデータベースに対して「'wp_webuser'@'127.0.0.1'」の操作権限を与えます。本当は細かく設定すべきだと思うんですが、面倒なのでフル権限を与えてみるなど。
ここまで来れば、後はWordPressの初期設定画面に上記の設定を与えてやれば動く気がしますが、実はこれでは動きません。散々ハマったのですが、これはMySQL側でユーザ認証の暗号化(SHA2)が行われているのに、WordPress側は暗号化しないで認証を取ろうとしているから、という話のようなのですね。
とやると、ユーザデータベースが出てくると思いますが、
こんな感じで、mysql_native_passwordでパスワードを設定してやればOK。もう一度
とやれば、WordPressからの接続ユーザがmysql_native_password認証になっているのが確認できるはずです。
ここまで設定すれば、あとはWordPressの初期画面から設定が進められるはずです。お疲れさまでした。
アップロードファイルのサイズ変更
デフォルトでは8MBくらいまでしかファイルのアップロードが出来ないはず。この制限を緩和するのは、php.iniの設定にあります。/usr/local/etc/php.iniを編集し、
とかやれば、最大4GBまでのアップロードが可能となります。
こんなもんかな。
以上。