WordPress でプラグインなどを操作するとFTP画面が出る

wordpress/wp-admin/includes/file.php

1454行目くらいに下記コードが記述してある。

$method = defined('FS_METHOD') ? FS_METHOD : false;
// Please ensure that this is either 'direct', 'ssh2', 'ftpext' or 'ftpsockets'
# FS_METHOD をどこかで定義してあげる必要がある。
## 値は 'direct', 'ssh2', 'ftpext', 'ftpsockets' のどれか。
## 今回は 'direct' で定義する。

wordpress/wp-config.php

下記コード追加

# require_once(ABSPATH . 'wp-settings.php'); より上に下記コードを追加
define('FS_METHOD', 'direct');

サーバー内の権限変更

PHPを実行するユーザー(nginx, apacheなど)と、
対象ファイル、ディレクトリ(wordpress/wp-content)
の所有権を一致させる必要がある。
それぞれ664、775だったのでグループを変更。

# 作業ユーザー名が user で webサーバーが nginx の場合、
# 普通はPHPを実行するユーザーと作業ユーザーが違う。
# wp-content/ 内だけ nginx:nginx にする。
# wp-content/themes/子テーマ は user:nginx にする。
$ cd /path/to/your/project
$ cd wordpress/wp-content
$ chown -R nginx:nginx .
$ chown -R user:nginx themes/

関連投稿