WordPressではアップデート時にFTP接続情報を聞かれる

アップデートは重要です。しかし、こんなふうにFTPの情報を聞かれるかもしれません。

スクリーンショット 2013 12 20 5 29 40

なぜテーマやプラグインのインストール・更新のたびにこの画面になるかというと、権限の問題があるからです。

ファイルには所有権というフラグがあり、自分がそのファイルを変更・削除できるかが所有権で決まります。

フォルダ(Linuxではディレクトリ)にも同じように所有権があります。

一般的なレンタルサーバの場合は、その所有権はユーザにあります。当然ですね。その所有権がユーザにあるから他のユーザは勝手なことができないのです。

ではウェブサイトというのは誰がそのファイルにアクセスして閲覧しているのでしょうか?httpデーモンです。サーバの中でアクセスがあったときにファイルを転送してくれる常駐プログラムです。

で、たいていの場合、このプログラムのユーザは違うユーザなのです。たとえばapache、などのデーモンの名前になっています。

ここで所有権の問題がでるので、所有権はユーザにする、ということでそのユーザーの情報を聞かれているのです。

もちろんこれは面倒なことなので、所有権はプログラムのユーザ(apacheとか)でいいよ、とすることができます。

2つ方法があります。

その1、FS_METHODを使う

ドキュメントルートにあるwp-config.phpの中に

[code]define(‘FS_METHOD’, ‘direct’);[/code]

を追加してください。ファイルシステムメソッドの指定パラメータで、”direct”、”ssh”、”ftpext”、”ftpsockets” のいずれかです。

directを指定するとファイルをそのままアップデートするのでしょう。ただ、アップデートするのはサーバなので、httpサーバを動かしている権限でアップデートしようとします。よくあるのはapacheユーザです。

なのでapacheユーザができないことはできません。パーミッション(権限)がファイルやディレクトリにないと、

スクリーンショット 2013 12 20 5 30 27

などと失敗してしまいます。でもapacheとわかっているわけですから

chwon -R apache:apache *

などとすれば実行できるようになるでしょう。

その2、FTP情報を保存しておく

同じくドキュメントルートのwp-config.phpの中に

[code] define(‘FTP_HOST’, ‘ftp.example.com:21’); define(‘FTP_USER’, ‘username’); define(‘FTP_PASS’, ‘password’); [/code]

などと書いてしまうことで毎回聞かれなくなります。この場合はこのユーザ権限で更新しますので、権限はおそらくそのままで大丈夫なはずです。

ようこそ画面になりました。管理画面のデザインがかわってます!でもなんか文字化けしてます。

スクリーンショット 2013 12 20 5 32 33

これはあわてる必要はありません。プラグインのWP Multibyte Patchをアップデートすれば直ります。

スクリーンショット 2013 12 20 5 33 54

1.9にすると、四角い文字化けがこうなります。

スクリーンショット 2013 12 20 5 34 38

 

 

 

 

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です