Maison  >  Article  >  outils de développement  >  Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

藏色散人
藏色散人avant
2022-01-05 15:43:284837parcourir

La colonne tutorielle suivante de phpstorm vous présentera comment déboguer des projets PHP dans Docker avec PHPStorm. J'espère qu'elle sera utile aux amis qui en ont besoin !

Cette machine a été développée à l'aide de Docker. Pour ceux qui sont habitués au débogage, placer PHP dans un conteneur Docker ajoute un autre niveau de difficulté.

Bien sûr, cela ne s'applique que lorsque vous ne savez pas encore comment le configurer. Une fois que vous avez compris, c'est en fait une chose simple, avec presque aucune différence de difficulté par rapport à la configuration locale.

1 Environnement

Avant de commencer, faisons quelques hypothèses environnementales :

  • Docker est installé sur cette machine
  • Il y a un conteneur PHP avec l'extension xdebug installée
  • Le répertoire du code sur cette machine est : /Users/gary/dnmp/www/localhost/Users/gary/dnmp/www/localhost
  • 代码映射到容器目录:/var/www/html/localhost
  • 项目使用域名localhost,并在主机hosts和nginx配置中绑定
  • PHP-FPM通过9000端口与nginx容器/应用连接

这里的域名不一定是localhost,如果你用了Laravel、Yii、Thinkphp等框架,那一般会用类似 mydev.comdev.awaimai.comawaimai.dev的域名,本文一样适用。

2 php.ini配置

主要配置如下:

[XDebug]
 xdebug.remote_enable = 1
 xdebug.remote_handler = "dbgp"
 xdebug.remote_host = host.docker.internal

这几行的作用是:

  • 开启xdebug远程调试
  • 调试方式用dggp
  • 远程地址用host.docker.internal,也就是docker容器所在的主机。如果主机是Linux系统,host.docker.internal可能用不了,需要改用PHP容器和主机同一虚拟网络下的IP,在主机中用docker network inspect dnmp_default命令可找到,其中dnmp_default是容器的所在的网络。

这里我们没有配置xdebug.remote_port,因为xdebug默认使用9000,与我们FPM一致了,不用再设置。如果FPM使用其他端口,remote_port也要改成相应端口。

配置完成后,重启PHP容器

2 PHPStorm配置

1 菜单选择 RunEdit Configurations

Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

2 在弹出的框中点左上角的 + 号,选择 PHP Web Page

Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

3 现在还没有任何的服务器,我们要加一个。如下,点击 server 右侧的 ... 按钮。

Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

4 然后就是配置服务器的信息,这里就是docker容器了。

  • Name:服务器名称,随便写都可以。
  • Host:域名,这里我用localhost,如果你的域名类似awaimai.dev,那就填awaimai.dev
  • Port:连接服务器的端口。这里我们通过nginx连到PHP,用的是80端口,所以这里保留默认80
  • Debugger:用Xdebug。
  • Use path mappings:这里一定勾选,然后填写本地代码与容器代码的映射关系。如果用的是框架,这里就填框架的根目录。
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

然后点击OK保存。

5 返回后,

  • Name:填写一个配置名称,随便填,这里我们调试首页,填Index
  • Server:下拉选择服务器,这里我们选择刚加的localhost
  • Start URL:起始调试的页面,/表示首页,如果是其他页面,比如/home/index,那就填/home/index
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

点击OK

Le code est mappé sur le répertoire du conteneur : /var/www/html/localhost🎜🎜Le projet utilise le nom de domaine localhost code>, et liez-le dans les hôtes hôtes et la configuration nginx🎜🎜PHP-FPM se connecte au conteneur/application nginx via le port <code>9000🎜 🎜Le nom de domaine ici n'est pas nécessairement localhost , si vous utilisez Laravel, Yii, Thinkphp et d'autres frameworks, vous utiliserez généralement quelque chose comme mydev.com, dev .awaimai.com, awaimai Cet article s'applique également aux noms de domaine .dev. 🎜🎜2 configuration php.ini 🎜🎜🎜La configuration principale est la suivante : 🎜rrreee🎜Les fonctions de ces lignes sont : 🎜🎜🎜🎜Enable 🎜xdebug débogage à distance🎜🎜Utiliser dggp pour le débogage 🎜🎜L'adresse distante utilise host.docker.internal, qui est l'hôte sur lequel se trouve le conteneur Docker. Si l'hôte est un système Linux, host.docker.internal ne peut pas être utilisé. Vous devez utiliser l'adresse IP sous le même réseau virtuel du conteneur PHP et de l'hôte. Utilisez docker network. inspect dnmp_defaultdans la commande host. > peut être trouvée, où dnmp_default est le réseau où se trouve le conteneur. 🎜🎜Nous n'avons pas configuré xdebug.remote_port ici, car xdebug utilise 9000 par défaut, ce qui est cohérent avec notre FPM, et il n'est pas nécessaire de définir ça recommence. Si FPM utilise d'autres ports, remote_port doit également être remplacé par le port correspondant. 🎜🎜Une fois la configuration terminée, 🎜redémarrez le conteneur PHP🎜. 🎜🎜2 Configuration PHPStorm 🎜🎜🎜1 Sélection du menu 🎜Exécuter🎜 – 🎜Modifier les configurations🎜, 🎜
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm
🎜2 dans la pop-up box Cliquez sur le signe + dans le coin supérieur gauche et sélectionnez Page Web PHP. 🎜
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm
🎜3 Il n'y a pas encore de serveur, nous devons en ajouter un. Comme indiqué ci-dessous, cliquez sur le bouton ... sur le côté droit du serveur. 🎜
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm
🎜4 Ensuite il y a les informations pour configurer le serveur, voici le conteneur docker. 🎜🎜🎜🎜Nom : 🎜Nom du serveur, vous pouvez écrire ce que vous voulez. 🎜🎜🎜Hôte : 🎜Nom de domaine, ici j'utilise localhost, si votre nom de domaine est similaire à awaimai.dev, alors remplissez awaimai.dev code>. 🎜🎜🎜Port : 🎜Le port pour se connecter au serveur. Ici, nous nous connectons à PHP via nginx, en utilisant le port <code>80, donc le 80 par défaut est conservé ici. 🎜🎜🎜Débogueur : 🎜Utilisez Xdebug. 🎜🎜🎜Utiliser les mappages de chemins🎜 : ici 🎜doit🎜 être coché, puis remplir la relation de mappage entre le code local et le code du conteneur. Si vous utilisez un framework, remplissez ici le répertoire racine du framework. 🎜
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm
🎜 Cliquez ensuite sur OK pour enregistrer. 🎜🎜5 Après le retour, 🎜🎜🎜🎜Nom : 🎜Remplissez un nom de configuration, remplissez-le avec désinvolture, ici nous débogueons la page d'accueil, remplissons Index. 🎜🎜🎜Serveur : 🎜Déroulez vers le bas pour sélectionner le serveur. Ici, nous choisissons le localhost nouvellement ajouté. 🎜🎜🎜URL de démarrage : 🎜La page pour démarrer le débogage, / signifie la page d'accueil, s'il s'agit d'une autre page, comme /home/index, alors remplissez /home /index. 🎜
Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm
🎜Cliquez sur OK pour enregistrer. 🎜

3 Démarrez le débogage

Retournez à la fenêtre de code, placez un [point d'arrêt] devant le code, puis cliquez sur le [bouton Debug], comme suit :

Apprenez étape par étape à déboguer des projets PHP dans Docker avec phpstorm

PHPStorm s'ouvrira automatiquement le navigateur et attendez le programme. Lorsque l'exécution atteint le point d'arrêt, elle s'arrête automatiquement.

Ici, nous pouvons voir les variables globales, la pile d'appels et les variables temporaires en PHP,

et pouvons déboguer en une seule étape, ce qui est très pratique.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer