IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Lancer une commande PHP sur un wiki


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Lancer une commande PHP sur un wiki
    Bonjour,

    J'ai un wiki en ligne (mediaWiki) et je souhaite faire un peu de ménage. Je souhaite donc lancer la commande php deleteArchivedRevisions.php

    Pour ce faire, je lance une connexion Putty en me connectant au ftp en SSH port 22 avec le login/mdp. Cependant j'ai le message d'erreur access denied.

    Le login/mdp sont pourtant bons car je n'ai aucun problème à me connecter au ftp "de manière classique" en port 21 avec Filezilla ou WinSCP par exemple.

    Avez vous une idée ?

    Merci

  2. #2
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut
    hello yokou,
    Sa ne marche pas ainsi sur linux , tu peux avoir un utilisateur qui a les droits sur file zila mais n'as pas de droit pour se connecter en SSH .
    parfois pour des raisons de sécurité on désactive la connexion ssh pour root , tu es obligé de te loger avec un user lamda et des que tu es connecté tu passes en root lorsque le besoin se fait ressentir .
    regarde avec ton admin le compte ssh actif , au besoin essaye les autres comptes en ta possession.
    A+
    www.etech-keys.com
    https://sms.etech-keys.com

    le boiteux qui suit le chemin devance le coureur qui s'en écarte .

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci beaucoup pour ta réponse.
    J'ai contacté le support technique de l'hébergeur et il m'a indiqué que mon offre ne permet pas l'utilisation d'un accès SSH et que je peux upgrader vers une autre offre qui le permet.

    Sinon, il m'invite à me connecter directement sur la base sQL avec l'interface web et à faire le ménage sur les tables qui seraient volumineuses. J'ai identifié une table intitulée "text" qui fait 60 mo et contribue grandement à l'atteinte de la limite de taille de la base sQl. Je pourrais essayer de faire des suppressions mais c'est pas facile de cibler facilement les versions des pages révisées dont je n'ai plus besoin.

    Le fait de lancer une commande php visant à supprimer les "ArchivedRevisions" permet bien d'agir sur les entrées de la base sQl ?

    Merci

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut
    Citation Envoyé par yokou Voir le message
    J'ai identifié une table intitulée "text" qui fait 60 mo et contribue grandement à l'atteinte de la limite de taille de la base sQl.
    Euh, une table de 60 Mo et tu atteins les limites SQL ?!?!! T'es sûr parce que ça me parait vachement limité pour le coup...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Ma base sql est en effet limitée à un seuil très très bas : 70 mo.

    Toute fois cela ne me gène pas car ma base de donnée est assez petite : 200 pages slt sur le wiki.

    Le souci c'est que toutes les révisions de chaque page du wiki sont sauvegardées dans la base de données. Si je pouvais facilement toutes les supprimées en ne gardant bien sûr pour chaque page que la dernière version, cela me permettrait de réduire considérablement la taille de la base et de l'abaisser à moins de 5 mo je pense.

    Visiblement je ne peux pas lancer la commande php qui permet de faire automatiquement ce travail. J'envisage du coup l'autre solution qui est de le faire manuellement de puis l'outil phpmyadmin en travaillant directement sur les tables avec les requêtes select et delete.

    Voici ce que je comprends de l’architecture du wiki lorsque je consulte la base sql. Je vois notamment les tables page, revision et text.
    page à 200 entrées pour 38 ko
    revision à 3300 entrées pour 625 ko
    text à 3500 entrés pour 65 mo

    Je pense que text contient le texte des pages et de leurs révisions.

    Comment faire pour supprimer toutes les révisions ? si je supprime le contenu de la table révision, cela ne va pas supprimer ce vers quoi ça pointe dans text ?

    Merci d'avance

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    non tu dois ruser :
    à chaque consultation tu appelles une routine de nettoyage qui est exécutée avant de renvoyer les données ainsi plus tu consulteras ta base de données et plus elle sera propre.
    Ce système a le grand avantage de laisser quand même en base de données les dernières révisions (mettons les 5 dernières) juste au cas où...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    oui une routine serait intéressante

    J'essaie de réfléchir à une requête qui me renvoie les lignes de la table "text" auxquelles la table "revision" sont associées, pour les supprimer ensuite.

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par yokou Voir le message
    Je pense que text contient le texte des pages et de leurs révisions.

    Comment faire pour supprimer toutes les révisions ? si je supprime le contenu de la table révision, cela ne va pas supprimer ce vers quoi ça pointe dans text ?
    ça dépend de comment ta base est construite. Normalement, il devrait y avoir une clé étrangère entre revision et text, qui peut être configuré en DELETE CASCADE, autrement dit, qui supprime les enfants quand tu supprimes le parent.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Celira Voir le message
    ça dépend de comment ta base est construite. Normalement, il devrait y avoir une clé étrangère entre revision et text, qui peut être configuré en DELETE CASCADE, autrement dit, qui supprime les enfants quand tu supprimes le parent.

    étant donné que j'avais peu de temps pour faire le ménage (sous peine de voir mon accès bloqué par l'hébergeur) et voyant que j'allai un peu galérer à trouver le bon algorithme sous myPHP pour supprimer les pages souhaitées, j'ai fait une "méthode à l'ancienne". J'ai sauvé la centaine de page de mon wiki, supprimé toute la base de donnée, puis j'ai tout reconstruit (environ 4 heures en tout pour toute l'opération). Sans toutes les "archived revision", la base est passée de 70 mo à 5 mo.

    Du coup je passe en résolu. Je garde en tête les pistes que vous m'avez données pour une prochaine fois (notamment DELETE CASCADE).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de lancer une page php sur serveur linux
    Par sikpat dans le forum Apache
    Réponses: 13
    Dernier message: 28/06/2013, 22h12
  2. bouton pour lancer une commande shell sur le web
    Par hamdii dans le forum Langage
    Réponses: 3
    Dernier message: 08/04/2012, 12h56
  3. Réponses: 12
    Dernier message: 05/11/2008, 20h43
  4. [cURL] Lancer une commande curl dans un script php
    Par griese dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 22/03/2007, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo