La fonction fopen() ne fonctionne pas en PHP (Apache, Linux Mint)
P粉722409996
P粉722409996 2023-08-13 14:14:43
0
1
524
<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粉722409996
P粉722409996

répondre à tous(1)
P粉107772015

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é !

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal