php - file_put_contentsがApacheで動作しない
黄舟
黄舟 2017-05-16 13:03:18
0
7
757

コード

<?php

echo file_put_contents("/tmp/log.txt", "皆さん、こんにちは。");

コードは非常に単純で、ブラウザとコマンド ラインで実行すると成功したことが 21 のように表示されます。しかし、ブラウザを実行すると、/tmp/log.txt は存在​​しません。コマンドラインで、/tmp/log.txt が正常に作成されました (root および Apache ユーザーのテストでは問題ありません)。とても混乱しています。 。 。 。 。 。 。

オペレーティング システム: centos7

uname -r: 3.10.0-514.2.2.el7.x86_64

環境

これらはすべて、yum install、yum install httpd php5 を通じてインストールされます

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(7)
Ty80

/tmp ディレクトリには最大の権限が必要です。権限に問題はありませんか? エラー メッセージを開いて確認してください。

いいねを押す +0
phpcn_u1582

まず、書き込みを許可するフォルダー権限を確認してから

リーリー
いいねを押す +0
巴扎黑

ユーザーからの質問?コマンド ラインでは root ユーザーであると推定されるため、実行は成功する可能性があります。 Web ディレクトリが別のユーザー グループに属していないか、このユーザー グループに一時ディレクトリに対する読み取りおよび書き込み権限がないかどうかを確認してください。

いいねを押す +0
刘奇

許可は得ていますか? ! !

いいねを押す +0
给我你的怀抱

それは権限の問題であるはずです。また、PHP が tmp ディレクトリを操作することは安全ではないため、デフォルトでは絶対に許可されていません。
なぜ安全ではないと言われているのですか?なぜなら、書き込みができるなら、読み取りもできなければなりません(PHPの場合、権限を設定しないと、基本的に書き込みだけができて読み取れないという状況はありません)... この場合、ハッカーは多くの情報を読み取ることができます

いいねを押す +0
巴扎黑

単純かつ大まかなテスト: chmod -R 777 /tmp

次に、それが書けるかどうかを確認します。

いいねを押す +0
習慣沉默

実行中のブラウザ / は Web サイトのルート ディレクトリを指します。 コマンド ライン / はサーバーのルート ディレクトリを指します。 Web サイトのルート ディレクトリに /tmp/log.txt ファイルがあるかどうかを確認してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート