web-dev-qa-db-fra.com

Apache n'autorisant pas PHP à créer un fichier

J'essaie de sauvegarder des données en utilisant HTML et PHP dans localhost sous Ubuntu. Mes fichiers HTML & PHP fonctionnent très bien, mais lorsque j'utilise des commandes pour ouvrir un fichier dans l'hôte local en utilisant

$myfile = fopen("testfile.txt", "w")

cela ne lui permet pas de le créer, mais le fichier PHP fonctionne et lorsqu'il est défini avec des commandes permettant de générer des variables à partir de PHP, il fonctionne bien.

Comment autoriser PHP à créer des fichiers dans Apache dans localhost Ubuntu.

2
Moithil Biswas

Vous devez autoriser l'utilisateur Apache (généralement www-data) à créer des fichiers dans ce répertoire. Cela peut être accompli en faisant d'Apache le propriétaire du répertoire. Par exemple, si le répertoire s'appelait my-dir, vous ouvriez un terminal et exécutiez ceci:

Sudo chown www-data my-dir
4
Quentin Skousen

Si vous souhaitez modifier tous les dossiers et fichiers de ce répertoire, et pas seulement le répertoire, ajoutez -R comme suit.

Sudo chown -R www-data my-dir
1
Josh McCormack

comme indiqué sur la page par défaut d'Apache2 Ubuntu: Par défaut, Ubuntu n'autorise pas l'accès via le navigateur Web à un fichier autre que ceux situés dans/var/www .... Cela signifie que tout répertoire ou fichier dans lequel vous souhaitez écrire doit se trouver sous/var/www. J'ai raté cette information moi-même et je me suis tiré les cheveux pendant un moment en essayant d'écrire dans/tmp etc.

0
markus-hb