DUPLICATEと叫ぶ前に!そして私を奈落の底に追いやる、聞いてくれ。 :)
私は協力している会社のイントラネットサイトを開発しており、元々はWindows 7/IISを実行しているワークステーションから直接開発していました。サイト/アプリケーションの完成に近づくと、Centos 7実行中のボックスApacheが与えられたので、それに移行するプロセスを開始しましたシステム。マイナーな問題のほとんどを整理し、サイトを稼働させました。ただし、サイトの一部でデータベースとやり取りし、ログインしたユーザーに基づいてログディレクトリ/ファイルを作成します。この部分ではmkdir()関数を使用していますが、権限に関する問題が発生しています。
mkdir(): Permission denied
これが私がすでに行ったことです:
したがって、chmodまたはchownを使用して、アクセスされるフォルダーのアクセス許可を変更しても、同じ種類のエラーが発生します。安全のために、PHPユーザーもチェックしましたが、Apacheユーザーも使用しています。
権限が変更されていても、なぜ機能しないのかについてさらに洞察が得られる可能性がある場合は、教えてください。この特定の状況を説明する1つの記事を見逃した場合は、複製を叫び、私を奈落の底に追い込みます。笑 :)
[〜#〜] edit [〜#〜]わかりました。そのため、さらにテストを行ったところ、この全体的な問題を引き起こしていると思われる2つの問題を発見しました。
注意してください。PHPのmkdirで再帰的な値をtrueに設定しようとしましたが、そのとき、最初に指摘した権限の問題が発生します。再帰/モードが削除されると、権限の問題は発生しませんが、ネストされたディレクトリを作成することはできません。
編集2
私の理論をテストするために、ネストを削除し、mkdirに1つのディレクトリのみを作成させようとしたところ、以前と同じエラーが発生しています。 Apacheが所有していますが、777に設定しても、アクセス許可の問題が発生します。
755/777の権限はあるものの、SELinuxがhttpdによるdirsの書き込み/作成をブロックしている可能性があります。
試してください:
chcon -R -t httpd_sys_content_t /path/to/www
chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw
確かではありませんが、CentosのPHPバイナリのファイルアクセス権が壊れている可能性があります。これを修正するには2つの方法があります。