以前悩んでいた、自分で立てたテスト用サーバーで WordPress 関連ファイルのコンテキストをどう設定すれば良いかという話。以下のコマンドで、英語版 /usr/share/wordpress の現在の設定を確認して /usr/share/wordpress-ja に適用すれば良いと思いついた。
# semanage fcontext -l | grep wordpress
ちなみにコマンド出力結果は以下の通り。
/usr/share/wordpress-mu/wp-config\.php regular file system_u:object_r:httpd_sys_script_exec_t:s0 /usr/share/wordpress-mu/wp-content(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0 /usr/share/wordpress/.*\.php regular file system_u:object_r:httpd_sys_script_exec_t:s0 /usr/share/wordpress/wp-content/upgrade(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0 /usr/share/wordpress/wp-content/uploads(/.*)? all files system_u:object_r:httpd_sys_rw_content_t:s0
wordpress-mu は (今は配布されていない) マルチサイト用パッケージの設定だと思われ。とりあえず、以下のファイルコンテキスト設定して様子見。
# semanage fcontext -a -s system_u -t httpd_sys_script_exec_t -f -- '/usr/share/wordpress-ja/.*\.php' # semanage fcontext -a -s system_u -t httpd_sys_rw_content_t '/usr/share/wordpress-ja/wp-content(/.*)?' # restorecon -R /usr/share/wordpress-ja
詳しくは man semanage、man restorecon ということで。
追記:
WordPress 自体のアップグレードにはやはりこれだけでは足りなくて、FTP ユーザ/パスワード入力画面になってしまう。まあ、アップグレードするときだけ setenforce なり chcon なりで一時的にインストールディレクトリ以下を書きこみ可とするがよいのではないかな。