wordpress自動更新のエラーについて調べたけどわかんなかった

過去にさくらのVPS-WordPress自動更新時のエラー原因-の記事を書きましたが、FTPなどで情報を記憶させておくとwordpressやプラグインの自動アップデートができません。なんでできないのかわからないのでちょっと調べて見ました。

環境-logw

  • PHP:モジュールモード
  • サーバー:VPS
  • 自動アップデード:できない

環境-共用サーバー

  • PHP:cgiモード
  • サーバー:共用サーバー
  • 自動アップデード:できる

PHPのセーフモードの仕業?

WordPressの自動アップグレードに失敗するのはPHPの仕業の記事ではPHPがセーフモードがオンだとアップデートできないそうです。PHPのセーフモードをオフにすることで自動アップデートができると書いてあるので実際にやってみました。

vi /etc/php.ini

セーフモードを見てみると・・・
safe_mode = Off

デフォルトでオフでした。PHPのセーフモードがオフでもlogwはアップデートできませんでした。これが原因というわけではなさそうです。

.maintenanceを削除

WordPress 3.0.2の自動アップグレードに失敗したのサイトを参考にしましたが、logwには.maintenanceというファイルは元々ないのでこれも違いますね

所有者をapacheに変更する

アップデートを行うのはapacheになるので所有者を一時的にapacheに変更し、終わったら元にもどすということになります。

chown -R apache:apache ディレクトリ名

アップグレードなどが終わったら所有者を戻すというのはめんどうです。ついでにいえば共用サーバーではこういった事しないので無しだなと思います。

一部のファイルだけをapacheに変更

FTP接続できなくても自動アップグレードは可能(wordpress)さんのページにあったないようになります。wp-admin/update.phpとwp-admin/update-core.phpをapacheユーザーにすることになります。

# chown apache.apache wp-admin/update.php
# chown apache.apache wp-admin/update-core.php

logwでもやってみました。見事に失敗しました。これでできても共用サーバーではこういうことはしないのでやり方としては間違っていますね・・・今回あくまで共用サーバーのように自動で更新したいということになりますので・・

結論

わかりません。毎回ホスト名とかを入力するときは特にアップデートで問題が起きたなどはなかったのですがFTP情報を記憶するとアップデートエラーがでます。また手動で対応するか・・・共用サーバーではどうやって可能にしているのか気になります。