Je suis un débutant en php, mysql. J'ai écrit un script hello.php que je tente de copier dans le répertoire/var/www (et que je veux ouvrir plus tard via le navigateur Web). Le problème avec le même problème est que je ne suis pas autorisé à enregistrer/écrire des fichiers dans/var/www alors que je suis la racine. J'ai essayé d'implémenter les étapes dans this question, mais l'erreur suivante s'affiche lorsque je traite la troisième ligne
find /var/www/ -type f -exec chmod g+w '{}' ';'
chmod: changing permissions of `/var/www/index.html': Operation not permitted
Je sais que le lien symbolique est également une option. Je voudrais pouvoir écrire/copier des fichiers directement dans le répertoire/var/www /.
Des suggestions sur ce qui ne va pas?
il faut compter sur * les permissions unix, obtenir un accès root, par exemple en tapant
Sudo su
[then type your password]
et essayez de faire ce que vous devez faire
Êtes-vous dans un environnement de développement? pourquoi ne pas simplement faire
chown -R user.group /var/www
vous pourrez donc écrire avec votre utilisateur.
Exécuter la commande suivante
Sudo setfacl -R -m u:<user_name>:rwx /var/www
Il va changer les autorisations du répertoire HTML afin que vous puissiez télécharger, télécharger et supprimer les fichiers ou les répertoires
Avez-vous un fichier dans /var/www
appelé hello.php qui a déjà des autorisations? Peut-être que le système ne peut pas remplacer le fichier?
Cependant, l'accès root devrait remplacer tout utilisateur du système.
Avez-vous essayé d'appliquer des autorisations au dossier www
?
Si vous pouvez le faire, essayez ce qui suit:
Sudo chmod -R 777 /var/www
alors fais:
Sudo cp hello.php /var/www
Je ne recommande cela que si vous savez à 100% qu'il est correct de définir des autorisations pour l'ensemble du dossier www
. De ce fait, vous exécutez votre propre serveur de production car la plupart des serveurs d’hébergement live/partagés sont configurés de sorte que le dossier www
ne se trouve pas dans le dossier/var (mais dans le dossier d’accueil de l’utilisateur).
Soyez très prudent lorsque vous faites quelque chose avec le préfixe Sudo, vous pouvez sérieusement endommager votre système si vous le faites mal.
A rencontré un problème similaire aujourd'hui. Je n'ai pas vu ma solution énumérée ici, alors j'ai pensé partager.
La racine n'a pas pu effacer un fichier.
J'ai fait mes recherches. Il s'avère qu'il y a quelque chose appelé un bit immuable.
# lsattr /path/file
----i-------- /path/file
#
Ce bit en cours de configuration empêche même la racine de le modifier/de le supprimer.
Pour enlever ceci j'ai fait:
# chattr -i /path/file
Après cela, je pourrais récupérer le fichier.
Inversement, il est judicieux de savoir si vous souhaitez empêcher la disparition de quelque chose.
:)
Tout d'abord, cela n'a rien à voir avec php. Ceci est un problème d'autorisation Unix. Vous devez vous connecter en tant que superutilisateur (Sudo/su) et taper votre mot de passe, puis essayer cette commande.
$ su
(type password )
\# your command
$ Sudo command
$ (type password)
Cela pourrait également vous aider si vous avez spécifié le système d'exploitation que vous utilisez.
Sudo cp hello.php /var/www/
Quelle sortie obtenez-vous?
Il vous suffit d'écrire Sudo
au lieu de su
.
Ensuite, copiez simplement le fichier PHP dans le var/www/ directory
.
Ensuite, accédez au navigateur et écrivez le Host/test.php
local ou le nom du fichier .php
.
Si rien de ce qui précède ne fonctionne, vous pourriez avoir affaire à un système de fichiers vfat. Utilisez "df" pour vérifier.
Voir http://www.charlesmerriam.com/blog/2009/12/operation-not-permitted-and-the-fat-32-system/ pour plus d'informations.
Tout d’abord, vous devez vous connecter en tant que root, puis aller dans le répertoire/etc et exécuter certaines commandes présentées ci-dessous.
[root@localhost~]# cd /etc
[root@localhost /etc]# vi sudoers
et entrez cette ligne à la fin
kundan ALL=NOPASSWD: ALL
où kundan est le nom d'utilisateur et enregistrez-le. puis essayez de transférer le fichier et d’ajouter Sudo
comme préfixe à la commande à exécuter:
Sudo cp hello.txt /home/rahul/program/
où rahul est le deuxième utilisateur du même serveur.