Mon serveur est dans/var/www/html J'ai un script php dans /var/www/html/fileio_test/io_test.php
<?php
$logging = <<< LOG
This is a test
LOG;
$testfile = fopen('/home/djameson/test.txt', 'a');
fwrite ($testfile, $logging);
fclose($testfile);
?>
Lorsque j'essaie d'exécuter ce script, je reçois
Warning: fopen(/home/djameson/test.txt): failed to open stream: Permission denied in /var/www/html/fileio_test/io_test.php on line 7
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 8
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 9
Comment puis-je laisser Apache écrire dans mon répertoire personnel? Le serveur fonctionne sur Fedora 20.
En tant que votre fichier résidant dans votre répertoire personnel, je suggérerais l’une des approches suivantes.
Donnez 0777 la permission de se déposer.
chmod 0777 /home/djameson/test.txt
Changez la propriété en utilisateur Apache www-data et donnez l’autorisation en écriture au propriétaire.
Sudo chown www-data:www-data /home/djameson/test.txt
chmod 0744 /home/djameson/test.txt
Ajoutez votre utilisateur au groupe www-data ou vice-verse ajoutez l'utilisateur www-data à votre groupe. Et puis la permission d'écriture du groupe.
Sudo usermod -a -G www-data djameson
chmod 0764 /home/djameson/test.txt
REMARQUE: Je suppose que le nom d'utilisateur et le nom du groupe Apache sont respectivement www-data et www-data. Vous devez modifier votre nom d'utilisateur/nom de groupe Apache en conséquence.
Par défaut, Apache sur Ubuntu s'exécute en tant que www-data.
Supposons que votre dossier se trouve dans / var/www/mysite.
Tu peux le faire:
chown -R www-data:www-data /var/www/mysite
chmod -R og-r
/var/www/mysite
Après cela,www-data
(le serveur Web) aura accès complet aux fichiers du site, tandis que les autres utilisateurs non root auront pas d'accès du tout.Si vous souhaitez autoriser certains utilisateurs à accéder au site, vous pouvez créer le dossier lisible par un groupe et ajoutez ces utilisateurs au groupe www-data.
Définissez les autorisations correctes sur vos fichiers Apache
Pour que ce fichier soit lisible à la fois par l'utilisateur "djameson" et par le serveur Web, vous devez faire 4 choses:
chown
) du fichier afin qu'il soit détenu par l'utilisateur Django et le groupe que vous venez de configurer.chmod
) permettent l’autorisation de lecture du groupe.si certains de vos fichiers se trouvent en dehors du répertoire www et que vous souhaitez fournir un accès à des fichiers hors de l'environnement Apache, vous pouvez utiliser chmod -R o + rx
Ce qui précède donnerait à "d'autres utilisateurs (y compris l'utilisateur Apache)" la permission de lire/exécuter des fichiers