AMIMOTO AMIでコア更新やプラグインアップデートができなくなった場合は、ファイルの所有者を確認しよう
WordPressの更新時に接続情報を求められる場合、AMIMOTO AMIのリリース元Digitalcubeによると、php.config.userが設定されているか確認する必要があります。指定がない場合はデフォルトのnginxユーザーが実行ユーザーとなります。所有者とPHPの実行ユーザーが異なる場合は、chownコマンドを使用して所有者を変更する必要があります。これにより、問題は解決する可能性があります。
目次
忘れた頃に遭遇して、いつも「なんだっけ・・・?」となるのでまとめました。
AMIMOTOのWordPressで発生していた現象
WordPressのコアやプラグインを更新しようとする際、このような接続情報を求められることがありました。
基本的にFTPもSFTPも利用しないので、接続情報を入れて対応ではなく、問題そのものの解決を目指しにいきます。
現象が発生した時に確認することとその後の対応方法
AMIMOTO AMIのリリース元(Digitalcube)は前職なこともあり、どのように解決するかなどを聞いてみました。
/opt/local/amimoto.json
で「PHPを実行するユーザー名」確認する
デフォルトでは、PHPはnginx
ユーザーが実行しています。
ですがSFTPクライアントを利用する目的などで、実行ユーザーを変更している可能性があります。
/opt/local/amimoto.json
を開き、php.config.user
が設定されているかいないかを確認しましょう。
$ sudo cat /opt/local/amimoto.json
{
"run_list": [
"recipe[amimoto]"
]
}
この場合、指定がないのでデフォルトのnginx
が実行ユーザーです。
{
"nginx" : { "config" : { "user" : "ec2-user" } },
"php" : { "config" : { "user" : "ec2-user" } },
"run_list" : [ "recipe[amimoto]" ]
}
このケースでは、ec2-user
が実行ユーザーです。
ファイルの所有者を、「PHPを実行するユーザー名」に変更する
実行ユーザーとファイルの所有者が異なる場合( +操作権限が付与されていない場合 )に、冒頭の画面が表示されます。
そこでchown
コマンドを利用して所有者とPHPの実行ユーザーを揃えましょう。
% sudo chown -R <上で確認したユーザー名>: /var/www/vhosts/
# デフォルト設定&特定のサイトのみの場合
% sudo chown -R nginx: /var/www/vhosts/example.com
少なくとも、自分のケースではこれで解決しました。