GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi xdebug.ini a php.ini

Ubuntu je založeno na Debianu. Debian a jeho deriváty používají poněkud unikátní způsob správy rozšíření pro php a Apache.

Ze souborů, které jste uvedli:

  • /etc/php/7.0/apache2/conf.d/20-xdebug.ini je symbolický odkaz na /etc/php/7.0/mods-available/xdebug.ini

  • /etc/php/7.0/cli/conf.d/20-xdebug.ini je také symbolický odkaz na /etc/php/7.0/mods-available/xdebug.ini

  • Můžete upravit /etc/php/7.0/mods-available/xdebug.ini přímo a změny, které provedete, ovlivní všude, kde je povoleno.

Příkazy phpenmod a phpdismod jsou k dispozici pro povolení nebo zakázání modulů PHP. Jsou to jako a2enmod pro apache, o kterém si můžete přečíst zde. Například vypněte XDebug pomocí sudo phpdismod xdebug . Znovu jej zapněte pomocí sudo phpenmod xdebug . Vaše konfigurace bude zachována, když ji zapnete a vypnete, protože vaše změny jsou vždy zachovány v mods-available , ačkoli PHP v tomto adresáři nehledá konfiguraci. Ve skutečnosti, když modul "deaktivujete" pomocí phpdismod , je to jednoduše odstranění symbolického odkazu z příslušné složky, aby modul nebyl povolen v konfiguraci php.

Nakonec /etc/php/7.0/apache2/php.ini je umístění pro konfiguraci celého systému, což není modul, který lze povolit nebo zakázat.

Vaše konfigurace se tedy změní jako xdebug.remote_port = 9000 by měl být v /etc/php/7.0/mods-available/xdebug.ini protože to souvisí s XDebug. Umístění na obě místa je špatný nápad (kvůli zmatku, který to vytváří), ale přednost má to poslední, které se načte. To je důvod, proč mnoho souborů v adresáři mods-available má v názvu souboru čísla - takže se načtou ve správném pořadí.

Použijte phpinfo() funkce pro získání více informací o tom, které konfigurační hodnoty byly načteny a z jakých ini souborů byly načteny. Například:

$ php -r "phpinfo();"

nebo

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

To záleží na tom, jak bylo PHP zkompilováno. Podívejte se, jak bylo PHP zkompilováno, v seznamu .ini soubory, které načítá, a odkud jsou načítány.

Z příkazového řádku zadejte následující a zkontrolujte:

$ php -i | grep .ini

Nebo se o tom můžete dozvědět vytvořením dočasného souboru PHP a jeho návštěvou v prohlížeči. Jen se ujistěte, že to pojmenujete něčím, co je obtížné najít, a smažte to hned poté, co budete hotovi; např. /info-949w30.php . Proč? Protože tato zpráva může uniknout úplné cesty k souborovému systému, čísla verzí a další podrobnosti.

<?php phpinfo();

PHP má dvě direktivy, které jsou stanoveny při kompilaci.

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

Hlavní .ini nejprve se načte soubor a poté se soubory v adresáři skenování načtou podle abecedy. Což je důvod, proč vidíte hodně .ini soubory pomocí číselné předpony. To je snadný způsob, jak převzít kontrolu nad pořadím nakládky. Změna názvu souboru ve vztahu k ostatním v adresáři.


Linux
  1. Rozdíl mezi [[ $a ==Z* ]] a [ $a ==Z* ]?

  2. Jaký je rozdíl mezi Git Switch a Checkout?

  3. Jaký je rozdíl mezi insmod a modprobe

  1. Jaký je rozdíl mezi strtok_r a strtok_s v C?

  2. Jaký je rozdíl mezi fsck a e2fsck?

  3. Jaký je rozdíl mezi adduser a useradd?

  1. Jaký je rozdíl mezi Redhat a centOS?

  2. Jaký je rozdíl mezi ls a l?

  3. Jaký je rozdíl mezi `su -` a `su --login`?