ホームページ  >  に質問  >  本文

php - file_put_contents在apache上失效

代码

<?php

echo file_put_contents("/tmp/log.txt", "Hello world everyone.");

代码很简单,在浏览器和命令行上运行都显示成功,为: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

黄舟黄舟2713日前704

全員に返信(7)返信します

  • PHP中文网

    PHP中文网2017-05-16 13:05:18

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

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:05:18

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

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:05:18

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

    返事
    0
  • 怪我咯

    怪我咯2017-05-16 13:05:18

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

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:05:18

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

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:05:18

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

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

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:05:18

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

    返事
    0
  • キャンセル返事