La colonne tutorielle suivante de laravel vous présentera le problème du décalage d'application causé par une configuration incorrecte du fichier hôte (environnement de développement Laravel-Sail, je l'espère). sera utile aux amis qui en ont besoin!
Aujourd'hui, j'ai extrait le code source d'un projet et utilisé le nouvel environnement de développement Laravel-Sail. L'environnement de développement précédent de Homestead n'est désormais utilisé que comme sauvegarde. Tout s'est bien passé au début, y compris l'installation des dépendances, le démarrage du conteneur et la migration des données. Ensuite, j'ai configuré avec plaisir le nom de domaine de développement dans le fichier hosts :
127.0.0.1 devocus.test
Ouvrez le navigateur et visitez : http://devocus.test:8016
, j'ai pensé à tout. se passait bien, mais j'ai constaté que la page se chargeait toujours et qu'il fallait près de 30 secondes pour que l'interface complète se charge. J'étais perplexe. J'ai utilisé l'environnement de développement Laravel-Sail pour plusieurs autres projets. Quel est le problème avec ce projet ?
Ensuite, j'ai ouvert les outils de développement du navigateur et j'ai constaté que toutes les requêtes prenaient plus de 30 secondes. Ai-je rencontré un problème d'E/S de fichier ? Mais mon projet est placé dans le sous-système Ubuntu. Problème de réseau ? Les autres éléments sont tout à fait normaux. J'ai essayé toutes les solutions possibles, en modifiant les autorisations des fichiers, en fermant le ladder, en supprimant et en recréant le conteneur, etc., mais en vain.
J'ai donc installé Telescope et vérifié les détails de chaque demande. L'ouverture de Telescope était également très lente. J'ai attendu environ une minute avant que l'interface de Telescope ne soit enfin chargée. Mais les résultats de la requête m'ont beaucoup surpris :
Le télescope a montré que la vitesse de traitement de chaque requête était très rapide, et la requête de données était également très rapide. ..
Nous l'avons donc essayé sur l'ordinateur d'un collègue. L'environnement de développement était Laravel-Sail. De façon inattendue, l'accès sur son ordinateur était également très lent. Cela a directement conduit notre réflexion vers "il y a un". problème avec le code du projet", j'ai donc passé une matinée entière à comparer et vérifier soigneusement divers fichiers de configuration et fichiers d'environnement, ainsi qu'à mettre à niveau Laravel et diverses versions dépendantes. Mais chaque fois que j'ouvre l'application dans le navigateur avec de grandes attentes, elle se bloque toujours et me fait douter de ma vie, et les enregistrements du journal sont tous normaux. Utilisez ensuite un moteur de recherche pour essayer de trouver une solution à ce problème. Il n'y a aucun résultat dans les recherches en chinois ou en anglais. Une matinée s'est écoulée et je n'avais toujours pas résolu ce problème, et même un sentiment de désespoir m'est venu au cœur.
Finalement, j'ai décidé d'aller déjeuner pour me détendre d'abord. En revenant du dîner, j'ai repensé à cette question. Diverses réponses que j'avais cherchées dans ma tête ont clignoté une à une, et tout à coup un mot "a volé" devant mes yeux : hosts
.
De retour à mon poste de travail, j'ai allumé l'ordinateur et j'ai pensé à utiliser l'IP pour accéder directement à l'application pour voir la situation, j'ai donc entré http://127.0.0.1:8016
dans le navigateur et l'interface s'est ouverte rapidement j'étais probablement un peu. confus, alors j'ai ouvert le fichier hosts et j'ai pensé Essayez de changer le nom de domaine :
# 127.0.0.1 devocus.test 127.0.0.1 ifocus-dev.test
Ensuite, ouvrez le navigateur et entrez http://ifocus-dev.test:8016
L'application s'ouvrira rapidement et très facilement. Le problème est résolu de manière inexplicable.
Mais quel est le problème ? J'ai rouvert le fichier hosts, vérifié attentivement et constaté que la résolution du même nom de domaine que j'avais fait auparavant se trouvait tranquillement dans le fichier hosts. Lorsque j'ai migré l'environnement de développement de Homestead vers Laravel-Sail, j'ai oublié de modifier le fichier hosts. fichier hosts :
... 192.168.10.10 devocus.test ... # 127.0.0.1 devocus.test 127.0.0.1 ifocus-dev.test
Dans le fichier hosts, que se passera-t-il si le même nom de domaine est résolu en deux IP ? J'ai cherché sur le moteur de recherche et j'ai trouvé la réponse :
L'ordinateur recherche l'IP dans le fichier hosts par de haut en bas Pour un même nom de domaine, prenez le. première IP. Si la première IP est bloquée, elle passera à la deuxième IP ou même à la Nième IP. Cependant, cette méthode ne peut pas obtenir l'effet d'équilibrage de charge, mais elle peut augmenter la probabilité d'ouverture du site Web.
Depuis que j'ai résolu devocus.test
deux adresses IP : 192.168.10.10 et 127.0.0.1, lorsque j'ai ouvert http://devocus.test
dans le navigateur, j'ai d'abord accédé à 192.168.10.10, mais parce que ma propriété est fermé, l'accès doit donc avoir échoué. Ce processus dure environ 30 secondes, puis le système continue de rechercher d'autres adresses IP dans le fichier hosts et n'ouvre la page Web qu'après avoir trouvé et accédé à 127.0.0.1. Parce que chaque demande doit passer par ce processus, j’ai l’impression que le système est très bloqué. À ce stade, le problème qui me préoccupait a été résolu.
Tout le monde doit donc prêter plus d'attention à ces problèmes subtils lors du développement de projets. De petits problèmes peuvent souvent causer d'énormes problèmes. Même un vétéran bien-pensant comme moi tombera dans un gouffre profond. L'industrie du logiciel est en réalité une industrie pratique qui nécessite de marcher constamment sur des fosses, de creuser des fosses et de les remplir.
Mais après y avoir réfléchi, si j'avais l'environnement Homestead ouvert à ce moment-là, je serais peut-être encore plus troublé.
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!