- ファイルアップロード
- プラグイン自動アップデート(アップグレード)
- プラグイン新規インストール
- テーマ自動アップデート(アップグレード)
- コアアップデート(アップグレード)
環境例
- CentOS 6.2
- Apache 2.2
- PHP 5.3
- WordPress 4.8
問題
厳密に言うと、WordPressファイルのユーザーとPHPを実行するユーザーが異なる場合、問題が発生する。
例えば、レンタルサーバーにFTPでWordPressのファイル群をアップロードする。
この時、ファイルのユーザーは当然のことながらFTPユーザーとなる。
その後、wp-config.phpを作成し基本設定。wp-admin/install.phpでインストール。
ここまでは問題ないが、ログイン後、ファイルアップロードすると以下のエラーが出る。
![]() |
これと同じ理由で、プラグインなどがインストールやアップデートできない。
権限の問題なので、権限をつければもちろん動作する。
例えば、ファイルアップロードであれば、wp-contentやuploadsなどにApacheが書き込める権限をつければ動作する。
しかし、WordPressの設定によっては、ディレクトリの作成方法が異なったり、そもそも、いつ、どこに、どんなディレクトリやファイルを作成するかなんてわからない。
プログラムを読めばわかると思うが、現実的ではない。
権限の問題なので、権限をつければもちろん動作する。
例えば、ファイルアップロードであれば、wp-contentやuploadsなどにApacheが書き込める権限をつければ動作する。
しかし、WordPressの設定によっては、ディレクトリの作成方法が異なったり、そもそも、いつ、どこに、どんなディレクトリやファイルを作成するかなんてわからない。
プログラムを読めばわかると思うが、現実的ではない。
対策
以下htaccessをwp-adminに配下に設置し、WordPressをCGIとして動作させる。
(suEXECとしてCGIが動作することが前提。)
<FilesMatch "\.php$">
AddHandler php-script .php
Options +ExecCGI
</FilesMatch>
これで、WordPressを実行するユーザーとファイルのユーザーが同一になり、問題は解決する。
0 件のコメント:
コメントを投稿