GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es la diferencia entre xdebug.ini y php.ini?

Ubuntu está basado en Debian. Debian y sus derivados usan una forma un tanto única de administrar extensiones para php y apache.

De los archivos que has enumerado:

  • /etc/php/7.0/apache2/conf.d/20-xdebug.ini es un enlace simbólico a /etc/php/7.0/mods-disponible/xdebug.ini

  • /etc/php/7.0/cli/conf.d/20-xdebug.ini también es un enlace simbólico a /etc/php/7.0/mods-disponible/xdebug.ini

  • Puede editar /etc/php/7.0/mods-disponible/xdebug.ini directamente y los cambios que realice afectarán en todos los lugares donde esté habilitado.

Comandos phpenmod y phpdismod están disponibles para habilitar o deshabilitar módulos PHP. Estos son como a2enmod para apache, sobre el que puede leer aquí. Por ejemplo, apague XDebug con sudo phpdismod xdebug . Vuelva a encenderlo con sudo phpenmod xdebug . Su configuración se conservará cuando la encienda y apague porque sus cambios siempre se conservan en mods-available , aunque PHP no busca en ese directorio para la configuración. De hecho, cuando "deshabilitas" el módulo con phpdismod , simplemente elimina el enlace simbólico de la carpeta correspondiente para que el módulo no esté habilitado en la configuración de php.

Finalmente, /etc/php/7.0/apache2/php.ini es la ubicación para la configuración de todo el sistema que no es un módulo que se puede habilitar o deshabilitar.

Por lo tanto, su configuración cambia como xdebug.remote_port = 9000 debe ir en /etc/php/7.0/mods-available/xdebug.ini ya que está relacionado con XDebug. Ponerlo en ambos lugares es una mala idea (por la confusión que crea), pero el último en cargar tiene prioridad. Esta es la razón por la que muchos de los archivos en el directorio de mods disponibles tienen números en el nombre del archivo, por lo que se cargarán en el orden correcto.

Utilice el phpinfo() función para obtener más información sobre qué valores de configuración se cargaron y de qué archivos ini se cargaron. Por ejemplo:

$ php -r "phpinfo();"

o

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

Esto depende de cómo se compiló PHP. Eche un vistazo a cómo se compiló PHP revisando la lista de .ini archivos que está cargando y desde dónde se están cargando.

Desde la línea de comando, escriba lo siguiente y revise:

$ php -i | grep .ini

O puede enterarse de esto creando un archivo PHP temporal y visitándolo en un navegador. Solo asegúrese de nombrarlo algo difícil de encontrar y elimínelo inmediatamente después de que haya terminado; por ejemplo, /info-949w30.php . ¿Por qué? Porque este informe puede filtrar rutas completas del sistema de archivos, números de versión y otros detalles.

<?php phpinfo();

PHP tiene dos directivas que se establecen cuando se compila.

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

El principal .ini El archivo se carga primero, y luego los archivos en el directorio de escaneo se cargan alfabéticamente después de eso. Por eso ves mucho .ini archivos usando un prefijo numérico. Esa es una manera fácil de controlar el orden de carga. Cambiar el nombre del archivo en relación con otros en el directorio.


Linux
  1. ¿Cuál es la diferencia entre Redhat y centOS?

  2. ¿Cuál es la diferencia entre fsck y e2fsck?

  3. ¿Cuál es la diferencia entre ls y l?

  4. ¿Cuál es la diferencia entre `su -` y `su --login`?

  5. ¿Cuál es la diferencia entre unlink y rm?

¿Cuál es la diferencia entre Linux y Unix?

¿Cuál es la diferencia entre Shell de inicio de sesión y sin inicio de sesión?

¿Cuál es la diferencia entre el comando apt y apt-get?

¿Cuál es la diferencia entre Git Switch y Checkout?

¿Qué es un Hipervisor? ¿Cuál es la diferencia entre el tipo 1 y 2?

¿Cuál es la diferencia entre curl y Wget?