Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours703

répondre à tous(7)je répondrai

  • PHP中文网

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

    Le répertoire /tmp doit avoir les autorisations maximales. N'y a-t-il pas de problème d'autorisation ? Ouvrez le message d'erreur et voyez le message d'erreur

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:05:18

    Tout d'abord, confirmez les autorisations du dossier pour autoriser l'écriture, puis

    <?php
    echo file_put_contents($_SERVER['DOCUMENT_ROOT']."/tmp/log.txt", "Hello world everyone.");
    文件路径 如果不加 $_SERVER['DOCUMENT_ROOT'] 的话 要写成 "./tmp/log.txt" 这样  你在试试吧

    répondre
    0
  • 巴扎黑

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

    Questions des utilisateurs ? On estime que vous êtes l'utilisateur root sous la ligne de commande, l'exécution peut donc réussir. Vérifiez si votre répertoire Web appartient à un autre groupe d'utilisateurs et si ce groupe d'utilisateurs ne dispose pas d'autorisations de lecture et d'écriture sur le répertoire temporaire.

    répondre
    0
  • 怪我咯

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

    Avez-vous l'autorisation ? ! !

    répondre
    0
  • 给我你的怀抱

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

    Cela devrait être un problème d'autorisations. Il est également dangereux pour PHP d'exploiter le répertoire tmp, ce n'est donc certainement pas autorisé par défaut.
    Pourquoi est-il dit que c'est dangereux ? Parce que si vous savez écrire, vous devez être capable de lire (pour PHP, il est fondamentalement impossible de se contenter d'écrire mais pas de lire sans définir les autorisations)... Dans ce cas, les pirates peuvent lire beaucoup d'informations

    répondre
    0
  • 巴扎黑

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

    Test simple et brut : chmod -R 777 /tmp

    Ensuite, voyez si cela peut être écrit.

    répondre
    0
  • 習慣沉默

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

    Le navigateur en cours d'exécution / fait référence au répertoire racine du site Web. La ligne de commande / fait référence au répertoire racine du serveur. Veuillez vérifier s'il existe un fichier /tmp/log.txt dans le répertoire racine du site Web.

    répondre
    0
  • Annulerrépondre