<?php
echo file_put_contents("/tmp/log.txt", "Hello world everyone.");
代码很简单,在浏览器和命令行上运行都显示成功,为:21
。但是在浏览器运行后,/tmp/log.txt并不存在。而在命令行下,/tmp/log.txt创建成功(root和apache用户测试都没问题)。非常纠结。。。。。。。
uname -r
: 3.10.0-514.2.2.el7.x86_64
都是通过yum install安装的,yum install httpd php5
/tmp ディレクトリには最大の権限が必要です。権限に問題はありませんか? エラー メッセージを開いて確認してください。
まず、書き込みを許可するフォルダー権限を確認してから
リーリーユーザーからの質問?コマンド ラインでは root ユーザーであると推定されるため、実行は成功する可能性があります。 Web ディレクトリが別のユーザー グループに属していないか、このユーザー グループに一時ディレクトリに対する読み取りおよび書き込み権限がないかどうかを確認してください。
許可は得ていますか? ! !
それは権限の問題であるはずです。また、PHP が tmp ディレクトリを操作することは安全ではないため、デフォルトでは絶対に許可されていません。
なぜ安全ではないと言われているのですか?なぜなら、書き込みができるなら、読み取りもできなければなりません(PHPの場合、権限を設定しないと、基本的に書き込みだけができて読み取れないという状況はありません)... この場合、ハッカーは多くの情報を読み取ることができます
単純かつ大まかなテスト: chmod -R 777 /tmp
次に、それが書けるかどうかを確認します。
実行中のブラウザ / は Web サイトのルート ディレクトリを指します。 コマンド ライン / はサーバーのルート ディレクトリを指します。 Web サイトのルート ディレクトリに /tmp/log.txt ファイルがあるかどうかを確認してください。