recherche

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

php - file_put_contents ne fonctionne pas sur Apache

Code

<?php

echo file_put_contents("/tmp/log.txt", "Bonjour tout le monde.");

Le code est très simple, et il montre le succès lors de son exécution sur le navigateur et la ligne de commande, comme : 21. Mais une fois le navigateur exécuté, /tmp/log.txt n'existe pas. Sous la ligne de commande, /tmp/log.txt a été créé avec succès (pas de problème pour les tests des utilisateurs root et Apache). Très confus. . . . . . .

Système d'exploitation : centos7

uname -r : 3.10.0-514.2.2.el7.x86_64

Environnement

Ils sont tous installés via yum install, yum install httpd php5

黄舟黄舟2839 Il y a quelques jours763

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