Tag Archives: FTP

Mac OS X Leopard Server で WordPress の自動アップデート

以前の記事で、WordPressでの自動アップデートを成功させるためには、FTP_BASEやFTP_CONTENT_DIRやFTP_PLUGIN_DIRを定義すればよいと記事に書きました。

が、その記事に書いた通りLinux(Debian)では正しく動作していたのにLeopard Serverにしてからうまく行かなくなっていました。

しかも「ディレクトリが見つかりません」というようなわかりやすいエラーではなく「ファイルをコピーできませんでした」というエラー…
表示されるパスには間違いはないし、パーミッションも777にしてみても(すでになっている)駄目。

ちなみに「ファイルをコピーできませんでした」というエラーはPHPがセーフモードで動いている場合によく出るそうですが、今回はセーフモードで動かしてはいません。

で、諦めていたのですが、いっそのことFTP_BASEやFTP_CONTENT_DIRやFTP_PLUGIN_DIRの定義をコメントアウト(削除)してみるとなんとすんなり成功。

(下部の追記参照)

ということで、セーフモードでもないのに「ファイルをコピーできませんでした」と言われた時は一度FTPのディレクトリ設定を削除してみるのも手かもしれません。

追記

どうやらCodexのFTP_BASE等の説明には「インストールした WordPress のベースフォルダへのフルパス。」と書いてあるので”サーバー内でのフルパス”だと思っていたのですが、少なくともOSXでは”FTPでアクセスした時のパス”が正しいようです。(OSの問題では無いようなな気もしますが)

Codexにも「FTPユーザとしてサーバ上にある各フォルダへのパスが分かっていれば…」とあるので”FTPでアクセスした時のパス”が正しいようです。

つまり「/Users/name/Sites/wp-content/」ではなくFTPから見た時のパスなので「/Sites/wp-content/」とするとFTP_BASE等を定義しても自動アップデートできました。

WordPressの自動アップデートエラーについて

WordPressにはプラグインや本体をFTP経由で自動でアップデートする機能がありますが、だいたいは「ディレクトリが見つかりません」といわれてしまいます。

そんな場合は「wp-config.php」に以下の三行を追加するだけで直ります。
上から順番に「FTPのルートディレクトリ」「wp-contentディレクトリ」「pluginsディレクトリ」へのパスです。

define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR', '/path/to/wordpress/wp-content/plugins/');

長いことあきらめていたのですが公式サイトの「wp-config.php_の編集」に説明がありました。

明日は前期入試です

追記(2010年1月11日)
どうやらFTP_BASE等でのフルパスというのはFTPから見た時のパスのような気がします。
Codexの説明には「インストールした WordPress のベースフォルダへのフルパス。」としか書いてないのでどちらかわかりませんが、試してダメならFTPで接続したときのパスを入れてみてください。

Codexにも「FTPユーザとしてサーバ上にある各フォルダへのパスが分かっていれば…」とあるのでこれで正しいと思われます。