====== ApacheがCannot load mod_authn_file.soと言って起動しない ======
社内wikiを立ち上げようと、FreeBSD 10.2-RELEASEにpkgでApache 2.4を入れてservice spache24 startしたら、以下のようなエラーで起動しなかった。
Performing sanity check on apache24 configuration:
httpd: Syntax error on line 66 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/mod_authn_file.so into server: Cannot open "/usr/home/www/libexec/apache24/mod_authn_file.so"
Starting apache24.
httpd: Syntax error on line 66 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/mod_authn_file.so into server: Cannot open "/usr/home/www/libexec/apache24/mod_authn_file.so"
/usr/local/etc/rc.d/apache24: WARNING: failed to start apache24
''mod_authn_file.so''って''LoadModule''の最初の行じゃないですかー、何でこんな所でコケてるんですかー、やだー!
**/usr/local/**libexec/apache24/mod_authn_file.soは間違いなくあるし、マジ意味わかんないですケド…。今までずっとports版を使ってきたところに、今回はpkgで導入したからそのせい?なんて思ったりしたが、いくら何でも基本中の基本のモジュール読み込みに失敗するようなバイナリが落ちてくるとは考えられない。
で、まぁ上記のログをよく見てみるとCannot open "**/usr/home/www/**libexec/apache24/mod_authn_file.so"となってるんですな。うん、これは明らかにオカシイですな。
結局原因はというと、''DocumentRoot''を書き換えたつもりで''ServerRoot''を書き換えてたという…。みんなも気をつけようね!
====== DokuWikiにはSessionとXML Parserが必要 ======
前項の社内WikiというのはDokuWikiな訳だが、無事Apacheが起動したので次はDokuWikiのインストーラを起動したみたところ、''start_session(), utf8_encode(), utf8_decode()''関数がないと言われて進めなかった。これらもpkgでサクッとインスコ。これらだけならphp56-session, php56-xmlを入れれば事足りるが、php56-extensionsを使って標準っぽいモジュール群を入れておく。
pkg install php56-extensions php56-openssl php56-gd php56-mbstring
DokuWikiの動作にはGDとOpenSSLもあった方がいいのでついでに。mbstringは他のPHPスクリプトで使われてそうだから、これも一緒に。
最終的に導入されたモジュールはこんな感じ。
$ php -m
[PHP Modules]
Core
ctype
date
dom
ereg
filter
gd
hash
iconv
json
libxml
mbstring
mhash
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
これでようやくDokuWikiが使えるようになった。