さくらのVPSでWordPressを動かすメモ2:FTPやディレクトリの権限について

あとで分かんなくなると怖いので、メモ。

エラーの詳細

WordPressをインストール後に、プラグインの削除やアップグレード、画像をブラウザ経由(管理画面上)でアップロードできないという不具合がありました。

FTP情報の入力画面が表示されてしまいます。

FTP情報の入力を求められる
var/www/wp-content/upgradeディレクトリが作成できませんでした。
プラグインhello.phpを完全に削除できませんでした。
var/www/wp-content/uploads/~を作成できませんでした。この親ディレクトリのアクセス権はサーバーによる書き込みを許可していますか?

このエラーは、サーバ内にあるWordPressが置いてあるディレクトリやファイルで、WordPressが設置されているサーバがファイルを作ったり、書き換えたりする権限が無いことを示しているようです。

行った対策は以下です。

対策

まず、FTPの入力情報を求められるのは、ファイルシステムに関連するもののようです。FTPでアップしたり書き換えたりするのか、SSHなのかdirectなのかなど。ここをdirectに指定することで、FTP的なやり方ではなくなります。

やりかたは、wp-config.phpを開いて場所はどこでもいいので、

define(‘FS_METHOD’,'direct’);

と書き込みます。

これで、FTP情報の入力は求められなくなります。
上記1枚目の画像はこれででなくなります。

しかし、このままではサーバが書き込みをする権限がないので、2枚目移行のエラーが出てしまうので、groupの権限を書き換える必要があります。

プラグインをインストールできないエラー

まず、プラグインのインストールや自動アップグレードができないときのエラーは、upgradeというディレクトリが作成できなかったということなので、自分で作り、さらにgroupに書き込み権限を付与します。

もう一度試みると、こんどは

プラグインディレクトリでエラーが出ます。
ここも権限を書き換えてグループに書き込み権限を付与します。

これで、無事プラグインのインストールができるようになりました。

画像をアップロードできないエラー

次に、投稿画面から画像がアップロードできないときも同様にwp-contentディレクトリにuploadsディレクトリを作成し、groupに書き込み権限を与えると、アップロードできるようになります。

参考にしたサイトFTPの接続情報を設定せずにWordPressを自動更新させる方法によると、全部のディレクトリに権限を付与することで解決することができるとありましたが、権限系は慎重に!という@ikkoさんのアドバイスを受けて、必要に応じて一部だけに与えるようにしました。

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

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