GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la différence entre xdebug.ini et php.ini

Ubuntu est basé sur Debian. Debian et ses dérivés utilisent une manière quelque peu unique de gérer les extensions pour php et apache.

Parmi les fichiers que vous avez répertoriés :

  • /etc/php/7.0/apache2/conf.d/20-xdebug.ini est un lien symbolique vers /etc/php/7.0/mods-available/xdebug.ini

  • /etc/php/7.0/cli/conf.d/20-xdebug.ini est aussi un lien symbolique vers /etc/php/7.0/mods-available/xdebug.ini

  • Vous pouvez modifier /etc/php/7.0/mods-available/xdebug.ini directement et les modifications que vous apportez s'appliqueront partout où elles sont activées.

Commandes phpenmod et phpdismod sont disponibles pour activer ou désactiver les modules PHP. Ce sont comme a2enmod pour apache, que vous pouvez lire ici. Par exemple, désactivez XDebug avec sudo phpdismod xdebug . Rallumez-le avec sudo phpenmod xdebug . Votre configuration sera préservée lorsque vous l'activerez et la désactiverez car vos modifications sont toujours conservées dans mods-available , bien que PHP ne regarde pas dans ce répertoire pour la configuration. En fait, lorsque vous "désactivez" le module avec phpdismod , il supprime simplement le lien symbolique du dossier approprié afin que le module ne soit pas activé dans la configuration php.

Enfin, /etc/php/7.0/apache2/php.ini est l'emplacement de la configuration à l'échelle du système qui n'est pas un module pouvant être activé ou désactivé.

Ainsi, votre configuration change comme xdebug.remote_port = 9000 devrait aller en /etc/php/7.0/mods-available/xdebug.ini puisqu'il est lié à XDebug. Le mettre aux deux endroits est une mauvaise idée (à cause de la confusion que cela crée), mais le dernier à charger prévaut. C'est pourquoi de nombreux fichiers du répertoire mods-available ont des numéros dans le nom de fichier - ils se chargeront donc dans le bon ordre.

Utilisez le phpinfo() fonction pour obtenir plus d'informations sur les valeurs de configuration chargées et les fichiers ini à partir desquels elles ont été chargées. Par exemple :

$ php -r "phpinfo();"

ou

$ php -r "phpinfo();" | grep xdebug

Cela dépend de la façon dont PHP a été compilé. Jetez un œil à la façon dont PHP a été compilé en examinant la liste des .ini fichiers qu'il charge et d'où ils sont chargés.

À partir de la ligne de commande, saisissez ce qui suit et passez en revue :

$ php -i | grep .ini

Ou, vous pouvez en savoir plus en créant un fichier PHP temporaire et en le visitant dans un navigateur. Assurez-vous simplement de lui donner un nom difficile à trouver et supprimez-le juste après avoir terminé. par exemple, /info-949w30.php . Pourquoi? Parce que ce rapport peut divulguer les chemins d'accès complets au système de fichiers, les numéros de version et d'autres détails.

<?php phpinfo();

PHP a deux directives qui sont établies lorsqu'il est compilé.

  • --with-config-file-path=path/to/main.ini
  • --with-config-file-scan-dir=/scan/this/dir/for/other.ini fichiers.

Le principal .ini Le fichier est chargé en premier, puis les fichiers dans le scan-dir sont chargés par ordre alphabétique après cela. C'est pourquoi vous voyez beaucoup de .ini fichiers à l'aide d'un préfixe numérique. C'est un moyen facile de prendre le contrôle de l'ordre de chargement. Changer le nom du fichier par rapport aux autres dans le répertoire.


Linux
  1. Quelle est la différence entre strtok_r et strtok_s en C ?

  2. Quelle est la différence entre fsck et e2fsck ?

  3. Quelle est la différence entre ls et l ?

  4. Quelle est la différence entre `su -` et `su --login` ?

  5. Quelle est la différence entre unlink et rm ?

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre la connexion et le shell sans connexion

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelle est la différence entre l'utilisation en amont et l'emplacement pour php-fpm ?