gatman Posté 20 Juin 2005 Posté 20 Juin 2005 bonjour, j'administre un site qui comprend une section intranet avec environ 800 utilisateurs des droits particuliers sont associés à chaque utilisateurs, qui peuvent etre membres de plusieurs communautés différentes. cette repartition decoule d'une base de données au format proprietaire que j'importe sous forme de fichier CSV je lance alors un LOOOOOOOOOOONGGGGGGGGG script (que je n'ai pas developpé) qui est censé me relier les utlisateurs à leurs communautés respectives mais ce processus prend treeees longtemps, plusieurs minutes en serveur distant (hebergé chez claranet) et vlan au bout d'un temps X, timeout du serveur et je suis bon pour recommencer... que faire ? 1)changer d'hebergeur. ca, je compte bien mais pas sur que je puisse regler le timeout chez un herbergeur mutualisé.. qq a une super adresse ? 2) faire tourner la base en local pour le script, puis la rapatrier une fois mise à jour c'est super batard ...mais ca peut marcher...a part easy php, qq connait un pack pour faire tourner un serveur apche en local ? merchi par avance
AvenueDuWeb Posté 20 Juin 2005 Posté 20 Juin 2005 Salut, La solution serait peut-être de trouver un hébergeur mutualisé qui te donne un accès SSH, ils sont assez peu nombreux, mais en lançant le script en ssh tu n'aurais pas ce problème de timeout. D'ailleurs peut-être qu'en utilisant les tâches CRON (si ton hébergeur le propose) tu pourrais passer à travers ce problème de timeout. @+
Anonymus Posté 20 Juin 2005 Posté 20 Juin 2005 J'ai fais tourner des programmes plusieurs jours sur des serveurs mutualisés, sans problèmes (OVH, Amen). Essaies de voir si tu programme n'a pas d'autres problèmes, qui crééent le timeout que tu décris. Une alternative à EasyPhp : Wamp. Ca marche bien, on le conseille régulièrement sur ce forum : http://www.wampserver.com/ Anonymus.
gatman Posté 20 Juin 2005 Auteur Posté 20 Juin 2005 Salut, La solution serait peut-être de trouver un hébergeur mutualisé qui te donne un accès SSH, ils sont assez peu nombreux, mais en lançant le script en ssh tu n'aurais pas ce problème de timeout. D'ailleurs peut-être qu'en utilisant les tâches CRON (si ton hébergeur le propose) tu pourrais passer à travers ce problème de timeout. @+ <{POST_SNAPBACK}> je savais bien que j'allais trouver des gens qualifiés en m'inscrivant sur ce forum peux tu me decrire en qq mots ces acces ssh, et les taches cron ? dans tous les cas, je cherche un gros hebergeur (il me faut environ 300 ou 400 mo) qui offre le maximum de services avec backups et cie ca me changera de "Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request." qui arrive au bout de 30 seconde ou 2 minutes
AvenueDuWeb Posté 20 Juin 2005 Posté 20 Juin 2005 peux tu me decrire en qq mots ces acces ssh, et les taches cron ?dans tous les cas, je cherche un gros hebergeur (il me faut environ 300 ou 400 mo) qui offre le maximum de services avec backups et cie ca me changera de "Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request." qui arrive au bout de 30 seconde ou 2 minutes <{POST_SNAPBACK}> Ton script c'est bien un script PHP, non ? Normalement ton hébergeur limite la durée d'un script PHP pour éviter par exemple qu'un script mal programmé fasse une boucle infinie, et qu'ainsi il ne s'arrête jamais. Donc ça c'est tout à fait normal et heureusement d'ailleurs. L'accès SSH, c'est l'accès en ligne de commande, comme si tu administrais le serveur, sauf que tu as des droits limités, mais en lançant ton script PHP par SSH normalement on outrepasse cette limite de timeout. Les tâches Cron, logiquement ce sont des tâches (ou des scripts) que tu programmes pour se lancer à tel jour ou telle heure. Ex, tu as un forum, et tu veux supprimer tous les mois les membres qui ne se sont pas connectés depuis 30 jours, tu fais ton script et tu configures ta tâches cron pour qu'elle se lance le 1er de chaque mois, hop ainsi la suppression de tes membres devient automatique. Cela n'a rien à voir avec ton problème, sauf que normalement les tâches cron sont lancées en SSH (même si tu n'y a pas accès), donc logiquement tu dois pouvoir outrepasser cette limite avec une tâche cron. Je n'ai jamais essayé cependant cette solution, faudra un jour que je regarde si ça fonctionne mais à mon avis ça ne devrait poser aucun problème. Pour les hébergeurs proposant le SSH ils sont rares à cause des problèmes de sécurité, c'est beaucoup plus complexe à sécuriser et à gérer qu'un serveur Apache, mais OVH sur ces grosses offres proposent le SSH : http://www.ovh.com/fr/produits/mutualise.xml (je n'en connais pas d'autres mais en cherchant à mon avis tu peux en trouver quelques autres). Pour ce qui est des tâches Cron, là par contre les hébergeurs sont beaucoup plus nombreux. Voilà. @+
destroyedlolo Posté 21 Juin 2005 Posté 21 Juin 2005 Je ne connais pas ton script mais ... n'est-il pas possible de le scinder en petits morceaux qui prennent moi de temps ?
gatman Posté 21 Juin 2005 Auteur Posté 21 Juin 2005 un jour, je decouperais cette "chose" (version non intégrale) en petites rondelles en gros, ca relie des utilisateurs à des communautés, dont certains sont administrateurs if($tablename=="communautes") { $nomc=unhtmlentities(htmlentities($letab[1])); $nive=$letab[2]; $enti=$letab[3]; $npre=$letab[4]; //on va prendre le fichier administrateurs.csv $columnheadings_admin = 1; $kj=0; $lachaine_aintro=""; for($kj=$columnheadings_admin; $kj<(sizeof($filecontents_admin)); $kj++) { //on regarde chaque ligne ... $lenumidcom_admin=''; $lenumidutil_admin=''; $prend_l_admin=$filecontents_admin[$kj]; //$prend_l_admin=AddSlashes($prend_l_admin); //$letab_l_admin=explode("\",\"",$prend_l_admin); $letab_l_admin=csv_explode($prend_l_admin); $lenumidcom_admin=$letab_l_admin[0]; $lenumidutil_admin=$letab_l_admin[1]; if($lenumidcom_admin == $lenumID && $lenumidutil_admin!="") { // alors on fabrique une chaine if($lachaine_aintro == "") { $lachaine_aintro="".$lenumidutil_admin.""; } else { $lachaine_aintro=$lachaine_aintro.",".$lenumidutil_admin; } } } $nadm=$lachaine_aintro; $nadm=implode("",explode("\n",$nadm)); $nadm=implode("",explode("\t",$nadm)); $nadm=implode("",explode("\r",$nadm)); $columnheadings_u = 1; $ku=0; $lachaine_uintro=""; for($ku=$columnheadings_u; $ku<(sizeof($filecontents_u)); $ku++) { //on regarde chaque ligne ... $prend_l_u=$filecontents_u[$ku]; //$prend_l_u=AddSlashes($prend_l_u); //$letab_l_u=explode("\",\"",$prend_l_u); $letab_l_u=csv_explode($prend_l_u); $lenumidcom_u=''; $lenumidutil_u=''; $lenumidcom_u=$letab_l_u[0]; $lenumidutil_u=$letab_l_u[1]; if($lenumidcom_u == $lenumID && $lenumidutil_u!="") { // alors on fabrique une chaine if($lachaine_uintro == "") { $lachaine_uintro="".$lenumidutil_u.""; } else { $lachaine_uintro=$lachaine_uintro.",".$lenumidutil_u; } } else { // on fait rien ; } } $nutil=$lachaine_uintro; $nutil=implode("",explode("\n",$nutil)); $nutil=implode("",explode("\t",$nutil)); $nutil=implode("",explode("\r",$nutil)); if($nomc!=unhtmlentities(htmlentities("$r[nom_communaute]"))) { $mmi=1; $changement=$changement."nom_communaute='$nomc' ";} if($nive!="$r[niveau]") { $mmi=1; if($changement!="") { $changement=$changement.", niveau='$nive'";} else { $changement=$changement."niveau='$nive'";} } if($enti!="$r[entite]") { $mmi=1; if($changement!="") { $changement=$changement.", entite='$enti'";} else { $changement=$changement."entite='$enti'";} } if($nadm!="$r[numeroID_admin]") { $mmi=1; if($changement!="") { $changement=$changement.", numeroID_admin='$nadm'";} else { $changement=$changement."numeroID_admin='$nadm'";} } if($npre!="$r[numeroID_presid]") { $mmi=1; if($changement!="") { $changement=$changement.", numeroID_presid='$npre'";} else { $changement=$changement."numeroID_presid='$npre'";} } if($nutil!="$r[numeroID_util]") { $mmi=1; if($changement!="") { $changement=$changement.", numeroID_util='$nutil'";} else { $changement=$changement."numeroID_util='$nutil'";} } } je vous epargne le reste....
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant