PR

FreeBSD WordPress インストレーション

FreeBSD
記事内に広告が含まれています。

この時は嫁さんと島根県へ出かけました。目的は大きく二つ。出雲大社へのお参りと玉造温泉での豪遊 🙂 実際は質素な車での温泉ツアーでした 🙂 写真は出雲大社の北にある日御碕灯台の道しるべです。私といる時はめったに運転しないのですが、たぶん全行程の 30% くらいは運転してくれたと思います。感謝感謝!

WordPress

さて、今回は何を血迷ったか wordpress を FreeBSD に入れてみようと思います。実はレンタルサーバを借りる前に、最初に入れたアプリケーションが wordpress でした。wordpress はご存じのように WEB サーバ上の PHP アプリケーションで、データは MYSQL データベースに入っています。ですので、インストールするものとしては、apache with mod_php、mysql、php が必要となります。それぞれのバージョンは wordpress が動く環境で最新のものにするのが良いと思いますので、こちらを読んで適当なバージョンを選択します。私の見立てではこのようになります。

  • apache -> apache24 / ほぼ標準的な選択かと思います。
  • mysql -> mariadb106 / mysql の派生版との位置づけらしいですが、mysql と同じ使い勝手でより高速に感じます。当然私見です。
  • php -> php81 / php74 の EOL がまじかなのでこちらを読んで php81 としました。
  • mod_php -> 当然ながら php81 を使うなら mod_php81 となります。

さて、wordpress さんですが、FreeBSD 13.1-REL をインストールして、パッケージから open-vm-tools-nox11 と pdksh を入れただけの素の FreeBSD です 🙂 以前の記事が参考になるかと思います。

家庭内ネットワークへの適合

まず最初は作業がしにくいので、家庭内ネットワークに適応させます。/home や /usr/ports/distfiles を NFS にします。以前の記事でも行っていますので、復習的な感じで見てください。dhcp さんの /etc/exports ファイルを編集します。

まだ NFSv4 は使えるようにしていませんので NFSv3 をそのまま使います。アクセスを許可するマシンに wordpress さんを追加します。

続いて、DNS に wordpress の IPv4 と IPv6 の設定を追加します。こちらが参考になるかと思います。

こちらは順引きファイルです。/etc/exports にマシン名で記述しましたので、DNS の設定で肝心なのは 逆引きです。アドレスからマシン名を解決できるようにしておかないとマウントできません。

当然、IPv6 の逆引きも必要になります。

それぞれのシリアル番号を大きくして、再読み込みさせます。

DNS の順引き、逆引きの動作が確認出来たら mountd に /etc/exports ファイルを再読み込みさせます。そして、エクスポートできているか確認します。

サーバー側が完了したら次は NIS と NFS のクライアント側です。NIS と NFSv3 クライアントとして必要な項目を追加して再起動します。勿論手動で必要なサービスを動かしてもいいのですが、肝心なのは自動でそれらが動くかどうかですので再起動します。そうでないと、会社から電話が週末や夜中にかかってくることになります 🙂 こちらが参考になるかと思います。

NIS のチェックです。どの NIS サーバにバインドしてるか調べます。package さんを使用しています。因みに linux の /etc/yp.conf は書いた上から順番に使われますが、FreeBSD の /etc/rc.conf に書いた場合、リストの一番最後の NIS サーバーが最初に使われます。それが利用できないようになると、その直前に書かれている NIS サーバを使うようになります。

では NFS マウントできるように /home と /usr/ports/distfiles ディレクトリを作ります。

/etc/fstab に /home と /usr/ports/distfiles を書き加えます。

NIS が使えるかどうかを確認します。UID/GID が直接見えているので、NIS は機能していないとわかります。そこで /etc/nsswitch.conf の出番です。

passwd と group の compat を書き換えます。

いいんじゃないでしょうか?

うぅー、コンソールは使いにくかったです 🙂 SSH に関しましてはこちらが参考になると思います。

ポーツの準備

続いて、ポーツツリーを準備します。最初は extract で2回目以降は update でした。こちらが参考になるのではないでしょうか?

時間がかかりますので、コーヒータイム!

エラーなく完了したことを確認したら、一度全てポーツで作り直します。そのために portmaster コマンドをパッケージから入れます。ややこしいですなぁ。。

vmware tools と pdksh しか入れていないので、パッケージ数としてはこれだけ。画面一面に入りきります。これらすべてをソースコードからコンパイルしなおします。

これも時間がかかります。コーヒーお代わり!

戻ってきてみると、エラーなく終了していて、インストールしたポーツの数は 221 個。まぁ、こんなものか。。pkg コマンドの autoremove で実行に必要ないポーツは削除することができますが、アップデートするときにまた入れることになりますので、そのままにしておきます。

WordPress インストール

では、wordpress を入れてみましょう。いくつかの言語から選ぶことができるようですが、私は英語版を入れてみます。

おっと、これは面倒くさい 🙁

いったん中断して全自動でコンパイルできるように /etc/make.conf を調整します。

他のアプリケーションの設定も入っていますが、別記事のネタですので無視してください。 /etc/make.conf は可能な限り全てのマシンで共通に使えるようにしておきたいだけですので。重要なのは ”—–” の上側です。デフォルトのバージョン指定とバッチで行うとの指定です。以前に入れた、”ドキュメントはネット検索で行う”と、”管理は全て CLI で行う”も入っています。

気を取り直して make 一発!

コーヒーがもう一杯飲めました。

データベースは最新の mariadb106 を使用します。当然貧乏構成なので、WEB サーバと DB サーバは同じマシンです 🙂

一番肝心な WEB サービスを入れます。

php モジュールを続いて入れます。

最後に php extension を入れます。

これはオプションですが、phpmyadmin もついでに入れておきます。何をするものかというと、データベース内のデータの更新や確認を行うことができます。でも、SQL 文を使えるのでしたら CLI で SQL 文を直接使いましょう。

これで必要なものは全て入ったことになります。各ソフトウェアから出力されたメッセージは重要なので、目を通しましょう。例えばこれ。phpmyadmin の apache の設定に関してコメントされています。

database configuration

まず最初の設定はデータベースにしましょう。mariadb なのに mysql と同じ変数が使えます。

起動スクリプトを実行します。データベースが空であれば必要な初期設定を行ってくれます。

動いたかな?

wordpress のメッセージに従って、データベースを作ります。データベース名を wordpress にして、ユーザ hogehoge さんをパスワード GeroGero で作ります。そして、データベース wordpress 内の全てのテーブルへのアクセス許可を与えます。SQL 文が苦手と言われる方は phpmyadmin が使えると思います。下のほうにある phpmyadmin の部分を先に実行して、でデータベースとユーザを作ってこちらへ戻ってきていただければ OK かと。。。因みに、私が最初の会社に入ってすぐのころは oracle のベンチマークテストばっかりしていた記憶があります。今でこそどのパソコンも SMP 仕様になっていて、OS も SMP を前提としたものになっています。当時の主流の方式はマスター/スレーブばかりでしたので、SMP こそがデータベースに向いている方式であるということから oracle ( 確か v3 くらいだったかな? ) のチューニングばっかりしていた気がします。以前の記事でもお話ししましたが、爪に火を点すようなリソースの使い方をしていたので、チューニング如何で速さが激変しました。それからすると、今の DB は何にもしなくてもそこそこ速く、便利な世の中になってきたなと感じます。因みにばかりで恐縮なのですが、現在 mysql は oracle がサポートしていたと記憶しています。

php configuration

PHP の初期設定です。/usr/local/etc にある php.ini のサンプル設定をコピーします。当然何かをするときに動かなければこのファイルを見ることになります。ただのテキストファイルなので、vi などで変更します。変更したら apache を再起動して、変更を反映させます。私の記憶に新しい変更は、ブラウザ経由でファイルをアップロードする時にファイルが大きすぎたようで完了しませんでした。このようなときにいじるのがこのファイルとなります。その時はこのような変更を行いました。php.ini の 850 行目辺りに upload_max_filesize = 2M と定義があります。これを 100M くらいにしたのかな。症状に応じていじってみてください。いじりすぎて動かなくなったら php.ini-production をコピーすれば元通りです。

apache configuration

続いて apache です。PHP のアプリなので、index.php があればインデックスファイルとして使えるようにします。加えて、アパッチ内部のモジュールにも使えるようにしておいたほうがよいものがあります。例えば、rewrite モジュールとか。。

こちらも wordpress からのメッセージを参考に作りました。wordpress の URL はこの例だと http://wordpress.home.jf3vqb.net/pokemon/ となります。

これもついでの phpmyadmin の設定ファイルです。wordpress.conf と同じディレクトリに置きます。

因みに、これらのファイルを置くディレクトリは /usr/local/etc/apache24/Includes です。文法エラーが無いようならば /etc/rc.conf をいじって apache が起動するようにしましょう。因みに文法エラーは httpd -t でチェックできます。問題なければ Syntax OK と表示されます。

動作確認

まずは一丁目一番地です。アパッチは大丈夫ですか?

大丈夫なようなので、wordpress の URL にしてみます。

おぉッ!動いたような気がする 🙂

どれどれ、データベースにつながるかな?SQL 文で作った通り入力します。

ん?よく見るエラーです。経験から UNIX ソケットファイルを読む権限がないのだと思われます。

ということで、UNIX ソケットの localhost を TCP/IP の localhost にしてみます。

じゃじゃーん!通信は OK となりましたが、設定ファイルが書けないと宣われました。

どの権限で書こうとしているのかがいまいち不明なので、とりあえず g+w をしてみましょう。

こんな感じ。

同じエラーが出てきたので、ディレクトリのオーナーを www:www にしてみます。

さてさて乞うご期待!

じゃじゃじゃじゃー--ん。OK牧場!

状況を見てみると、www ユーザの権限で素のファイルを書き込んだ模様。そうすると、g-w を実行しても大丈夫と思われる。それとできた wp-config.php にはデータベースの接続情報が書かれているので、せめてモード 0660 としておきましょう。

WordPress Contents

さぁ、あなたはサイトマスターです。サイト名と管理ユーザを作ってください。

私はこのようにしました。

受け付けてくれました。

ログインしてみましょう!

ん???食いしん坊の wordpress さんです。クッキーを受け付けるようにブラウザを設定してくれと言われました。合点承知!

こんな感じ。おッ、ばれた?google chrome を使ってます 🙂

気を取り直して。。。

Yahoo ! じゃなかった、ヤッホー!動いたみたい。

Hello World ってこんな感じだったのね?

phpmyadmin

SQL が手ごわいといわれる向きには phpmyadmin があるじゃないか!使ってみまそ。

php74 ではワーニングは出なかったのですが、php81 だと一杯のワーニングが出力されます。が、問題なく動いています。

ログインしてみまそ!こちらはデータベースのユーザ名とパスワードです。お間違いなきように。

ムッ 🙁 また connect エラー。wordpress と同じく UNIX ソケットのパーミッションと思われます。

設定ファイルがゴチャっとしてますが、config.inc.php.sample ファイルは空っぽなので、config.sample.inc.php ファイルを config.inc.php にコピーします。

で、localhost とあるところを 127.0.0.1 と書き換えます。

で、おもむろに同じユーザ名とパスワードを入れてみると、

つながったようです 。とにかくたくさんのワーニングが出ますが、Ignore All を押すと

何事もなかったかのように表示が普通になります。

とにかく、どこに移動しても大量にメッセージが表示されます。ムシムシ暑い、じゃなく、無視無視。

PHP のソースから作ったので、SQL 文に難があり、PHP のパワーのあるかたはメッセージが出ないように改造してみてはいかがでしょう。


ちょうどゴールデンウィーク中の旅で、最初に泊まったのが鳥取倉吉辺りで、中国道津山から倉吉へ向かう道すがらにあったお店でとてもおいしいお蕎麦をメインにした定食をいただきました。お店のご主人は女性の方でしたが、食べるゴマに詳しい方で、おいしいゴマをまとめて調達されているそうで、話をしているうちに分けていただけることがわかり、ゴマ一袋を分けてもらいました。確かにちょっと香ばしい感じでそれまでに食べたことのあるゴマとは一味違うゴマでした。お店の名前は、「おさんどん 茶木」で、現在も営業されているようです。おいしい料理と一味違う調度品と会話を楽しみたい方は、津山から倉吉に向けて運転しているとおなかがすいたころに突然現れる「こだわり そば」ののぼりを目印に訪ねて見られるのもよいかと思います。近くには他に店はなかったと記憶しているのですぐ見つかると思います。

嫁さんと二人で、今後も無事に過ごすことができるようにお願いしてきました。奥の山が低いので、出雲大社が大きく見えます。元々は高床式の社殿であったという話もあるようです。もっと大きく見えたのであろうと思います。

お参りの後は神社前のスタバでコーヒーをテイクアウト。そしで、ここから少し神社の参道を下る方向に歩くとアイスクリーム屋さんがあり、熱いコーヒーと冷たいアイスを車に持ち込み日御碕灯台の夕日を眺めてから松江市内の宿へと移動。

こちらが日御碕灯台です。残念ながら時間が遅すぎたようで中に入ることはできませんでした。石造りの灯台としては国内で一番高いそうです。

玉造温泉でごちそうが待っている予定なので、松江市内の宿では夕食をお願いしていませんでした。ですので嫁さんと二人で街中をブラブラ散策がてらに夕食の食べれるお店を探していたところ、宍道湖から流れ出る大橋川のすぐわきの小さな料理屋さんがあったのでそちらで夕食をいただくことにしました。お店自体はご家族でされている普通のお店で、閉店間際にもかかわらず料理をいただくことができました。特筆すべきは “のどぐろ” とこのシジミ汁。これまで食べたシジミ汁の中で最高の味でした。プリップリのアサリ位もあるシジミがこれでもかというくらい入っいて、空腹に染み渡るおいしさでした。のどぐろも、旬の時期には少々早い時期でしたが、それでも自宅近くで食べるどのお魚よりもおいしいと感じるくらいおいしかったです。お近くにお越しの際は行く価値ありと思います。お店の名前は「やまいち」です。松江駅から北上して新松江大橋を渡りきったところにありました。

以下広告


コメント