Lightsail|WordPress|テーマがアップできない削除できない


AWS-Lightsail-WordPress(bitnami)のトラブルシューティングです。

ケース

  • LightsailでWordPressを1つ立ち上げました
  • 同じインスタンス内のappsディレクトリへ新規ディレクトリを作成し、その中に別のWordPressを手動で入れました(以下、別のWordPressを「WP-β」と表します)
  • データベースへの接続も完了し、WP-βへは正常にログインできる状態です

トラブル:テーマがアップロードできない

テーマをアップしようとした際に、下記の表示がされました(FTPの認証情報の入力がもとめられる表示。たぶん、画像・メディアなどのファイルもアップロードできない状態)

接続情報
要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。 次に進むには FTP の認証情報を入力してください。 認証情報が思い出せない場合は、ホスティング担当者に問い合わせてください。

ググると、下記の記事を発見

WordPressでアップデートやインポートをしようとしたらFTPパスワードを聞かれちゃう件の対処
【CentOS】wordpressでFTPを聞かれないようにする

他にも同様の記事がありましたが、共通事項はwp-config.phpへ一行を追加すること

wp-config.php
define('FS_METHOD', 'direct');  // ←追加

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}

/** Absolute path to the WordPress directory. */より上に追加する必要があります

※更新後は、一度WordPressからログアウト/再ログインしてください(ブラウザのリフレッシュもした方がいいかも)

これでFTP情報の入力は求められないかと。

なお、Lightsail-WordPress(bitnami)のwp-config.phpにも同じ記述がありますので、この対応は妥当かと思います。

【/opt/bitnami/apps/wordpress/htdocs/wp-config.php】


しかし、これだけでは解決せず...

トラブル:パーミッション問題

この親ディレクトリのアクセス権はサーバーによる書き込みを許可していますか ?

次に、この表示がされました。パーミッションの問題ですね。
そこで、パーミッションをLightsail-WordPress(bitnami)のもの/opt/bitnami/apps/wordpress/htdocs)を参考にし、同じ状態にしました。

理想形:Lightsail-WordPress(bitnami)のパーミッション

【↓理想形】

  • 所有者:グループはbitnami:daemon
  • ディレクトリは775
  • ファイルは664
  • ただし、wp-config.phpだけは640

現状(変更前)の確認

【↓現状・変更前】

  • ユーザー名bitnamiでWordPressを手動アップ&解答した状態
  • 所有者:グループがbitnami:bitnamiになっている
  • ディレクトリは755になっている
  • ファイルは644になっている

すること

  • グループを総じてdaemonへ変更
  • ディレクトリおよびファイルへグループの書き込み権限を付与する
  • ただし、wp-config.phpだけは640にする

手順

インスタンスへSSH接続し、ターミナルからパーミッションを変更します。

なお下記は、WP-βのファイル一式がディレクトリWordPressに入っているとして、記載します。ディレクトリWordPressは、各環境に応じて書き換えてください。

1)グループの変更

terminal
$ sudo chown -R bitnami:daemon wordpress

ディレクトリwordpressに対して、オプション-Rで再帰的に(つまりwordpress内の全てのディレクトリとファイルに対して)chownを実行

bitnami:daemon所有者:グループ

2)ディレクトリのパーミッション変更

terminal
$ sudo find wordpress -type d -exec chmod 0775 \{\} \;

ディレクトリwordpressから、find -type dコマンドでディレクトリを探し出して、パーミッション変更を実行

findコマンドの使い方やオプションについては【参考サイト:find コマンド】をご参照ください

3)ファイルのパーミッション変更

terminal
$ sudo find wordpress -type f -exec chmod 0664 \{\} \;

同じくfindコマンド。-type fでファイルを指定して実行

4)wp-config.phpだけ640

terminal
$ sudo chmod 0640 wordpress/wp-config.php

※この後で、一度WordPressからログアウト/再ログインしてください(ブラウザのリフレッシュもした方がいいかも)

これで私は「この親ディレクトリのアクセス権はサーバーによる書き込みを許可していますか?」の表示がでなくなりました(問題なくテーマのアップロードもできています)