SSブログ

OpenBSDのapache2で、FastCGI(PHP)を動かす (OpenBSD 6.5R、2019/09/09) [OpenBSD]

タイトルを見て分かるとおり、泥沼化してきました(笑)

FreeBSD 12.0Rで動かしたJoomla!があまり期待通りではなかったので、再びWordPressを導入してみようかという気分になりました。が、ここで問題が。
最新のWordPressはphp7.3を要求しますが、zabbixの依存関係がphp7.2となっているため、無理にphp7.3化してしまうと環境が崩れてしまうのです。まあ、jailを使うとか、もう一つFreeBSDの仮想環境を作るとかやり方はあるのですが、どうせなら勉強も兼ねてOpenBSDでWordPressを動かしてみようと思い至った訳です。

さてさて、OpenBSDは堅物でもっと使いにくいのかと思っていたら、意外と普通に使えるのですね。pkg_infoコマンドで、パッケージの検索とインストール済みかどうかを確認することができます。追加したいときはpkg_addです。
OpenBSD# pkg_info -Q apache
apache-httpd-2.4.41 (installed)
php-apache-7.1.32
php-apache-7.2.22
php-apache-7.3.9 (installed)

WordPressにはMySQLが必要ですが、pkg_infoで検索しても出てきません。OpenBSDはMySQLの上位互換(?)であるMariaDB
OpenBSD# pkg_info -Q maria
mariadb-client-10.0.38v1 (installed)
mariadb-server-10.0.38p0v1 (installed)
mariadb-tests-10.0.38v1

が使えるようです。MariaDBの使い方はMySQLと全く一緒なので、ここでは割愛します。Webサーバは大好きなlighttpdがないので、apache2を使います。apacheでもFastCGIを使いたいので、/etc/php-fpm.confの設定変更を行い、rcctl enable php73_fpmでサービス登録を行うなどなど設定を積み上げていきます。(この辺は一般Webを参考にしています)

で、WordPressにアクセスすると「File Not Found」と表示される。あれ?
ソースコードを見てみたら、マークアップされたHTMLとしてのFile Not Foundではなく、Rawメッセージとしての文字列でした。下位レイヤからのメッセージなので、ベースの設定が怪しいように見えます。
apacheのエラーログには、AH01071: Got error 'Primary script unknown'と残っています。

ここから何時間も格闘したのですが、とりあえず切り分けとしては、
・apache2は、FastCGIを使わない普通のCGI方式だと、ちゃんと動く
・php-fpmは、socketを使ってもTCP Listenを使っても表示は変わらない
といったところが分かりました。

最終的に犯人はphp-fpm.confの以下の設定でした。(chrootをコメントアウトすれば直りました)
; Chroot to this directory at the start. This value must be defined as an
; absolute path. When this value is not set, chroot is not used.
; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
; of its subdirectories. If the pool prefix is not set, the global prefix
; will be used instead.
; Note: chrooting is a great security feature and should be used whenever
;       possible. However, all PHP paths will be relative to the chroot
;       (error_log, sessions.save_path, ...).
; Default Value: not set
chroot = /var/www

まあ、chroot時のディレクトリ階層がおかしいだけなので、論理的に整合性を取ってあげれば、chroot設定有りでちゃんと動くような気はしています。とりあえず今は先に進みたいので、設定を無効化して進みます。


タグ:Apache PHP
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。