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

La fonction fopen() ne fonctionne pas en PHP (Apache, Linux Mint)

<p>fopen() ne fonctionne pas sur mon serveur local apache2 sous Linux Mint</p> <pre class="brush:php;toolbar:false;"><?php rapport d'erreur (E_ALL); ini_set('display_errors',1); include_once "c&f.php"; fopen("test.txt", 'w');</pre> Le fichier <p>test.txt</code> est créé et je peux l'ouvrir avec Sublime et y écrire. Le répertoire de ce projet particulier est <code>/var/www/site02</code>. Lors de la configuration d'Apache2 après l'installation, j'ai spécifiquement modifié la propriété de ce répertoire spécifique (site02) pour pouvoir lire et écrire des fichiers (sudo chown $USER:$USER -R... vous voyez l'idée). En fait, je peux effectivement lire et écrire avec mon compte utilisateur dans ce répertoire (je peux utiliser librement les commandes cli git dans ce répertoire sans "sudo"). </p> <p>Si j'accède à <code>index.php</code> en utilisant le code mentionné ci-dessus, j'obtiens l'erreur suivante : </p> <blockquote> <p>"Avertissement : fopen(test.txt) : Impossible d'ouvrir le flux : autorisation refusée dans /var/www/site02/index.php, ligne 6"</p> </blockquote> <p>Que s’est-il passé ? J'ai essayé de rechercher le problème sur Google, mais j'ai trouvé des milliers de raisons différentes, ce qui m'a encore plus dérouté. Le problème vient-il du serveur Apache ? Ou dois-je apporter des modifications à la configuration de PHP ? </p>
P粉722409996P粉722409996403 Il y a quelques jours468

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

  • P粉107772015

    P粉1077720152023-08-14 11:21:06

    Donc, après avoir posté cette question, j'ai décidé d'ouvrir /var/www/site02 avec un gestionnaire de fichiers (Thunar) pour vérifier les autorisations sous l'interface graphique. Oui, le propriétaire de ce répertoire est moi et je sais lire et écrire. Le groupe est myusername et les autorisations sont en lecture et en écriture. Mais pour les « autres », il n’y a qu’une seule permission : lire. Je l'ai changé pour lire et écrire. Et testez-le avec du code :

    $fh = fopen("test.txt", 'w') or die("error writing the file");
    
        $text = <<<_END
        line 1
        line 2
        line 3
        _END;
    
        fwrite($fh, $text) or die("error writing the file");
        fclose($fh);
        echo "成功!";

    Et ça a marché !

    répondre
    0
  • Annulerrépondre