fopen() を使用しようとすると、LAMP スタックを実行している Fedora 20 デスクトップで次のエラーが発生します。
警告: fopen(/var/www/html/php/documents/orders.txt):
ストリームを開くことに失敗しました:
/var/www/html/php/processorder.php 行 76 で許可が拒否されました
私が使用したコードは
$fp = fopen("$DOCUMENT_ROOT/php/documents/orders.txt", 'ab');
orders.txtには次の権限があります
[root@localhost ドキュメント]# pwd
/var/www/html/php/ドキュメント
[root@localhost ドキュメント]# ls -l
合計 4
-rwxrwxrwx. 1 byron web-content 12 Feb 21 12:33 orders.txt
この質問が何度も寄せられていることは承知していますが、どの解決策もうまくいきませんでした。Linux/Fedora と LAMP は初めてなので、無知が原因でエラーが発生した場合はお詫び申し上げます。
編集: SELinux が問題を引き起こしているようです。SELinux の設定を変更するという点でこれを克服する方法がわからないため、無効にしました。
SELinux が強制されているかどうかを確認するには (私は Fedora 20 を使用しています)、/usr/sbin/sestatusを使用します。
SELinux を無効にするには、/etc/selinux/configでSELINUX=disabledを構成します。