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.