1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPでmkdirを呼んだらSELinuxに阻まれた

Posted at

CentOS7 & Apache & PHP でWebサーバーを作っているわけですが、設定でいくらかトラブったのでメモです。

PHPから、mkdirなどを行おうとしたのですが、失敗しました。インターネットで調べてみると、パーミッションを設定しろ!と言った回答が多かったのですが、私の場合は、SELinuxのコンテキストが原因だったようです。

#コンテキストの追加方法
どうやら、ファイルやフォルダにコンテキストを追加するには以下をインストールする必要がありそうです。

yum install policycoreutils-python

私の場合は、初めから入っていました。
インストールが終わったら、segmanageコマンドでコンテキストを追加します。

#mkdir等を行えるようにするには「httpd_sys_rw_content_t」

さて、mkdirを行えるようにするには、対象のディレクトリに「httpd_sys_rw_content_t」というコンテキストを追加する必要があるようです。例えば、「/home/test」というフォルダに追加できるようにするためには、

semanage fcontext -a -t httpd_sys_rw_content_t /home/test
restorecon -R /home/test

といった具合です。「restorecon」を呼ばないと、反映されません。

#その他、Apacheで関連するコンテキストは?

それ以外にも、コンテキストが原因で失敗することがいくらかありました。以下のようなコンテキストが必要になるようです。

  • ドキュメントルート : httpd_sys_content_t
  • SSLの証明書ファイル : httpd_config_t

失敗した場合は、試してみると良いかもしれません。

1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?