Salut à tous ,
J'ai remarqué que comme moi pas mal de gens chez infomaniak avez des problèmes de permissions et été souvent obligé de passer en 777 les répertoires. En parcourant le F.A.Q d'infomaniak j'ai trouver sa:
Voilà j'espère que sa servira à certain
J'ai remarqué que comme moi pas mal de gens chez infomaniak avez des problèmes de permissions et été souvent obligé de passer en 777 les répertoires. En parcourant le F.A.Q d'infomaniak j'ai trouver sa:
Lors de l'installation du CMS Joomla, aucun répertoire du FTP n'est modifié au niveau de ses permissions car cela n'est pas nécessaire pour une utilisation de base.
Lorsque vous tentez d'installer un composant .zip vous rencontrez une erreur comme JFolder::create: Ne peut pas créer le dossier ou Attention ! - Le fichier n'a pas pu être déplacé.
Plutôt que de modifier les permissions de chaque répertoire nécessaire un à un ou de rendre le site vulnérable en modifiant tous les dossiers et les sous-dossiers, voici un script que vous pouvez exécuter et qui modifiera automatiquement le strict minimum sur le serveur.
Actions à effectuer
Placez le code dans un fichier .php (par exemple votrefichier.php) à la racine de votre hébergement (dans le dossier /web)
Personnalisez les 3 lignes $ftp_server + $ftp_user + $ftp_pass avec vos données FTP (pas besoin d'avoir activé la couche FTP de Joomla)
Personnalisez la ligne $ftp_path si vous avez installé Joomla dans un dossier (/web/joomla par exemple) sinon laissez /web
Exécutez le script en vous rendant sur la page selon le nom que vous aurez donné (www.votresite.com/votrefichier.php)
Une fois tous les messages OK obtenu, effacez ce fichier
Rendez-vous à nouveau sous Aide > Infos système et constatez la différence. Ces répertoires sont maintenant modifiables (le CMS peut écrire dedans lorsque vous uploaderez un nouveau composant)
<?php
if ($_GET['chmod']) { $ftp_chmod = $_GET['chmod']; } else { $ftp_chmod = "0777"; }
echo "chmod=".$ftp_chmod."<br/>";
$ftp_server='www.votre-domaine.ici';
$ftp_user='votre-user-ici';
$ftp_pass='votre-mot-de-passe-ici';
$ftp_path='/web';
$conn_id = @ftp_connect("$ftp_server");
ftp_login($conn_id, $ftp_user, $ftp_pass);
if ($conn_id === false) { die('Erreur. Vérifiez les accès FTP que vous avez inscrits dans le code source de ce fichier.'); }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/components/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/en-GB/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/fr-FR/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/overrides/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/manifests/files/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/manifests/libraries/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/manifests/packages/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/modules/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/templates/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/components/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/images/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/images/banners/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/images/sampledata/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/en-GB/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/fr-FR/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/overrides/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/libraries/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/media/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/modules/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/authentication/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/captcha/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/content/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/editors/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/editors-xtd/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/extension/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/finder/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/quickicon/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/search/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/system/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/user/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/templates/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/cache/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/cache/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/logs/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/tmp/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
ftp_close($conn_id);
?>
Lorsque vous tentez d'installer un composant .zip vous rencontrez une erreur comme JFolder::create: Ne peut pas créer le dossier ou Attention ! - Le fichier n'a pas pu être déplacé.
Plutôt que de modifier les permissions de chaque répertoire nécessaire un à un ou de rendre le site vulnérable en modifiant tous les dossiers et les sous-dossiers, voici un script que vous pouvez exécuter et qui modifiera automatiquement le strict minimum sur le serveur.
Actions à effectuer
Placez le code dans un fichier .php (par exemple votrefichier.php) à la racine de votre hébergement (dans le dossier /web)
Personnalisez les 3 lignes $ftp_server + $ftp_user + $ftp_pass avec vos données FTP (pas besoin d'avoir activé la couche FTP de Joomla)
Personnalisez la ligne $ftp_path si vous avez installé Joomla dans un dossier (/web/joomla par exemple) sinon laissez /web
Exécutez le script en vous rendant sur la page selon le nom que vous aurez donné (www.votresite.com/votrefichier.php)
Une fois tous les messages OK obtenu, effacez ce fichier
Rendez-vous à nouveau sous Aide > Infos système et constatez la différence. Ces répertoires sont maintenant modifiables (le CMS peut écrire dedans lorsque vous uploaderez un nouveau composant)
<?php
if ($_GET['chmod']) { $ftp_chmod = $_GET['chmod']; } else { $ftp_chmod = "0777"; }
echo "chmod=".$ftp_chmod."<br/>";
$ftp_server='www.votre-domaine.ici';
$ftp_user='votre-user-ici';
$ftp_pass='votre-mot-de-passe-ici';
$ftp_path='/web';
$conn_id = @ftp_connect("$ftp_server");
ftp_login($conn_id, $ftp_user, $ftp_pass);
if ($conn_id === false) { die('Erreur. Vérifiez les accès FTP que vous avez inscrits dans le code source de ce fichier.'); }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/components/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/en-GB/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/fr-FR/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/language/overrides/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/manifests/files/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/manifests/libraries/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/manifests/packages/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/modules/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/templates/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/components/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/images/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/images/banners/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/images/sampledata/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/en-GB/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/fr-FR/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/language/overrides/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/libraries/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/media/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/modules/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/authentication/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/captcha/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/content/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/editors/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/editors-xtd/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/extension/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/finder/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/quickicon/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/search/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/system/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/plugins/user/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/templates/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/cache/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/administrator/cache/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/logs/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
if (ftp_site($conn_id, 'CHMOD '.$ftp_chmod.' '.$ftp_path.'/tmp/')) { echo "OK<br/>"; } else { echo "pas OK<br/>"; }
ftp_close($conn_id);
?>
Commentaire