Hi Philip,
Can you please activate this SVN account: chuso?
Please find attached the files he translated.
I talked with him and he wants to keep translating files.
Thanks!
Yago
2010/9/15 Jesús Ruiz-Ayúcar Vázquez <chus...@gmail.com>
> I would like to have an SVN account to help with the Spanish translation of
> the PHP Manual. User 'yago' sends me here.
>
--
Yago Ferrer
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 297028 $ -->
<!-- EN-Revision: 297028 Maintainer: chuso #464 Status: ready -->
<chapter xml:id="install.pecl" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Instalación de extensiones PECL</title>
<sect1 xml:id="install.pecl.intro">
<title>Introducción a las Instalaciones en PECL</title>
<simpara>
<link xlink:href="&url.pecl;">PECL</link> es un respositorio de extensiones de PHP
disponible mediante el sistema de paquetes <link xlink:href="&url.php.pear;">PEAR</link>.
Esta sección del manual tiene por objetivo ilustrar cómo obtener e instalar
extensiones PECL.
</simpara>
<simpara>
Estas instrucciones asumen que la ruta al fuente de su distribución de PHP es
<literal>/your/phpsrcdir/</literal>, y que <literal>extname</literal> es el nombre
de la extensión PECL. Ajuste a sus valores. Estas instrucción, además, asumen
conocimientos del <link xlink:href="&url.php.pear.cli;">comando pear</link>.
La información del manual de PEAR para el comando <literal>pear</literal> también
es aplicable al comando <literal>pecl</literal>.
</simpara>
<simpara>
Para poder usarse, una extensión compartida se debe construir, instalar, y cargar.
Los métodos descritos abajo le proporcionan varias instrucciones para construir
e instalar extensiones, pero no se cargarán automáticamente.
Éstas se pueden cargar añadiendo una directiva<link
linkend="ini.extension">extension</link>. O bien al fichero &php.ini;,
o bien mediante el uso de la función <function>dl</function>.
</simpara>
<simpara>
Al construir un módulo PHP, es importante contar con las versiones correctas
de las herramientas requeridas (autoconf, automake, libtool, etc.). Para
conocer los detalles de las herramientas requeridas y sus versiones, revise las
<link xlink:href="&url.php.anonsvn;">Instrucciones del SVN Anónimo</link>.
</simpara>
</sect1>
<sect1 xml:id="install.pecl.downloads">
<title>Descarga de extensiones PECL</title>
<simpara>
Existen varias opciones para descargar extensiones PECL, a saber:
</simpara>
<itemizedlist>
<listitem>
<simpara>
El comando <literal>pecl install extname</literal> descarga el código
de la extensión automáticamente, de modo que en este caso no se hace necesario
realizar una descarga por separado.
</simpara>
</listitem>
<listitem>
<simpara>
<link xlink:href="&url.pecl;">&url.pecl;</link>
</simpara>
<simpara>
La página web de PECL contiene información sobre las diferentes extensiones
que ofrece el Equipo de Desarrollo de PHP. La información disponible aquí
incluye: ChangeLog, notas de la versión, requisitos, y otros detalles similares.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>pecl download extname</literal>
</simpara>
<simpara>
Puede descargar e instalar las extensiones PECL listadas en el sitio
web de PECL usando el <link xlink:href="&url.php.pear.cli;">comando pecl</link>.
También se podrán especificar versiones concretas.
</simpara>
</listitem>
<listitem>
<simpara>
<acronym>SVN</acronym>
</simpara>
<simpara>
La mayor parte de las extensiones PECL también están alojadas en <acronym>SVN</acronym>.
Puede consultar la interfaz web en <link xlink:href="&url.php.svn;pecl/">&url.php.svn;pecl/</link>.
Para descargar directamente del <acronym>SVN</acronym>, debe usar la siguiente
secuencia de comandos:
</simpara>
<para>
<screen>
$ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname
</screen>
</para>
</listitem>
<listitem>
<simpara>
Descargas para Windows
</simpara>
<simpara>
Actualmente el proyecto PHP no compila binarios para Windows
de las extensiones PECL. En cualquier caso, para compilar PHP
bajo Windows, revise el capítulo titulado
<link linkend="install.windows.building">construcción de la fuente en Windows</link>.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="install.pecl.windows">
<title>Instalación una extensión de PHP en Windows</title>
<para>
Dispone de dos formas para cargar extensiones PHP en Windows: o bien compilándolas en PHP,
o bien cargando su DLL. El método recomendado y más sencillo es cargar una extensión pre-compilada.
</para>
<para>
Para cargar una extensión, debe estar disponible como fichero ".dll" en su sistema.
Todas las extensiones son compiladas por el Grupo PHP automática y periódicamente
(revise la siguiente sección para realizar descargas).
</para>
<para>
Para compilar una extensión en PHP, por favor, acceda a la documentación de
<link linkend="install.windows.building">construcción de la fuente</link>.
</para>
<para>
Para compilar una extensión independiente (o lo que es lo mismo, un fichero DLL), por favor, revise la
documentación de <link linkend="install.windows.building">construcción de la fuente</link>.
Si el fichero DLL no está disponible ni en su distribución de PHP ni en PECL, deberá compilarla
antes de poder comenzar a usarla.
</para>
<sect2 xml:id="install.pecl.windows.find">
<title>¿Dónde encontrar una extensión?</title>
<para>
Las extensiones de PHP generalmente se llaman "php_*.dll" (donde el asterisco representa
el nombre de la extensión) y se localizan bajo la carpeta "PHP\ext" ("PHP\extensions" en PHP4).
</para>
<para>
PHP se distribuye con las extensiones más útiles para la mayoría de desarrolladores. Se les llama
extensiones del "núcleo".
</para>
<para>
En cualquier caso, si necesita una funcionalidad que no proporciona ninguna de las extensiones
del núcleo, podrá buscarla en PECL. La Biblioteca de la Comunidad de Extensiones de PHP (PECL) es
un repositorio de extensiones PHP, que proporciona un directorio de todas las extensiones conocidas,
y aloja utilidades para descargar y desarrollar extensiones de PHP.
</para>
<para>
Si usted ha desarrollado una extensión para su propio uso, quizá quiera considerar alojarla
en PECL, de forma que otros desarrolladores con las mismas necesidades puedan verse beneficiados
de su tiempo. Una de las ventajas es que tendrá la oportunidad de recibir colaboración,
(ojalá) agradecimientos, informes de errores, e incluso parches/correcciones. Antes de enviar
su extensión para ser alojada en PECL, por favor, lea
&url.pecl.submit;.
</para>
</sect2>
<sect2 xml:id="install.pecl.windows.which">
<title>¿Qué extensión descargar?</title>
<para>
<emphasis>A menudo, encontrará varias versiones de cada DLL:</emphasis>
<itemizedlist>
<listitem>
<simpara>
Números de versión diferentes (al menos los dos primeros números deben coincidir)
</simpara>
</listitem>
<listitem>
<simpara>
Diferentes ajustes de seguridad en hilos
</simpara>
</listitem>
<listitem>
<simpara>
Diferentes arquitecturas de procesadores (x86, x64, ...)
</simpara>
</listitem>
<listitem>
<simpara>
Diferentes ajustes de depuración
</simpara>
</listitem>
<listitem>
<simpara>
<literal>etc.</literal>
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Debe tener en cuenta que los ajustes de su extensión deben coincidir con la configuración
del ejecutable de PHP que está utilizando. El siguiente script de PHP le dirá
<emphasis>todo</emphasis> sobre sus ajustes de PHP:
</para>
<para>
<example>
<title>llamada a <function>phpinfo</function></title>
<programlisting role="php">
<![CDATA[
<?php
phpinfo();
?>
]]>
</programlisting>
</example>
</para>
<para>
O ejecute desde la línea de comandos:
<screen>
<![CDATA[
drive:\\path\to\php\executable\php.exe -i
]]>
</screen>
</para>
</sect2>
<sect2 xml:id="install.pecl.windows.loading">
<title>Cargando una extensión</title>
<para>
La forma más común de cargar una extensión PHP consiste en incluirla en el fichero de configuración
<filename>php.ini</filename>. Por favor, tenga en cuenta que ya hay muchas extensiones
presentes en el fichero <filename>php.ini</filename> y que sólo es necesario eliminar el punto y coma
para activarlas.
<screen>
<![CDATA[
;extension=php_extname.dll
]]>
</screen>
<screen>
<![CDATA[
extension=php_extname.dll
]]>
</screen>
</para>
<para>
Sin embargo, algunos servidores web puede resultar confusos, dado que no utilizan el <filename>php.ini</filename>
ubicado junto al ejecutable de PHP. Para averiguar dónde se localiza el <filename>php.ini</filename> en uso,
consulte su ruta usando <function>phpinfo</function>:
<screen>
<![CDATA[
Configuration File (php.ini) Path C:\WINDOWS
]]>
</screen>
<screen>
<![CDATA[
Loaded Configuration File C:\Program Files\PHP\5.2\php.ini
]]>
</screen>
</para>
<para>
Tras activar una extensión, guarde el fichero <filename>php.ini</filename>, reinicie el servidor web y
vuelva a comprobar <function>phpinfo</function>. La nueva extensión debe ahora tener su propia sección.
</para>
</sect2>
<sect2 xml:id="install.pecl.windows.problemsolving">
<title>Resolviendo problemas</title>
<para>
Si la extensión no aparece en <function>phpinfo</function>, compruebe los registro de errores
para conocer qué provoca el problema.
</para>
<para>
Si está utilizando PHP desde la línea de comandos (CLI), podrá leer directamente en pantalla
el error en la carga de la extensión.
</para>
<para>
Si está usando PHP en un servidor web, la localización y formato de los registros vería en función
de su software. Por favor, lea la documentación de su servidor web para localizar los registros,
dado que esto no lo gestiona el propio ejecutable de PHP.
</para>
<para>
Los problemas más comunes son la ubicación del fichero DLL, el valor de "<link linkend="ini.extension-dir">
extension_dir</link>" en <filename>php.ini</filename>, y desajustes de configuración en tiempo
de compilación.
</para>
<para>
Si el problema reside en desajustes de configuración en tiempo de compilación, seguramente se deba a que no
se ha descargado el fichero DLL correcto. Pruebe a descargar de nuevo la extensión con los ajustes correctos.
De nuevo, <function>phpinfo</function> puede resultar de gran ayuda.
</para>
</sect2>
</sect1>
<sect1 xml:id="install.pecl.pear">
<title>Compilando extensiones PECL compartidas con el comando pecl</title>
<simpara>
PECL facilita la creación de extensiones PHP compartidas. Usando el
<link xlink:href="&url.php.pear.cli;">comando pecl</link>, haga lo siguiente:
</simpara>
<para>
<screen>
$ pecl install extname
</screen>
</para>
<simpara>
Esto descargará el código fuente de <emphasis>extname</emphasis>,
lo compilará, e instalará <filename>extname.so</filename> en su <link
linkend="ini.extension-dir">extension_dir</link>.
Ahora se puede cargar <filename>extname.so</filename> mediante &php.ini;
</simpara>
<simpara>
Por omisión, el comando <literal>pecl</literal> no instalará paquetes
marcados en los estados <literal>alpha</literal> o <literal>beta</literal>.
Si no hay paquetes disponibles en estado <literal>stable</literal>,
podrá instalar un paquete en estado <literal>beta</literal> utilizando el siguiente
comando:
</simpara>
<para>
<screen>
$ pecl install extname-beta
</screen>
</para>
<para>
Del mismo modo, podrá también instalar una versión en concreto usando esta variante:
</para>
<para>
<screen>
$ pecl install extname-0.1
</screen>
</para>
<note>
<para>
Tras activar la extensión en &php.ini;, será necesario reiniciar el servidor web
para hacer efectivos los cambios.
</para>
</note>
</sect1>
<sect1 xml:id="install.pecl.phpize">
<title>Compilando extensiones PEC compartidas con phpize</title>
<simpara>
A menudo no es posible utilizar el instalador <literal>pecl</literal>.
Esto se puede deber a que se encuentra tras un cortafuegos, o a que
la extensión que trata de instalar no está disponible como paquete compatible
con PECL, como por ejemplo extensiones no liberadas desde el SVN. Si necesita
construir una extensión de este tipo, puede llevar a cabo esta tarea manualmente
utilizando las herramientas de construcción de bajo nivel.
</simpara>
<simpara>
El comando <literal>phpize</literal> se utiliza para preparar el entorno
de compilación de la extensión de PHP. En el siguiente ejemplo, el fuente de una extensión
se ubica en un directorio llamado <filename>extname</filename>:
</simpara>
<para>
<screen>
<![CDATA[
$ cd extname
$ phpize
$ ./configure
$ make
# make install
]]>
</screen>
</para>
<simpara>
En caso de que la instalación sea correcta, se creará <filename>extname.so</filename>
y se salvará en el <link linkend="ini.extension-dir">directorio de extensiones</link>
de PHP. Quizá necesite ajustar el fichero &php.ini; y añadir una línea
<literal>extension=extname.so</literal> antes de poder usar la extensión.
</simpara>
<simpara>
Si el sistema no contiene el comando <literal>phpize</literal>, y se están utilizando
paquetes pre-compilados (como RPM), asegúrese de instalar también la
versión de desarrollo apropiada del paquete PHP, dado que a menudo incluyen
el comando <literal>phpize</literal> con los ficheros de cabeceras necesarios
para construir PHP y sus extensiones.
</simpara>
<simpara>
Ejecute <command>phpize --help</command> para mostrar información de uso adicional.
</simpara>
</sect1>
<sect1 xml:id="install.pecl.static">
<title>Compilando extensiones PECL estáticamente en PHP</title>
<simpara>
Quizá necesite construir una extensión PECL estáticamente en su binario
de PHP. Para hacer esto, necesitará ubicar el fuente de la extensión bajo
el directorio <filename>php-src/ext/</filename> e indicarle al sistema de
construcción de PHP que regenere su script de configuración.
</simpara>
<para>
<screen>
<![CDATA[
$ cd /your/phpsrcdir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname
]]>
</screen>
</para>
<simpara>
Esto generará el siguiente directorio:
</simpara>
<para>
<screen>
/your/phpsrcdir/ext/extname
</screen>
</para>
<simpara>
Desde aquí, fuerce a PHP a regenerar el script de configuración, y entonces
construya PHP con normalidad:
</simpara>
<para>
<screen>
$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install
</screen>
</para>
<note>
<simpara>
Necesitará autoconf 2.13 y automake 1.4+ para ejecutar el
script 'buildconf' (es posible que funcionen versiones más recientes de autoconf,
pero no están oficialmente soportadas).
</simpara>
</note>
<simpara>
Dependiendo de la extensión, utilizará <literal>--enable-extname</literal>
o <literal>--with-extname</literal>. Las extensiones que no requieren
de bibliotecas externas generalmente utilizan <literal>--enable</literal>.
Para asegurarse, ejecute el siguiente comando después de buildconf:
</simpara>
<para>
<screen>
$ ./configure --help | grep extname
</screen>
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 303145 $ -->
<!-- EN-Revision: 303145 Maintainer: chuso #464 Status: ready -->
<chapter xml:id="configuration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Configuración en tiempo de ejecución</title>
<sect1 xml:id="configuration.file">
<title>El fichero de configuración</title>
<simpara>
Cuando PHP inicia, lee el fichero de configuración (&php.ini;).
En las versiones en que PHP funciona como módulo de servidor,
esto sucede únicamente cuando se arranca el servidor. Para las versiones
<acronym>CGI</acronym> y <acronym>CLI</acronym>, esto ocurre en
cada ejecución.
</simpara>
<para>
Al fichero &php.ini; se le trata de encontrar en las siguientes localizaciones (en orden):
<itemizedlist>
<listitem>
<para>
Localización específica de módulo SAPI (directiva <literal>PHPIniDir</literal>
en Apache 2, opción de línea de comandos<literal>-c</literal> en CGI y CLI,
parámetro <literal>php_ini</literal> en NSAPI,
variable de entorno <literal>PHP_INI_PATH</literal> en THTTPD)
</para>
</listitem>
<listitem>
<para>
En la variable de entorno <varname>PHPRC</varname>. Antes de PHP 5.2.0
esta localización se comprobaba después de la clave de registro descrita más abajo.
</para>
</listitem>
<listitem>
<para>
A partir de PHP 5.2.0, se puede establecer la localización del fichero
<literal>php.ini</literal> para diferentes versiones de PHP. Se examinan
en orden las siguientes claves de registro:
<literal>[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]</literal>,
<literal>[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]</literal> y
<literal>[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]</literal>, donde
'x', 'y' y 'z' identifican la versión mayor, menor y edición de PHP. Si hubiera
un valor para <literal>IniFilePath</literal> en estas claves, entonces la primera en
ser encontrada se utilizaría como localización del fichero <literal>php.ini</literal> (solo en Windows).
</para>
</listitem>
<listitem>
<para>
<literal>[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]</literal>, valor de
<literal>IniFilePath</literal> (solo en Windows).
</para>
</listitem>
<listitem>
<para>
Directorio actual de trabajo (excepto CLI)
</para>
</listitem>
<listitem>
<para>
El directorio del servidor web (para módulos SAPI), o el directorio de PHP
(excepto en Windows)
</para>
</listitem>
<listitem>
<para>
Directorio de Windows (<filename class="directory">C:\windows</filename>
o <filename class="directory">C:\winnt</filename>) (para Windows), o
<literal>--with-config-file-path</literal> en tiempo de compilación
</para>
</listitem>
</itemizedlist>
</para>
<para>
Si existiera el fichero <filename>php-SAPI.ini</filename> (donde SAPI es la SAPI usada, de manera que
el nombre de fichero es p.ej. <filename>php-cli.ini</filename> o
<filename>php-apache.ini</filename>), se usaría éste en lugar de &php.ini;.
Se puede determinar el nombre de la SAPI usando <function>php_sapi_name</function>.
</para>
<note>
<para>
El servidor web Apache cambia el directorio al raíz al arrancar, haciendo
que PHP intente leer &php.ini; desde la raíz del sistema de ficheros si éste existe.
</para>
</note>
<para>
Las directivas de &php.ini; manejadas por extensiones están documentadas
en la propia página de cada extensión. La <link linkend="ini">lista de
directivas del núcleo</link> están disponibles en su apéndice. Es posible que no todas
las directivas de PHP estén documentadas en el manual. Para consultar una lista completa
de las directivas disponibles en tu versión de PHP, por favor, revise la versión de su fichero
&php.ini; que incluye todos los comentarios. Adicionalmente, puede encontrar útil
<link xlink:href="&url.php.svn.phpini;">el último &php.ini;</link> del SVN.
</para>
<para>
<example>
<title>&php.ini; ejemplo</title>
<programlisting role="ini">
<![CDATA[
; todo texto en una línea tras un punto y coma sin comillas (;) será ignorado
[php] ; los marcadores de sección (textos entre corchetes) también se ignoran
; Los valores de tipo Boolean puede establecerse a:
; true, on, yes
; o false, off, no, none
register_globals = off
track_errors = yes
; puedes encerrar tus strings en comillas dobles
include_path = ".:/usr/local/lib/php"
; las barras reciben el mismo tratamiento que el resto de caracteres
include_path = ".;c:\php\lib"
]]>
</programlisting>
<!-- TODO: add more details about values and expressions -->
</example>
</para>
<para>
A partir de PHP 5.1.0, es posible hacer referencia a variables .ini ya existentes desde
el propio fichero .ini. Ejemplo: <literal>open_basedir = ${open_basedir}
":/new/dir"</literal>.
</para>
</sect1>
<sect1 xml:id="configuration.file.per-user">
<title>ficheros .user.ini</title>
<simpara>
A partir de PHP 5.3.0, PHP incluye soporte para ficheros INI .tipo-htaccess
a nivel de directorios. Estos ficheros <emphasis>solo</emphasis> los procesa
la SAPI CGI/FastCGI. Esta funcionalidad deja obsoleta la extensión PECL htscanner.
Si está usando Apache, use los ficheros &htaccess; para lograr el mismo efecto.
</simpara>
<simpara>
Además del fichero &php.ini; princiapl, PHP escanea en busca de ficheros INI en cada
directorio, empezando por el directorio del fichero PHP solicitado, y
continuando hasta el documento raíz actual (tal y como está establecido en
<varname>$_SERVER['DOCUMENT_ROOT']</varname>). En el caso de que el fichero PHP se encuentre
fuera del documento raíz, sólo se escaneará su directorio.
</simpara>
<simpara>
En los ficheros INI .user.ini sólo se reconocerán
los ajustes INI que tengan los modos
<constant>PHP_INI_PERDIR</constant> y
<constant>PHP_INI_USER</constant>.
</simpara>
<simpara>
Las dos nuevas directivas INI,
<literal>user_ini.filename</literal> y
<literal>user_ini.cache_ttl</literal>
<!--
<link linkend="ini.user-ini.filename">user_ini.filename</link> and
<link linkend="ini.user-ini.cache-ttl">user_ini.cache_ttl</link>
-->
controlan el uso de los ficheros INI de usuarios.
</simpara>
<simpara>
<literal>user_ini.filename</literal> fija el nombre del fichero que PHP buscará
en cada directorio; si se fija un string vacío, PHP directamente no realizará ninguna búsqueda.
El nombre por omisión es <literal>.user.ini</literal>.
</simpara>
<simpara>
<literal>user_ini.cache_ttl</literal> controla con qué frecuencia se reescanean los ficheros
INI de usuario. El valor por omisión es 300 segundos (5 minutos).
</simpara>
</sect1>
<sect1 xml:id="configuration.changes.modes">
<title>Dónde realizar un ajuste de configuración</title>
<para>
Estos modos determinan cuándo y dónde se debe o no asignar una directiva
PHP, y cada directiva del manual hace referencia a uno de estos
modos. Por ejemplo, algunos ajustes pueden establecerse en scripts PHP
usando <function>ini_set</function>, mientras que otros requieren hacerlo en
&php.ini; o en &httpd.conf;.
</para>
<para>
Por ejemplo, el ajuste de
<link linkend="ini.output-buffering">output_buffering</link>
es <literal>PHP_INI_PERDIR</literal> por tanto no puede establecerse usando
<function>ini_set</function>. Sin embargo, la directiva
<link linkend="ini.display-errors">display_errors</link> es
<literal>PHP_INI_ALL</literal> por tanto se puede establecer en cualquier lugar,
incluso con <function>ini_set</function>.
</para>
<para>
<table>
<title>Definición de los modos PHP_INI_*</title>
<tgroup cols="3">
<thead>
<row>
<entry>Modo</entry>
<entry>Valor</entry>
<entry>Significado</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>PHP_INI_USER</literal></entry>
<entry>1</entry>
<entry>
La entrada se puede fijar en scripts de usuario (como con <function>ini_set</function>)
o en el <link linkend="configuration.changes.windows">registro de Windows</link>
</entry>
</row>
<row>
<entry><literal>PHP_INI_PERDIR</literal></entry>
<entry>6</entry>
<entry>La entrada se puede fijar en &php.ini;, &htaccess; o en &httpd.conf;</entry>
</row>
<row>
<entry><literal>PHP_INI_SYSTEM</literal></entry>
<entry>4</entry>
<entry>La entrada se puede fijar en &php.ini; o en &httpd.conf;</entry>
</row>
<row>
<entry><literal>PHP_INI_ALL</literal></entry>
<entry>7</entry>
<entry>La entrada se puede fijar en cualquier lugar</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<sect1 xml:id="configuration.changes">
<title>Cómo cambiar los ajustes de configuración</title>
<sect2 xml:id="configuration.changes.apache">
<title>Ejecutando PHP como un módulo de Apache</title>
<simpara>
Cuando se usa PHP como un módulo de Apache, puede cambiar los
ajustes de configuración usando directivas en los ficheros de configuración
de Apache (p. ej. &httpd.conf;) y en los ficheros &htaccess;. Necesitará
los privilegios "AllowOverride Options" o "AllowOverride All" para poder hacerlo.
</simpara>
<para>
Hay varias directivas de Apache que le permiten
cambiar la configuración de PHP desde los propios ficheros de configuración
de Apache. Para consultar un listado de qué directivas son
<constant>PHP_INI_ALL</constant>, <constant>PHP_INI_PERDIR</constant>,
o <constant>PHP_INI_SYSTEM</constant>, consulte el apéndice de la
<link linkend="ini.list">Lista de directivas de php.ini</link>.
</para>
<para>
<variablelist>
<varlistentry>
<term>
<systemitem role="directive">php_value</systemitem>
<parameter>nombre</parameter>
<parameter>valor</parameter>
</term>
<listitem>
<para>
Fija el valor de la directiva especificada.
Sólo puede usarse con las directivas de tipo <constant>PHP_INI_ALL</constant>
y <constant>PHP_INI_PERDIR</constant>. Para dejar en blanco un valor
previamente establecido, use <literal>none</literal> como valor.
</para>
<note>
<simpara>
No uses <systemitem role="directive">php_value</systemitem> para fijar valores boolean.
Debe usarse en su lugar <systemitem role="directive">php_flag</systemitem> (ver más abajo).
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>
<systemitem role="directive">php_flag</systemitem>
<parameter>nombre</parameter>
<parameter>on|off</parameter>
</term>
<listitem>
<para>
Usado para fijar una directiva de configuración de tipo boolean.
Sólo puede usarse con las directivas de tipo
<constant>PHP_INI_ALL</constant> y <constant>PHP_INI_PERDIR</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<systemitem role="directive">php_admin_value</systemitem>
<parameter>nombre</parameter>
<parameter>valor</parameter>
</term>
<listitem>
<para>
Fija el valor de la directiva especificada.
Esto <emphasis>no se puede usar</emphasis> en ficheros &htaccess;.
Ninguna directiva fijada con <systemitem role="directive">php_admin_value</systemitem>
podrá ser sobrescrita por &htaccess; o por <function>ini_set</function>.
Para borrar un valor fijado previamente use <literal>none</literal> como valor.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<systemitem role="directive">php_admin_flag</systemitem>
<parameter>nombre</parameter>
<parameter>on|off</parameter>
</term>
<listitem>
<para>
Usado para fijar una directiva de configuración de tipo boolean.
Esto <emphasis>no se puede usar</emphasis> en ficheros &htaccess;.
Ninguna directiva fijada con <systemitem role="directive">php_admin_flag</systemitem>
podrá ser sobcrescrita por &htaccess; o por <function>ini_set</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
<example>
<title>Ejemplo de configuración de Apache</title>
<programlisting role="ini">
<![CDATA[
<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag safe_mode on
</IfModule>
]]>
</programlisting>
</example>
</para>
<caution>
<para>
Las constantes de PHP no existen fuera de PHP. Por ejemplo, en
&httpd.conf; no puede usar constantes de PHP
tales como <constant>E_ALL</constant> o <constant>E_NOTICE</constant>
para fijar la directiva <link linkend="ini.error-reporting">error_reporting</link>
puesto que no tendrán ningún significado y se evaluarán a
<emphasis>0</emphasis>. Use en su lugar la máscara de bits asociada.
Estas constantes sí pueden ser usadas en &php.ini;
</para>
</caution>
</sect2>
<sect2 xml:id="configuration.changes.windows">
<title>Cambiando la configuración de PHP a partir del registro de Windows</title>
<simpara>
Cuando se ejecuta PHP en Windows, se pueden modificar los valores
de configuración a nivel de directorio usando el registro de Windows.
Los valores de configuración se almacenan en la clave de registro
<literal>HKLM\SOFTWARE\PHP\Per Directory Values</literal>,
en las sub-claves correspondientes al path. Por ejemplo, los valores
de configuración para el directorio <literal>c:\inetpub\wwwroot</literal>
se almacenarían en la clave <literal>HKLM\SOFTWARE\PHP\Per Directory
Values\c\inetpub\wwwroot</literal>. Los ajustes para el directorio
estarían activos para cualquier script dentro de este directorio o
en cualquier de sus subdirectorios. Los valores bajo esta clave
deben tener el nombre de la directiva de configuración de PHP
y su valor. Las constantes de PHP usadas como valor
no serán procesadas. En cualquier aso, únicamente los valores de configuración
modificables presentes en <constant>PHP_INI_USER</constant> podrán
fijarse con este método, mientras que los valores en <constant>PHP_INI_PERDIR</constant> no.
</simpara>
</sect2>
<sect2 xml:id="configuration.changes.other">
<title>Otras interfaces a PHP</title>
<para>
Independientemente de cómo ejecute PHP, puede cambiar determinados valores
de sus scripts en tiempo de ejecución mediante <function>ini_set</function>.
Consulte la documentación en la página <function>ini_set</function> para más información.
</para>
<para>
Si está interesado en una lista completa de los ajustes de configuración
en su sistema con sus parámetros actuales, puede ejecutar la función
<function>phpinfo</function>, y consultar la página mostrada.
Puede también acceder a los valores de directivas de configuración concretas
usando <function>ini_get</function> o <function>get_cfg_var</function>.
</para>
</sect2>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->