GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra xdebug.ini e php.ini

Ubuntu è basato su Debian. Debian e le sue derivate usano un modo in qualche modo unico di gestire le estensioni per php e apache.

Dei file che hai elencato:

  • /etc/php/7.0/apache2/conf.d/20-xdebug.ini è un collegamento simbolico a /etc/php/7.0/mods-available/xdebug.ini

  • /etc/php/7.0/cli/conf.d/20-xdebug.ini è anche un collegamento simbolico a /etc/php/7.0/mods-available/xdebug.ini

  • Puoi modificare /etc/php/7.0/mods-available/xdebug.ini direttamente e le modifiche apportate avranno effetto ovunque sia abilitato.

Comandi phpenmod e phpdismod sono disponibili per abilitare o disabilitare i moduli PHP. Questi sono come a2enmod per apache, di cui puoi leggere qui. Ad esempio, disattiva XDebug con sudo phpdismod xdebug . Riaccendilo con sudo phpenmod xdebug . La tua configurazione verrà conservata quando la accendi e spegni perché le tue modifiche sono sempre conservate in mods-available , sebbene PHP non cerchi la configurazione in quella directory. Infatti, quando "disattivi" il modulo con phpdismod , sta semplicemente rimuovendo il collegamento simbolico dalla cartella appropriata in modo che il modulo non sia abilitato nella configurazione di php.

Infine, /etc/php/7.0/apache2/php.ini è la posizione per la configurazione a livello di sistema che non è un modulo che può essere abilitato o disabilitato.

Pertanto, la tua configurazione cambia come xdebug.remote_port = 9000 dovrebbe andare in /etc/php/7.0/mods-available/xdebug.ini poiché è correlato a XDebug. Metterlo in entrambi i posti è una cattiva idea (a causa della confusione che crea), ma l'ultimo da caricare ha la precedenza. Questo è il motivo per cui molti dei file nella directory mods-available hanno numeri nel nome del file, quindi verranno caricati nell'ordine corretto.

Usa il phpinfo() funzione per ottenere maggiori informazioni su quali valori di configurazione sono stati caricati e da quali file ini sono stati caricati. Ad esempio:

$ php -r "phpinfo();"

o

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

Questo dipende da come PHP è stato compilato. Dai un'occhiata a come è stato compilato PHP rivedendo l'elenco di .ini file che sta caricando e da dove vengono caricati.

Dalla riga di comando, digita quanto segue e rivedi:

$ php -i | grep .ini

Oppure puoi scoprirlo creando un file PHP temporaneo e visitandolo in un browser. Assicurati solo di nominarlo con qualcosa di difficile da trovare ed eliminalo subito dopo aver finito; ad esempio, /info-949w30.php . Come mai? Perché questo rapporto potrebbe divulgare percorsi completi del file system, numeri di versione e altri dettagli.

<?php phpinfo();

PHP ha due direttive che vengono stabilite quando viene compilato.

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

Il principale .ini file viene caricato per primo, quindi i file nella directory di scansione vengono caricati in ordine alfabetico. Ecco perché vedi molti .ini file utilizzando un prefisso numerico. Questo è un modo semplice per assumere il controllo dell'ordine di caricamento. Cambiare il nome del file in relazione ad altri nella directory.


Linux
  1. Qual è la differenza tra InnoDB e MyISAM?

  2. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  3. Qual è la differenza tra adduser e useradd?

  4. Qual è la differenza tra `su -` e `su --login`?

  5. Qual è la differenza tra unlink e rm?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra l'utilizzo di upstream e location per php-fpm?