El archivo php.ini de configuración de php |
php.ini(Artículo perteneciente a: http://www.ignside.net/ y publicado aquí bajo expresa autorización) El archivo php.ini es el que contiene nuestra configuración de PHP, con el que podemos controlar muchos aspectos de su funcionamiento. En esta página intentaremos explicar para que sirve cada una de sus instrucciones y cual es la mejor forma de configurarlo. La sistematica de la página sigue el mismo orden interior de php.ini, aunque puede que haya ligeras diferencias con tu copia, debidas a pequeños cambios entre versiones. La configuración aqui contemplada es la que corresponde a las versiones php 4.3.x. ¿que es el archivo php.ini?Este archivo sirve para indicar una serie de valores que determinan el comportamiento del intérprete PHP. Lo encontramos dentro de la distribución php en el directorio raiz bajo el nombre php.ini-recommended o php.ini-dist. Se trata de un archivo de texto, que podemos abrir con cualquier editor que trabaje con texto simple (*.txt). Como siempre, nos será mas cómodo trabajar con un editor como html-kit que coloree sintácticamente el archivo. C:\directorio\directorio \directorio\directorio /directorio/directorio/ Si no especificas la letra de la unidad, se presupone que es la unidad actual (esto es, donde tengas php.exe). ¿como trabaja el archivo php.ini?Antes que nada aclarar que el proceso de instalación de PHP en tu ordenador NO crea el archivo php.ini. Una vez instalado PHP debes escoger uno de los archivos proporcionados como ejemplo y renombrarlos a php.ini Si tenemos PHP como módulo del servidor, el archivo php.ini se lee cada vez que se reinicia. Por lo tanto tienes que reiniciar para que actualice los cambios. Si PHP está instalado como cgi (no recomendado) se leerá el php.ini en cada llamada a PHP. En ambos casos, lo primero a tener en cuenta será, pues, donde archivar php.ini. El servidor lo buscará sucesivamente -y por este orden- en el propio directorio php (c:/php si usas la instalacion por defecto). Si no lo encuentra alli lo buscará en la ruta definida como variable de entorno y finalmente en el directorio de sistema (c:/windows) Guarda esta página como info.php o como se te ocurra, y tenla a mano para comprobar la configuración en cuanto tengas tu php listo. Los dos php.iniEn la carpeta PHP verás que hay dos archivos php.ini: uno php.ini-recommended y otro php.ini-dist. Los dos tienen las mismas directivas, pero configuradas de distinta forma. La version recomendada es mas exigente en cuestiones de seguridad (esencialmente la directiva registrar globales esta off y mostrar errores tambien off) mientras que dist, aunque menos segura, posiblemente permitirá funcionar a la mayoria de los scripts que puedas bajarte de internet, sin necesidad de adaptaciones. Las directivasVeremos a continuación cada una de las directivas y su significado, siguiendo el orden que podriamos ver en nuestro php.ini. Muchas directivas vienen con valores por defecto, o sin valor determinado, o comentadas (inactivas). Una buena política es dejarlas como estan, salvo que sepas exactamente que estas haciendo. Opciones de lenguajeEn esta primera sección encontramos algunas instrucciones generales sobre el funcionamiento de PHP: short_open_tag = On Permite usar en tus scripts etiquetas php abreviadas ... ?>, y el atajo para imprimir variables <%= $valor %>. Si el valor es off, deberas usar la forma ... ?> o . asp_tags = Off Permite usar etiquetas estilo asp <% ... %>. Deshabilitado por defecto precision = 14 número máximo de decimales visualizados y2k_compliance = On Forzar compatibilidad con el año 2000. output_buffering = Off permite enviar cabeceras http (cookies por ejemplo) desde puntos distintos al inicio del script. Además de valores on | off puedes fijar aqui el tamaño maximo (en bytes) de las lineas http permitidas, por ejemplo: output_buffering = 4096 output_handler = Con esta directiva puedes redirigir toda la salida de tus scripts a una función PHP. Es preferible no habilitar esta opción y establecerla si es preciso en cada uno de tus scripts. zlib.output_compression = Off habilita la libreria zlib de forma que los datos de salida del script se envian comprimidos. Puedes indicar valores off|on o precisar el tamaño del buffer (por defecto es de 4 KB). ;zlib.output_handler = Si tienes activada la opción anterior, no puedes usar la directiva output_handler; con similar funcionalidad tienes zlib.output_handler. implicit_flush = Off Intenta enviar al cliente el contenido de la memoria intermedia de salida. O dicho coloquialmente, "envia lo que tengas hasta ahora, en lugar de esperar a completarlo". Equivale a llamar la función flush() despues de cada llamada echo o print y cada segmento html. Es desaconsejable su activación, siendo preferido usar la función flush() cuando sea necesario. unserialize_callback_func= relacionado con las funciones serialize(). Francamente no se mas sobre el tema. allow_call_time_pass_reference = Off Uno mas de los cambios en PHP ... tradicionalmente podias construir una función y al usarla, decidir si pasabas o no el valor de una variable por referencia (&$var). Ahora esto es desaconsejado y se recomienda especificar que los valores serán pasados por referencia en la propia declaración de la funcion (function blah (&$var)) safe_mode = Off Para activar el modo seguro de PHP. safe_mode_gid = Off Por defecto, con safe_mode On PHP hace un chequeo UID del fichero al abrirlo. Con esta directiva puedes especificar en su lugar un chequeo GID safe_mode_include_dir = Los archivos que esten en este directorio podrán ser utilizados con include/require en safe_mode On sin necesidad de chequeos UID/GID safe_mode_exec_dir = Si el PHP se utiliza en modo seguro, la función system() y el resto de funciones que ejecutan programas del sistema solo actuaran sobre archivos ejecutables que esten en el directorio indicado. safe_mode_allowed_env_vars = PHP_ Puedes proporcionar aqui una serie de prefijos (separados por ;). Si indicas estos prefijos, en safe_mode los usuarios solo podrán alterar variables de entorno cuyo nombre comience con ese prefijo. Si esta directiva esta vacia, en safe_mode podrán modificarse todas las variables de entorno. safe_mode_protected_env_vars = LD_LIBRARY_PATH una lista de variables de entorno (separadas por ;) que no pueden variarse via putenv() incluso aunque safe_mode_allowed_env_vars lo permita open_basedir = Limita los archivos que se pueden abrir por PHP al árbol de directorios especificado. disable_functions = Con esta directiva puedes inhabilitar con carácter general determinadas funciones PHP. Basta con incluirlas separadas por punto y coma (";"). Al igual que la anterior, es independiente de Safe Mode. highlight... permite especificar los colores a utilizar por el coloreador de sintaxis interno de PHP expose_php = On Permite controlar si PHP debe o no revelar su presencia en el servidor, por ejemplo incluyendose en las cabeceras http del servidor. Limites al empleo de recursosmax_execution_time = 30 Fija el tiempo máximo en segundos que se le permite usar a un script antes de ser finalizado por el intérprete. Así se evita que scripts mal escritos puedan bloquear el servidor. max_input_time = 60 Tiempo máximo en segundos que el script puede invertir en analizar datos recibidos memory_limit = 8M Fija el tamaño máximo de memoria en bytes que se permite reclamar a un script. Así se evita que script mal escritos se coman toda la memoria disponible de un servidor. Gestion y archivo de erroreserror_reporting = E_ALL Fija el nivel (detalle) con el que PHP te informa de errores. Esta directiva vuelca el informe de errores en la pantalla, y su uso está desaconsejado en páginas en producción, ya que el error puede revelar información sensible. Lo recomendado es permitir mostrar errores, con el máximo detalle posible, mientras desarrollas el script PHP; y cuando está terminado y en producción, deshabilitar el mostrado de errores en pantalla y activar en su lugar el archivo de errores. Como cada nivel de informe de error está representado por un número, puedes designar el nivel deseado sumando valores: display_errors = Off determina si los errores se visualizan en pantalla como parte de la salida en HTML o no. display_startup_errors = Off Incluso con display_errors on, por defecto PHP no muestra los errores que detecta en la secuencia de encendido. Con esta directiva puedes mostrar estos errores. Desaconsejado activarla. log_errors = On Guarda los mensajes de error en un archivo. Normalmente el registro del servidor. Esta opción, por tanto, es específica del mismo. log_errors_max_len = 1024 Especifica el tamaño del archivo error_log. Si tiene un valor 0 significa que no hay restricción de tamaño ignore_repeated_errors = Off Si está activado, no archiva mensajes repetidos. No se consideran mensajes repetidos aquellos que no provienen de la misma linea. ignore_repeated_source = Off Si está activado, considera repetidos los mensajes de error iguales, aunque provengan de distinta linea / script report_memleaks = On Mostrar o no. memory leak se refiere a cuando (por error) el script no libera la memoria usada cuando ya no la necesita, y en consecuencia usa cada vez mas hasta llegar a agotarla. track_errors = Off Si lo activamos, tendremos el último mensaje de error/advertencia almacenado en la variable $php_errormsg html_errors = Off Si activo, no incluye etiquetas HTML en los mensajes de error. docref_root = /phpmanual/ y docref_ext = .html Si tienes html_errors activado, PHP automaticamente incluye enlaces en el mensaje de error que te dirigen a la página del manual que explica la función implicada. Puedes bajarte una copia del manual y indicar su ubicación (y extensión del archivo) usando estas directivas. error_prepend_string = "" Cadena a añadir antes de cada mensaje de error. error_append_string = "" cadena a añadir despues del mensaje de error. ;error_log = filename Nombre del fichero para registrar los errores de un script. Si se utiliza el valor especial syslog, los errores se envían al registro de errores del sistema. Como verás, esta comentado (inhabilitado) por defecto. Gestion de datostrack_vars Esta directiva crea arrays $HTTP_GET_VARS, $HTTP_POST_VARS y $HTTP_COOKIE_VARS con los datos introducidos con los métodos GET, POST y con cookies. Desde PHP 4.0.3 está siempre activada. ;arg_separator.output = "&" El carácter que se empleará en las urls generadas por PHP para separar argumentos (valores pasados via url). & es el separador por defecto. ;arg_separator.input = ";&" separadores que usará PHP cuando analice una url suministrada para almacenarla en variables variables_order = "GPCS" Esta directiva fija el orden (precedencia) en que PHP registrará y interpretará las variables de entorno (de izquierda a derecha en el orden indicado). Los valores posibles se toman con las iniciales del método usado para asignar el valor a la variable: Get, Post, Cookie, Enviroment y Server. Fijando por ejempo el valor a "GP", hará que el PHP ignore por completo las cookies y que sobreescriba las variables recibidas por GET con las que tengan el mismo nombre y vengan por POST. register_globals = Off Permite registrar autómaticamente (o no) las variables EGPCS como globales. Por razones de seguridad se recomienda desactivar el registro. register_argc_argv = Off Esta directiva instruye a PHP si debe declarar las variables argv&argc (arrays predefinidos que almacenan los parámetros pasados (argv) y su numero (argc). post_max_size = 8M Tamaño máximo de los datos que PHP aceptará por el método POST Magic quotesmagic_quotes_gpc = Off Fija el estado magic_quotes para operaciones GPC (Get/Post/Cookie). Si magic_quotes vale on, todas las ' (comilla sencilla), " (comilla doble), \ (barra invertida) y los NUL son automáticamente marcados con una barra invertida. Si además magic_quotes_sybase vale on, la comilla sencilla es marcada con otra comilla sencilla en lugar de la barra invertida. magic_quotes_runtime = Off Si se habilita magic_quotes_runtime, muchas de las funciones que devuelven datos de algún tipo de fuente externa incluyendo bases de datos y archivos de texto devolverán las comillas marcadas con una barra invertida. Si también está activo magic_quotes_sybase, la comilla simple es marcada con una comilla simple en lugar de la barra invertida. magic_quotes_sybase = Off Si magic_quotes_sybase está a on, la comilla simple es marcada con una comilla simple en lugar de la barra invertida cuando están habilitados magic_quotes_gpc o magic_quotes_runtime. Mas directivas de Gestion de datosauto_prepend_file = y auto_append_file = permiten indicar la ruta y nombre de un archivo que se añadirán antes o despues (respectivamente) de todos los archivos php que se ejecuten. ;default_charset = "iso-8859-1" Por defecto, el código de caracteres indicado por PHP en la cabecera de salida. default_mimetype = "text/html" Por defecto, el tipo mime de salida de datos. Cada MIMETYPE define el formato de los datos (por ejemplo, texto/hmtl, jpg, gif ....) ;always_populate_raw_post_data = On PHP crea la variable $HTTP_RAW_POST_DATA cuando recibe datos via POST cuyo tipo MIME no reconoce (almacena los datos en esta variable sin analizarlos). Con esta directiva se ordena que se cree siempre la variable $HTTP_RAW_POST_DATA, aunque el tipo MIME sea conocido. ;allow_webdav_methods = On Permite manejar las peticiones http propias de webdav. Rutas y directoriosinclude_path = ".;c:\php\includes" Permite especificar una lista de directorios en los que las funciones require(), include() y fopen_with_path() buscaran los archivos requeridos. El formato es similar a la variable de entorno de sistema PATH: una lista de directorios separados por dos puntos en UNIX o por punto y coma en Windows. Ejemplo unix seria include_path=.:/home/httpd/php-lib y en windows include_path=".;c:\www\phplib". doc_root = Indica el "Directorio raiz" donde estan nuestras paginas php en el servidor. Sólo se usa si no está vacío. Si PHP se configura con safe mode, no se interpretaran las páginas php situadas fuera de este directorio. Ojo con los servidores virtuales que apuntan a zonas distintas del servidor. user_dir = El directorio raiz para los archivos PHP bajo el directorio inicial de un usuario (/~usuario). Normalmente se deja vacio extension_dir = ./ En qué directorio debe buscar el PHP las extensiones dinámicas a cargar. Bajo Windows, por defecto si no pones ningun valor en esta directiva, se buscaran en c:\php4\extensions\. enable_dl = On Esta directiva sólo es útil en la versión del PHP como módulo del Apache. Puede habilitar o deshabilitar para un servidor virtual o para un directorio la carga dinámica de extensiones de PHP mediante dl(). cgi.force_redirect = 1 Por defecto se activa. Es una directiva importante de seguridad que "debes" activar si ejecutas en tu apache PHP como cgi (no es necesaria si tienes PHP como modulo, o si usas como servidor el IIS de microsoft). ; cgi.redirect_status_env = ; En conjunción con cgi.force_redirect y servidores distintos de Apache o iPlanet. ; fastcgi.impersonate = 1; En conjunción con IIS y FastCGI Subir ficherosfile_uploads = On Permitir o no subir (upload) ficheros via HTTP. upload_tmp_dir = Carpeta o directorio utilizable para guardar temporalmente archivos subidos por PHP. Si no se especifica, usará el designado por defecto por el servidor. El usuario que esté ejecutando el script debe tener permiso de escritura en ese directorio. upload_max_filesize = 2M Tamaño máximo de archivos que pueden subirse. directivas relacionadas con fopenallow_url_fopen = On Permite pasar urls (http, ftp) a la función fopen(), en lugar de la ubicacion fisica del archivo ;from=" Este correo electrónico esta protegido de \†Spam Bots\†, debes tener Javascript activado en tu navegador " define el email a usar como contraseña para ftp anonimo ;user_agent="PHP" define la "firma" que dejará PHP en el servidor remoto de donde coge los archivos default_socket_timeout = 60 timeout en segundos para la apertura de sockets ; auto_detect_line_endings = Off Si activo, PHP detectara automaticamente el carácter que indica fin de linea (distinto en windows, linux y windows) Extensiones dinamicasextension= Qué extensiones dinámicas debe cargar el PHP cuando arranca. Debes elegir el archivo que corresponde a tu sistema operativo: por ejemplo extension=msql.dll para windows, extension=msql.so para linux. Las versiones mas recientes de PHP traen "de serie" los modulos MYSQL, ODBC y GD por lo que NO tienes que cargar sus extensiones. Configuracion de modulos de PHPdefine_syslog_variables = Off Permite definir variables del sistema. Recomendado Off. ;browscap = extra/browscap.ini El archivo browscap.ini es un archivo de texto que contiene información sobre las cadenas de identificación que usa cada navegador. Mediante esta directiva indicas a PHP donde tienes browscap.ini; se usa conjuntamente con la función get_browser(). Directivas de Configuración de CorreoSi usas PHP bajo linux, puedes enviar correo usando tu propio PC con sendmail; con windows no tienes esa posibilidad, por lo que para enviar correos desde un script PHP con la funcion mail() tienes que delegar en tu configuración de correo ordinaria, la que usas por ejemplo con outlook para enviar y recibir correo. Este seria un ejemplo bajo windows: SMTP = Este correo electrónico esta protegido de \†Spam Bots\†, debes tener Javascript activado en tu navegador Este seria el caso si tu conexion a internet te la proporciona telefonica. Especificamos la direccion del servidor smtp (correo saliente). sendmail_from= Este correo electrónico esta protegido de \†Spam Bots\†, debes tener Javascript activado en tu navegador La dirección del remitente ("De:") para los correos enviados desde PHP bajo Windows. (Artículo perteneciente a: http://www.ignside.net/ y publicado aquí bajo expresa autorización) |