約1年前にリプレイスしたファイルサーバ(Ubuntu 8.04 LTS Server Edition)には、XAMPP for Linuxによるウェブサーバ環境も構築してある。仕事で関わるウェブ案件にはたいていWordPressが絡んでいるし、他のスタッフと分担して構築作業を進めていくので、ファイルサーバとウェブサーバを兼用しておく方がなにかと便利なのだ。
ところでかねて困っていたのが、XAMPP上で動かすWordPressが自動アップデートに対応してくれない、ということだった。コアファイルやプラグインのアップデートをしようにも、そのたびにFTPのアカウント情報を尋ねられる始末でいっこうに進まない。
とはいえその状態で放っておくのも精神衛生上よくないわけで、一念発起してXAMPP環境でも自動アップデートができるよう環境設定をしたのである。
ググってまず出てきたのが、wp-config.php に
- FTP_BASE
- FTP_CONTENT_DIR
- FTP_PLUGIN_DIR
を追記せよという指令であった。今まで、リモート環境で自動アップデートするときにはまったく気にしたことのない定数群だったので、なんだ?と思ったのだが、Codexによるとシンボリックリンクをはっている場合に、問題が起きる可能性があるとのこと。
ウチの環境がまさしくそうだ。
XAMPP for Linuxをインストールしているのが /opt/lampp ディレクトリ,WordPressをインストールしているのが /home/USER/dev ディレクトリでしかもXAMPPとは別ディスク。/opt/lampp/htdocs 内から /home/USER/dev 内に向けてシンボリックリンクをはって運用しているのである。
ということで、定数群の設定は終わった。しかし、課題は解決しなかった。
ここからが実に長かった。後になってみれば「確かにそうだわ」というつまずきだったのだが、ほうぼうググった挙句ようやくたどりついた結論が……
Apacheの実行ユーザに注意
ということであった。
ちなみに、当方の /opt/lampp/etc/httpd.conf を見るとこうなっている。
#User nobody #Group nogroup User foo Group bar
デフォルトの nobody, nogroup をコメントアウトし foo, bar に変更(実際のファイルには実在のユーザ名・グループ名が書かれている)、ユーザ foo でXAMMP上のApacheを実行させている。
ここがつまずきの原因だった。インストールしたWordPressディレクトリの所有者が foo ではなかったため、自動アップデート時に使われる wp-content ディレクトリに書き込みできず、いつまでも「ファイルをコピーできませんでした」とのエラーをはき続けたのである。
ということで、まとめ(実はここだけ読めばよかったのですスミマセン)。
Apacheの実行ユーザとWordPressインストールディレクトリの所有者は揃えよう。
wp-config.php の編集 – WordPress Codex 日本語版
http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86
Related posts:
0 Responses to “XAMPP環境でWordPressの自動アップデートを可能にする”