J'essaye d'écrire un script d'installation pour un système sur lequel j'ai travaillé. Le script copie certains fichiers par défaut d'un emplacement à un autre et crée divers dossiers pour eux. J'ai un peu de plaisir à travailler, mais le seul problème est que lorsque je me connecte via FTP, je ne peux pas éditer ou supprimer les fichiers que PHP a déplacés pour moi.Autorisations de fichier PHP ... l'obtenir "écrire"?
Si je me connecte via le terminal que je peux heureusement "chmod -R 777 sudo [dir]" et le problème est résolu, la question est donc:
Qu'est-ce que je manque à la fin de PHP?
ma fonction des autorisations est la suivante:
function set_permissions($file)
{
if (file_exists($file)):
chmod($file,0777);
endif;
}
Je comprends qu'il est idéal pas à 100% pour définir les autorisations à 777, mais je suis simplement en train de réaliser le résultat de pouvoir modifier les fichiers via FTP , après PHP les a déplacés pour moi.
J'espère avoir été assez clair. Cela me laisse perplexe maintenant de sorte que toute aide est appréciée :)
Tom
modifier: L'ensemble du processus est la suivante:
mkdir($root_dir, 0777);
mkdir($images_dir, 0777);
if (!copy($orig_logo, $new_logo))
{
echo "failed to copy $orig_logo...";
}
// see function above for details on set_permissions...
$this->set_permissions($new_logo);
}
(Tous les chemins sont corrects aussi)
éditer: Le fichier avant que je me connecte via le terminal a les permissions suivantes:
-rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01:45 base.css
Le fichier après que je login et le changer a:
-rwxrwxrwx 1 www-data www-data 2739 2009-08-26 01:45 base.css
Le système est un système de gestion de contenu qui vous permet d'éditer et de supprimer des fichiers dans la zone d'administration, et assez curieusement, cela fonctionne bien . Il semble que les fichiers sont en quelque sorte verrouillés à partir de quelqu'un d'autre que Apache ... mais les informations du fichier suggèrent le contraire. C'est étrange ...
désolé j'aurais dû mentionner que les répertoires que je déplace les fichiers ont également des autorisations qui leur sont appliquées. Avant de déplacer les fichiers dans les répertoires, je crée les répertoires en utilisant les éléments suivants: mkdir ($ default_dir, 0777); Espérons que cela aide ... – Tisch
Aucune ACL en vigueur? –
désolé d'être épais? ACL? – Tisch