■環境
MacBook Air MC505J/A
XAMPP 1.7.3
WordPress 3.1.4-ja
■現象
プラグインやWPの自動アップグレード(自動アップデート)を
するとFTP接続情報が表示されたり、こんな感じのエラーが出る。
----------------------------
failed to open stream: Permission denied in 〜〜〜 class-wp-filesystem-direct.php on line 202
ファイルをコピーできませんでした。
インストール失敗
----------------------------
対応しても次々と色んなエラーが出てしまい、tmpフォルダに
パーミッションがないだの、接続情報 FTPを接続しろだの
キリがない。
■原因
FTP接続の設定になっていたりApacheの実行ユーザーが
nobodyになっていることなどが原因。
■対応策
ネット上を見ると、これもまたキリがないほど
たくさんの対応策が載っていて、環境によって
大きく異なるようだ。あらゆるフォルダの
パーミッションをchmod 777にしたり、
chown -R _www:_www とか試しまくったが
下記の方法2点のみで解決した。
1.wp-config.php に最下部に下記を記載する。
これがFTP接続情報を回避する方法となる。
------------------------------
define('FS_METHOD','direct');
------------------------------
2./Applications/XAMPP/etc/httpd.conf の
user と group を自分のユーザー名に変える。
コピーできないとかパーミッションがなんとか
言われた場合の回避方法。
------------------------------
138 #User nobody
139 #Group nogroup
140 User 自分のユーザー名
141 Group 自分のグループ名
------------------------------
ちなみにユーザー名の一覧は /etc/password に記載してある。
■備考
色々やってどうしても解決しない場合は、苦肉の策として
XAMPP の代わりに MAMP を使えば
一発で動くとの情報あり。
■参考サイト
[WordPress3.0]テーマ、プラグインインストールでFTPの接続情報を求められる。
XAMPP環境でWordPressの自動アップデートを可能にする
■英語圏の方用 for English
If you get error "FTP connetion" or "permission denied" When you upgrade or install plugin, you should try these.
1. write below sentence in wp-config.php.
define('FS_METHOD','direct');
2. change the user and group config in /etc/httpd.conf
#User nobody
#Group nogroup
User YourUserName
Group YourGroupName