GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Unterschied zwischen xdebug.ini und php.ini

Ubuntu basiert auf Debian. Debian und seine Derivate verwenden eine etwas einzigartige Art, Erweiterungen für PHP und Apache zu verwalten.

Von den Dateien, die Sie aufgelistet haben:

  • /etc/php/7.0/apache2/conf.d/20-xdebug.ini ist ein symbolischer Link zu /etc/php/7.0/mods-available/xdebug.ini

  • /etc/php/7.0/cli/conf.d/20-xdebug.ini ist auch ein Symlink zu /etc/php/7.0/mods-available/xdebug.ini

  • Sie können /etc/php/7.0/mods-available/xdebug.ini bearbeiten direkt und Änderungen, die Sie vornehmen, wirken sich überall dort aus, wo es aktiviert ist.

Befehle phpenmod und phpdismod sind verfügbar, um PHP-Module zu aktivieren oder zu deaktivieren. Diese sind wie a2enmod für Apache, die Sie hier nachlesen können. Deaktivieren Sie beispielsweise XDebug mit sudo phpdismod xdebug . Schalten Sie es mit sudo phpenmod xdebug wieder ein . Ihre Konfiguration bleibt beim Ein- und Ausschalten erhalten, da Ihre Änderungen immer in mods-available gespeichert werden , obwohl PHP in diesem Verzeichnis nicht nach der Konfiguration sucht. In der Tat, wenn Sie das Modul mit phpdismod "deaktivieren". , es entfernt einfach den Symlink aus dem entsprechenden Ordner, sodass das Modul in der PHP-Konfiguration nicht aktiviert ist.

Schließlich /etc/php/7.0/apache2/php.ini ist der Speicherort für die systemweite Konfiguration, die kein Modul ist, das aktiviert oder deaktiviert werden kann.

Daher ändert sich Ihre Konfiguration wie xdebug.remote_port = 9000 sollte in /etc/php/7.0/mods-available/xdebug.ini gehen da es mit XDebug zusammenhängt. Es ist eine schlechte Idee, es an beiden Stellen zu platzieren (wegen der Verwirrung, die es verursacht), aber das letzte, das geladen wird, hat Vorrang. Aus diesem Grund haben viele der Dateien im Mods-Available-Verzeichnis Nummern im Dateinamen - damit sie in der richtigen Reihenfolge geladen werden.

Verwenden Sie den phpinfo() Funktion, um weitere Informationen darüber zu erhalten, welche Konfigurationswerte geladen wurden und aus welchen INI-Dateien sie geladen wurden. Zum Beispiel:

$ php -r "phpinfo();"

oder

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

Dies hängt davon ab, wie PHP kompiliert wurde. Sehen Sie sich an, wie PHP kompiliert wurde, indem Sie sich die Liste von .ini ansehen Dateien, die geladen werden und von wo sie geladen werden.

Geben Sie in der Befehlszeile Folgendes ein und überprüfen Sie:

$ php -i | grep .ini

Sie können dies auch erfahren, indem Sie eine temporäre PHP-Datei erstellen und sie in einem Browser aufrufen. Stellen Sie nur sicher, dass Sie ihm einen schwer zu findenden Namen geben, und löschen Sie ihn direkt, nachdem Sie fertig sind. B. /info-949w30.php . Wieso den? Weil dieser Bericht möglicherweise vollständige Dateisystempfade, Versionsnummern und andere Details preisgibt.

<?php phpinfo();

PHP hat zwei Direktiven, die beim Kompilieren eingerichtet werden.

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

Die wichtigsten .ini Datei wird zuerst geladen, und dann werden Dateien im Scan-Verzeichnis alphabetisch danach geladen. Deshalb sehen Sie viele .ini Dateien mit einem numerischen Präfix. Dies ist eine einfache Möglichkeit, die Ladereihenfolge zu steuern. Ändern des Namens der Datei in Bezug auf andere im Verzeichnis.


Linux
  1. Was ist der Unterschied zwischen Redhat und CentOS?

  2. Was ist der Unterschied zwischen insmod und modprobe

  3. Was ist der Unterschied zwischen fsck und e2fsck?

  4. Was ist der Unterschied zwischen ls und l?

  5. Was ist der Unterschied zwischen $(CC) und $CC?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen Route und IP-Route?