私はApache2、PHP、MySQLでLinux Mintを実行します。public_html
ユーザーモジュールを使用し、そのモジュールでPHPスクリプトを実行できるようにApacheモジュールを有効にしました。私(例えば)public_html
にWordPressをインストールしましたが、~/public_html/wordpress
完全には実行されません。
背景画像やヘッダー画像を変更しようとすると、アップロードしたコンテンツを保存するディレクトリ(年/月または月/年)を作成できないというエラーメッセージが表示されます。
public_html
明らかに、私のWebサーバーにはディレクトリまたはそのサブディレクトリ(以下のディレクトリの一部)を作成する権限がなく、おそらくファイルも生成しません~/public_html/wordpress
。
だから私の選択が何であるか疑問に思います。 Webサーバーが書き込むために追加する必要があるモジュール、または変更する必要がある構成ファイルはありますか?または - およびそのサブディレクトリの所有者および/またはグループを変更する必要がありますpublic_html
(サブディレクトリを同じ所有者/グループに属させる方法はありますか?)。 ...私のページを変更するのを防ぐことはできないようです。提案、提案、ベストプラクティスを歓迎します。
WordPressをrootとしてインストールすると問題が少なくなる可能性がありますが、/var/www
このソリューションを使用しないことをお勧めします。
答え1
明らかに、私のWebサーバーには、public_htmlまたはそのサブディレクトリ(〜/ public_html / wordpressの下のいくつかのディレクトリなど)にディレクトリを作成する権限がなく、おそらくファイルを生成する権限もありません。
実際、これが問題である可能性が高いです。ただし、このディレクトリで自分自身をロックする必要はありません。このディレクトリにファイルを保持し、Webサーバーがここに書き込むことを許可するオプションがたくさんあります。
www-data
グループに自分自身を置きsudo gpasswd -a $(whoami) www-data
、public_htmlディレクトリのグループを次に変更しますsudo chown -R $(whoami):www-data ~/public_html
。このディレクトリはあなたとWebサーバー間で共有されます。固定ビットの使用:Webサーバーはそのディレクトリにファイルを書き込むと同時にフォルダグループを運ぶことができるため、ユーザーはアップロードディレクトリにアクセスできます
chmod g+rws,o+rwx ~/public_html/wordpress/wp-content
。ACLを使用して、サーバーがディレクトリに書き込むことができる高レベルの権限を指定します
setfacl -m u:www-data:rwx ~/public_html/wordpress/wp-content
。その道に行くなら、ぜひ読んでみてください。手動ACLの場合、非常に強力で多くのことができるからです。
警告する
ただし、上記のソリューションのいずれも本番環境には適していません。これは、PHPコードを実行できるサーバー上のすべてのユーザーにWebサーバー権限も付与することで、悪意のあるファイルをアップロードディレクトリに配置する可能性があるためです。確実にするただアップロードディレクトリを書き込み可能にし、アップロードディレクトリでコードの実行を無効にする.htaccessを配置します。本番サーバーでは、suexec、php-fpm、またはWebサーバーの外部でPHPコードを実行する別の方法を使用し、PHPをユーザーのシステムユーザーとして実行することをお勧めします。