La fonction fopen() ne fonctionne pas en PHP (Apache, Linux Mint)
P粉722409996
2023-08-13 14:14:43
<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>
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 :
Et ça a marché !