Cómo crear un archivo Phpinfo y verificar la información de PHP. Entregue archivos de manera eficiente usando PHP Información atenta php

(PHP 3, PHP 4, PHP 5)

phpinfo: muestra mucha información sobre PHP.

Descripción

int phpinfo()

Muestra una gran cantidad de información sobre el estado actual de PHP. Esto incluye información sobre las opciones y extensiones de compilación de PHP, la versión de PHP, la información del servidor y del entorno (si se compila como un módulo), el entorno PHP, la versión del sistema operativo, las rutas, las variables de opciones de configuración maestras y locales, los encabezados de licencia HTTP y PHP. Dado que cada sistema está configurado de manera diferente, phpinfo() generalmente se usa para verificar los ajustes de configuración y la disponibilidad de variables predefinidas en un sistema determinado. Phpinfo() también es una importante utilidad de depuración, ya que contiene todos los datos EGPCS (Entorno, GET, POST, Cookie, Servidor). La salida se puede especializar pasando uno o más de los siguientes constante valores de bits resumidos en el parámetro opcional what. También puede combinar los valores constantes o de bits correspondientes mediante la operación.

Tabla 1. Opciones de phpinfo()
Nombre (constante) Valor Descripción INFO_GENERAL1 Cadena de configuración, ubicación de php.ini, fecha de compilación, servidor web, sistema, etc.INFO_CREDITS2PHP Créditos 4.Ver. también phpcredits() .INFO_CONFIGURATION4Valores locales y maestros actuales de las directivas php.Ver. también ini_get() .INFO_MODULES8 Módulos cargados y sus correspondientes configuraciones.INFO_ENVIRONMENT16Información de variables de entorno, también disponible en $_ENV .INFO_VARIABLES32Muestra todas las variables predefinidas de EGPCS (Entorno, GET, POST, Cookie, Servidor).INFO_LICENSE64PHP Información de licencia.Ver. también preguntas frecuentes sobre licencia .INFO_ALL-1Todo lo anterior. Este es el valor predeterminado.

Nota: partes de la información mostrada están deshabilitadas cuando la configuración de exponen_php está desactivada. Esto incluye logotipos y créditos de PHP y Zend. Ver. También

Cualquier software, que desea ejecutar en su servidor web tiene ciertos requisitos que debe cumplir. Por ejemplo, WordPress requiere la versión PHP 5.2.4 o superior. Dependiendo del servidor, puede cambiar algunas configuraciones de PHP, otras, por el contrario, tienen prohibido cambiarlas, sin embargo, la información sobre todas ellas se puede encontrar en el archivo phpinfo. En este tutorial, aprenderá cómo crear un archivo phpinfo y descubrirá los valores y el estado de los módulos PHP. Esto también puede ser útil para obtener información sobre su cuenta de hosting, como max_execution_time, Memory_limit, post_max_size y otros.

Antes de comenzar esta guía, necesitará lo siguiente:

  • Acceso a tu panel de control de hosting o cuenta FTP

Opción 1: verificar la información de PHP a través de su panel de control de alojamiento

En Hostinger, la información PHP de tu cuenta se puede encontrar en la Avanzado → Información PHP. Esta es una característica muy conveniente, ya que no necesitará crear archivos adicionales en su hosting.

Después de esto, accederá a una página con toda la información necesaria sobre su versión, módulos y valores de PHP. Para buscar un módulo o función específica, utilice la búsqueda presionando el atajo de teclado CTRL+F.

¡Felicidades! Has aprendido cómo acceder a tu información php a través del panel de control de Hostinger.

Opción 2: verificar la información de PHP creando un archivo phpinfo.php

No se preocupe si su plataforma de alojamiento no admite la función que se muestra en Opción 1. Se puede lograr el mismo resultado creando un archivo especial dentro de su cuenta de hosting. El archivo también mostrará toda la información sobre su PHP y será accesible a través del navegador.

Paso 2.1: crea un archivo phpinfo

Hay varias formas de crear un archivo phpinfo. En este tutorial usaremos . Sin embargo, se puede lograr el mismo resultado creando un archivo en su computadora local y luego cargar el archivo al servidor a través de .

Inicie sesión en su panel de control de hosting y abra Administrador de archivos . Clic en el botón Archivo nuevo para crear un nuevo archivo.

En el primer campo, indique la ruta donde se creará. archivo nuevo. A continuación, en el campo. Nuevo nombre de archivo ingresar phpinfo.php. En la mayoría de los casos puedes dejar la ruta sin cambios. /público_html. En este caso, el archivo se creará en el directorio raíz de su sitio.

Paso 2.2 - Editar el archivo

En esta etapa ya tienes un archivo vacío. phpinfo.php en el catalogo público_html. Copie el siguiente código en un archivo y haga clic en el icono Ahorrar en la esquina izquierda de la pantalla.

Eso es todo, has creado con éxito archivo PHP que mostrará todas sus opciones de PHP. Como se mencionó anteriormente, se puede lograr el mismo resultado usando:

  1. Usar cualquier editor de texto y crear un archivo phpinfo.php en tu ordenador.
  2. Agregue el siguiente código al archivo:
  1. Sube el archivo usando FTP a tu directorio público_html.

Paso 2.3: Verificar la información de PHP a través del navegador

Si todo se hizo correctamente, ahora puede acceder al archivo creado agregando al final de su nombre de dominio /paghpinfo.php. P.ej, http://tudominio.ru/phpinfo.php

Debería ver un resultado similar al abrir esta página a través de un navegador:

En esta página podrá ver todas sus configuraciones de PHP.

Conclusión

Al finalizar este tutorial, habrá aprendido cómo crear un archivo phpinfo y verificar su información. configuración PHP. Esta informacion es útil si desea conocer la configuración de su alojamiento o ejecutar software que requiere ciertos módulos PHP.

Si necesita transferir archivos no directamente desde el servidor web, sino desde usando PHP(por ejemplo, para recopilar estadísticas de descargas), en cat.

1. Utilice el archivo de lectura()

Lo bueno de este método es que funciona desde el primer momento. Sólo necesita escribir su propia función de envío de archivos (ejemplo ligeramente modificado de la documentación oficial):

Función file_force_download($file) ( if (file_exists($file)) ( // restablecer el buffer salida PHP para evitar el desbordamiento de la memoria asignada para el script // si no se hace esto, el archivo se leerá en la memoria por completo. if (ob_get_level()) ( ob_end_clean(); ) // fuerza al navegador a mostrar la ventana para guardar el encabezado del archivo("Contenido-Descripción: Transferencia de archivos"); encabezado("Tipo de contenido: aplicación/flujo de octeto"); ​​encabezado("Disposición de contenido: archivo adjunto; nombre de archivo=". nombre base ($archivo)); encabezado("Codificación de transferencia de contenido: binario ") ; encabezado("Expira: 0"); encabezado("Control de caché: debe revalidar"); encabezado("Pragma: público"); encabezado("Contenido-Longitud: ". Tamaño de archivo ($archivo)); // lee el archivo y lo envía al usuario readfile($file); salir; ) )
Incluso los archivos grandes se pueden enviar de esta manera, ya que PHP leerá el archivo e inmediatamente se lo entregará al usuario en partes. La documentación establece claramente que readfile() no debe crear problemas de memoria.

Peculiaridades:

  • El archivo se lee en el buffer interno de la función readfile(), cuyo tamaño es de 8kB (gracias a 2fast4rabbit)

2. Lea y envíe el archivo manualmente.

El método utiliza el mismo Drupal al enviar archivos desde un privado. sistema de archivos(los archivos no están disponibles directamente a través de enlaces):

Función file_force_download($file) ( if (file_exists($file)) ( // restablece el buffer de salida de PHP para evitar desbordar la memoria asignada para el script // si esto no se hace, el archivo se leerá en la memoria por completo. if (ob_get_level()) ( ob_end_clean(); ) // fuerza al navegador a mostrar la ventana para guardar el archivo header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream") ; ​​encabezado("Disposición-de-contenido: archivo adjunto; nombre de archivo =" . nombre base($archivo)); encabezado("Codificación-de-transferencia-de-contenido: binario"); encabezado("Expira: 0"); encabezado("Caché- Control: must-revalidate"); header("Pragma: public"); header("Content-Length: " . size($file)); // lee el archivo y lo envía al usuario if ($fd = fopen ($archivo, "rb")) ( while (!feof($ fd)) ( print fread($fd, 1024); ) fclose($fd); ) salir; ) )
Peculiaridades:

  • El script espera hasta que se lea el archivo completo y se entregue al usuario.
  • Le permite ahorrar memoria del servidor.

3. Utilice el módulo del servidor web

3a. apache
El módulo XSendFile le permite enviar un archivo al propio Apache mediante un encabezado especial. Existen versiones para Unix y Windows, bajo las versiones 2.0.*, 2.2.* y 2.4.*

En la configuración del host, debe habilitar la interceptación de encabezados usando la directiva:
XSendFile activado
También puede especificar una lista blanca de directorios en los que se pueden procesar archivos. Importante: si tienes un servidor basado Ruta de Windows debe incluir una letra de unidad en mayúscula.

Descripción de posibles opciones en el sitio web del desarrollador: https://tn123.org/mod_xsendfile/

Ejemplo de envío de un archivo:

Función file_force_download($archivo) ( if (file_exists($archivo)) ( encabezado("X-SendFile: " . realpath($archivo)); encabezado("Tipo de contenido: aplicación/octeto-stream"); ​​encabezado ("Disposición de contenido: archivo adjunto; nombre de archivo=". nombre base ($archivo)); salir;))

3b. nginx
Nginx puede enviar archivos listos para usar a través de un encabezado especial.

Para un funcionamiento correcto, es necesario denegar el acceso a la carpeta directamente a través del archivo de configuración:
ubicación /protegido/ ( interno; raíz /alguna/ruta; )
Ejemplo de envío de un archivo (el archivo debe estar en el directorio /alguna/ruta/protegido):

Función file_force_download($archivo) ( if (file_exists($archivo)) ( encabezado("X-Accel-Redirect: " . $archivo); encabezado("Tipo de contenido: aplicación/flujo de octeto"); encabezado( "Contenido -Disposición: archivo adjunto; nombre de archivo=" . nombre base($archivo)); salir; ) )
Más información en la página de documentación oficial.

Peculiaridades:

  • El guión finaliza inmediatamente después de completar todas las instrucciones.
  • Físicamente el archivo lo envía el propio módulo del servidor web, y no PHP
  • Consumo mínimo de memoria y recursos del servidor.
  • Rendimiento máximo

Actualizar: Habrowser ilyaplot da buenos consejos de que es mejor enviar no application/octet-stream, sino el tipo mime real del archivo. Por ejemplo, esto permitirá que el navegador sustituya programas necesarios en el cuadro de diálogo para guardar el archivo.




Arriba