Que dois-je faire si DEDECMS5.5 ne peut pas collecter de données sous un hôte Linux étranger ?
J'ai encore joué avec dedecms récemment pour voir à quel point la fonction dedecms5.5 est puissante. Je l'ai donc téléchargé sur mon hébergeur Dreamhost et j'ai commencé à l'exécuter avec un nom de domaine temporaire. Après avoir joué avec, j'ai découvert que je ne pouvais pas le récupérer, et même les images distantes et les ressources permettant de télécharger des articles publiés par DEDE ne pouvaient pas être utilisées. Bizarre.
Étude recommandée : Dreamweaver cms
Ensuite, je me suis souvenu que j'avais vu un article avant de dire que l'hôte de Dreamhost avait désactivé allow_url_fopen, ce qui entraînait l'incapacité à collectionner. J'ai donc cherché et cherché sur Internet et trouvé plusieurs articles dans lesquels j'ai moi-même compilé PHP pour permettre à Dreamhost de prendre en charge la collecte. J'ai donc suivi l'introduction sur le site officiel de Dreamhost, et via ssh, après avoir longtemps lutté, j'ai finalement terminé de compiler mon propre php. J'ai couru avec plaisir vers le système pour le récupérer, mais cela a toujours échoué. Téléchargez une sonde et voyez que allow_url_fopen est bien activé, ce qui est étrange. J'ai continué sur Google et des tests répétés ont prouvé plus tard que Dreamhost activait effectivement allow_url_fopen par défaut. Les articles introduits sur Internet étaient essentiellement des articles de 2008 ou avant, donc Dreamhost a dû trouver comment lever cette restriction.
Après avoir lutté pendant deux jours, je n'y croyais pas. J'ai téléchargé plusieurs Supesite et php168, et l'installation et la collecte ont été terminées en une seule fois. Ma chérie, il s'avère que Dédé n'a pas pu le récupérer lui-même. Je me demandais. Après avoir effectué une recherche sur le site officiel de Dede, j'ai également découvert que certains internautes ont également signalé qu'ils ne pouvaient pas collecter de données sur des hôtes Linux étrangers. Depuis, j'ai enfin trouvé une solution, qui consiste simplement à modifier un fichier. J'ai oublié où j'ai lu l'article dans lequel j'ai trouvé la solution à l'origine. C'est juste un fichier modifié sur cette machine, je voudrais remercier ce type.
Le fichier problématique se trouve dans le fichier include/dedehttpdown.class.php Après l'avoir recouvert de la pièce jointe fournie dans cet article, vous pouvez utiliser librement la fonction de collection et utiliser le bouton "Télécharger" lors de la publication d'articles. Fonction "Images et ressources distantes". Après comparaison de ce fichier, il s'est avéré que deux endroits avaient été modifiés.
1. Commentez le code à la ligne 280, comme suit :
Le code est le suivant :
// fputs($this->m_fp, $headString);
2. Recherchez le code à la ligne 304 et remplacez-le. avec le code suivant :
Le code est le suivant :
$headString .= "Connection: Close\r\n\r\n"; //fputs($this->m_fp,"Connection: Close\r\n\r\n");
3. Trouvez le code à la ligne 308 et remplacez-le par le code suivant :
Le code est comme suit :
$headString .= "\r\n"; //fputs($this->m_fp,"\r\n");
4. Le code sur la ligne 315" //Obtenir les informations sur l'état de l'en-tête de réponse" Insérez le code suivant ci-dessus :
Le code est le suivant :
fputs($this->m_fp, $headString);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!