1
0
mirror of https://github.com/php/doc-es.git synced 2026-04-24 23:58:06 +02:00
Files
archived-doc-es/faq/installation.xml
T
Pedro Antonio Gil Rodríguez 1126451cee Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337595 c90b9560-bf6c-de11-be94-00142212c4b1
2015-08-23 18:49:19 +00:00

625 lines
22 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 7e514a8dbca07f4431971907831217ada214a9f8 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="faq.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Instalación</title>
<titleabbrev>Instalación</titleabbrev>
<para>
Esta sección contiene preguntas comunes sobre la forma de instalar
PHP. PHP está disponible para casi cualquier OS (excepto para
MacOS antes de OSX), y casi todos los servidores web.
</para>
<para>
Para instalar PHP, siga las instrucciones en <xref linkend="install"/>.
</para>
<qandaset>
<qandaentry xml:id="faq.installation.apache2">
<question>
<para>
¿Porqué Apache2 no debería ser utilizado con un MPM en un entorno de producción?
</para>
</question>
<answer>
<para>
PHP es pegamento. Es el pegamento utilizado para desarrollar buenas aplicaciones
web uniendo docenas de bibliotecas 3rd-party y haciéndolas aparentar como una
coherente a través de una interfaz lingual, intuitiva y fácil de estudiar.
La flexibilidad y poder de PHP reside en la estabilidad y robustez de la
plataforma en la que corre. REquiere de un OS, de un servidor web y de
bibliotecas 3rd-party (todos correctamente funcionando) para combinarlos.
Cuando cualquiera de estos deja de funcionar, PHP necesita formas de identificar
los problemas y arreglarlos rápidamente. Cuando el marco de referencia base se
hace más complejo al no tener las tareas de ejecución y los segmentos de memoria
completamente separados y un fuerte entorno de pruebas por cada instancia a cubrir,
apareceran deficiencias en el sistema de PHP.
</para>
<para>
Si desea utilizar un MPM por hilos, considere una configuración de FastCGI donde PHP
este corriendo en su propio espacio de memoria.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.phpini">
<question>
<para>
Unix/Windows: ¿Donde debería ubicarse mi fichero &php.ini;?
</para>
</question>
<answer>
<para>
Por defecto en Unix debería ser en <filename>/usr/local/lib</filename>
lo que es igual a <filename>&lt;install-path&gt;/lib</filename>.
Mucha gente querrá cambia resto al momento de compilar con el flag
<link linkend="configure.with-config-file-path">--with-config-file-path</link>.
Debería ser seteado, por ejemplo, con algo parecido:
<programlisting role="shell">
--with-config-file-path=/etc
</programlisting>
Y luego se copiaría el <filename>php.ini-development</filename> de la
distribución a <filename>/etc/php.ini</filename> y sería editado acorde
a los cambios locales deseados.
</para>
<programlisting role="shell">
--with-config-file-scan-dir=PATH
</programlisting>
<para>
En Windows la ruta predeterminada para el fichero &php.ini; es el directorio
Windows. Si está usando el servidor web Apache, &php.ini; es buscado en
principio en el directorio de instalación de Apaches, por ej.<filename>C:\Archivos
de programa\Apache Group\Apache</filename>. De esta forma se pueden utilizar distintos
ficheros &php.ini; para diferentes versiones de Apache en la misma máquina.
</para>
<para>
Vea también el capítulo sobre el <link
linkend="configuration.file">fichero de configuración</link>.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.nodata">
<question>
<para>
Unix: Instalé PHP, ¡pero con cada documento cargado recibo
el mensaje 'Document Contains No Data'! ¿Qué está pasando aquí?
</para>
</question>
<answer>
<para>
Esto probablemente signifique que PHP está teniendo algún tipo de problema
y realiza un volcado de memoria. Revise en el log de errores de su servidor
para ver si éste es el caso, y después intente reproducir el problema con
una pequeña prueba. Si sabe cómo usar 'gdb', será de gran ayuda cuando un
backtrace pueda ser incluido en su reporte de bug para ayudar a los
desarrolladores a localizar el problema. Si PHP es utilizado como módulo
de Apache intente algo como:
<itemizedlist>
<listitem>
<para>
Detener sus procesos httpd
</para>
</listitem>
<listitem>
<para>
gdb httpd
</para>
</listitem>
<listitem>
<para>
Detener sus procesos httpd
</para>
</listitem>
<listitem>
<para>
&gt; Ejecute -X -f /path/to/httpd.conf
</para>
</listitem>
<listitem>
<para>
Luego indique la URL que causa el problema con su explorador
</para>
</listitem>
<listitem>
<para>
&gt; Ejecute -X -f /path/to/httpd.conf
</para>
</listitem>
<listitem>
<para>
Si resulta en un volcado de memoria, gdb debería informárselo al instante
</para>
</listitem>
<listitem>
<para>
escriba: bt
</para>
</listitem>
<listitem>
<para>
Debería incluir su backtrace en su reporte de bug, el cual debería ser enviado a
<link xlink:href="&url.php.bugs;">&url.php.bugs;</link>
</para>
</listitem>
</itemizedlist>
</para>
<para>
Si su script utiliza las funciones de expresiones regulares
(<function>preg_match</function> y similares), debería sersionarse
que PHP y Apache fueron compilados con los mismos paquetes de
expresiones regulares. Esto debería ocurrir automáticamente con
PHP y Apache 1.3.x
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.processing">
<question>
<para>
Unix: Instalé PHP usando RPMS, ¡pero Apache no procesa los
los documentos PHP! ¿Qué está sucediendo aquí?
</para>
</question>
<answer>
<para>
Asumiendo que instaló tanto Apache como PHP desde paquetes RPM,
se necesita descomentar, o agregar algunas o todas de las
siguientes líneas en su fichero &httpd.conf;:
<programlisting role="apache-conf">
<![CDATA[
# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c
# Extra Modules
LoadModule php_module modules/mod_php.so
LoadModule php5_module modules/libphp5.so
LoadModule perl_module modules/libperl.so
]]>
</programlisting>
Y agregar:
<programlisting role="apache-conf">
<![CDATA[
AddType application/x-httpd-php .php
]]>
</programlisting>
... a las propiedades globales, o a las propiedades del
VirtualDomain que desee que tenga añadido el soporte para PHP.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.frontpage">
<question>
<para>
Unix: Apache fue parchado con el parche de extensiones de FrontPage,
y de pronto PHP dejó de funcionar. ¿Acaso PHP es incompatible con las
extensiones de FrontPage para Apache?
</para>
</question>
<answer>
<para>
No, PHP trabaja bien con las extensiones de FrontPage. El problema
radica en que dicho parche modifica varias estructuras de Apache en
las que PHP confía. La recompilación de PHP (usando 'make clean ; make')
luego de que el parche haya sido aplicado debería resolver el problema.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.blankscreen">
<question>
<para>
Unix/Windows: Instalé PHP, pero cuando intento acceder a archivos
PHP a través de mi navegador, obtengo la pantalla en blanco.
</para>
</question>
<answer>
<para>
Ejecute 'ver código fuente' en el navegador web y probablemente
encontrará que puede ver el código fuente de su archivo PHP.
Esto significa que el servidor web no envió el script PHP para
su interpretación. Algo está mal en la configuración del servidor
- chequéelo tantas veces sea necesario respecto de las
instrucciones de instalación de PHP.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.500error">
<question>
<para>
Unix/Windows: Instalé PHP, pero cuando intento acceder a archivos
PHP a través de mi navegador, obtengo el error de servidor HTTP 500.
</para>
</question>
<answer>
<para>
Algo falla cuando el servidor intenta ejecutar PHP. Para
obtener un mensaje de error detallado, desde la línea de comandos,
cambie al directorio que tiene el ejecutable de PHP
(<filename>php.exe</filename> en Windows) y ejecute
<command>php -i</command>. Si PHP tiene problemas al correr,
el correspondiente error será impreso en pantalla, el cual
le dará una pista sobre lo que debe hacer a continuación.
Si obtiene una pantalla completa de códigos HTML (la salida de la
función <function>phpinfo</function>) es porque PHP está funcionando,
y su problema puede estar relacionado a la configuración de su servidor,
la cual debería corroborar.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.undefinedsyms">
<question>
<para>
Varios sistemas operativos: Instalé PHP sin errores, pero cuando
intento iniciar Apache, obtengo errores de símbolos indefinidos:
<programlisting role="shell">
[mybox:user /src/php5] root# apachectl configtest
apachectl: /usr/local/apache/bin/httpd Undefined symbols:
_compress
_uncompress
</programlisting>
</para>
</question>
<answer>
<para>
Esto, en realidad, no tiene nada que ver con PHP, sino con
las bibliotecas de cliente MySQL. Algunas necesitan <option
role="configure">--with-zlib</option>, otras no. Esto
también se trata en la FAQ de MySQL.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.cgierror">
<question>
<para>
Windows: Instalé PHP, pero cuando intento acceder a archivos
PHP a través de mi navegador, obtengo el error:
<screen>
<![CDATA[
cgi error:
The specified CGI application misbehaved by not
returning a complete set of HTTP headers.
The headers it did return are:
]]>
</screen>
</para>
</question>
<answer>
<para>
Este mensaje de error significa que PHP falló al intentar producir
un retorno. Para poder ver un mensaje de error detallado, desde la
línea de comandos, cambie al directorio que tiene el ejecutable
de PHP (<filename>php.exe</filename> en Windows) y ejecute
<command>php -i</command>. Si PHP tiene problemas al correr,
el correspondiente error será impreso en pantalla, el cual
le dará una pista sobre lo que debe hacer a continuación.
Si obtiene una pantalla completa de códigos HTML (la salida de la
función <function>phpinfo</function>) es porque PHP está funcionando.
</para>
<para>
Una vez que PHP esté funcionando desde la línea de comandos,
intente acceder al archivo PHP a través de su navegador nuevamente.
Si continúa fallando podría ser por una de las siguientes razones:
</para>
<itemizedlist>
<listitem>
<simpara>
Permisos de archivo en su script PHP,
<filename>php.exe</filename>, <filename>php5ts.dll</filename>,
&php.ini; o cualquier extensión PHP que esté intentando cargar
son de tal que el usuario anónimo de internet
<literal>ISUR_&lt;machinename&gt;</literal> no puede acceder a ellos.
</simpara>
</listitem>
<listitem>
<simpara>
El archivo no existe (o posiblememte no está donde cree, lo
que es relativo a su directorio web raíz). Note que para IIS
se puede tildar la casilla 'comprobar si el archivo existe'
cuando setea el mapeo de scripts en el Administrador de Servicios
de Internet para darse cuenta si eso es lo que realmente sucede.
Si un archivo no existe, entonces el servidor devolverá un error
HTTP 404. El IIS también brinda el beneficio adicional de encargarse
de cualquier autenticación requerida por Ud., basado en los permisos
NTLanMan en su archivo.
</simpara>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.phpandiis">
<question>
<para>
Windows: Seguí todas las instrucciones, ¡pero todavía no puedo
hacer que PHP y el IIS funcionen juntos!
</para>
</question>
<answer>
<para>
¡Asegúrese de que todos los usuarios que necesiten ejecutar PHP
tengan los permisos para ejecutar <filename>php.exe</filename>!
IIS utiliza un usuario anónimo que se crea en el momento
en que éste es instalado. Este usuario necesita permisos para
<filename>php.exe</filename>. Además, cualquier usuario autenticado
necesitará permisos para poder ejecutar <filename>php.exe</filename>.
Y para IIS4 se necesita indicarle que PHP es un intérprete. También
le interesará leer <link linkend="faq.installation.forceredirect">esta FAQ</link>.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.forceredirect">
<question>
<para>
Cuando ejecuto PHP como CGI con IIS, PWS, OmniHTTPD o Xitami,
obtengo el siguiente error: <literal>Security Alert! PHP CGI
cannot be accessed directly.</literal>.
</para>
</question>
<answer>
<para>
La directiva <link linkend="ini.cgi.force-redirect">
cgi.force_redirect</link> debe equivaler a <literal>0</literal>.
Por defecto equivale a <literal>1</literal> por lo que debe
asegurarse de que no este comentada (con un <literal>;</literal>).
Como todas las directivas, esto se configura en &php.ini;
</para>
<para>
Debido a que por defecto es <literal>1</literal>, es crítico
que esté seguro al 100% que se está leyendo el archivo &php.ini;
correcto. Por favor lea
<link linkend="faq.installation.findphpini">esta FAQ</link> para detalles.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.findphpini">
<question>
<para>
¿Cómo tengo la certeza de que mi &php.ini; está siendo encontrado
y correctamente leído? Pareciera que no porque mis cambios no
están siendo implementados.
</para>
</question>
<answer>
<para>
Para asegurarse que PHP está leyendo su &php.ini;, realice una
llamada a <function>phpinfo</function>. Cerca de la parte superior,
habrá una lista llamada <literal>Configuration File (php.ini)</literal>.
Allí figurará en qué parte PHP está buscando &php.ini; y si se
está leyendo o no. Si existe sólo un directorio en <envar>PATH</envar>,
entonces PHP no está leyéndolo, y debería moverlo dentro de dicho
directorio. Si &php.ini; está incluido dentro de la <envar>PATH</envar> indicada,
está siendo leído.
</para>
<para>
Si &php.ini; está siendo leído y PHP está corriendo como un módulo,
entonces deberá reiniciar su servidor web luego de aplicar los cambios
a &php.ini;
</para>
<para>
Vea también <function>php_ini_loaded_file</function>.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.addtopath">
<question>
<para>
¿Cómo agrego mi directorio de PHP a <envar>PATH</envar>
en Windows?
</para>
</question>
<answer>
<para>
En Windows 7, XP, Vista, 2008, 2012 en adelante:
<itemizedlist>
<listitem><para>
Vaya a Panel de Control y abra el icono Sistema (Inicio → Panel de control)
</para></listitem>
<listitem><para>
Vaya a la pestaña Avanzado
</para></listitem>
<listitem><para>
Clic en el botón 'Variables de Entorno'
</para></listitem>
<listitem><para>
Revise la parte de 'Variables de Sistema'
</para></listitem>
<listitem><para>
Encuentre la entrada Path (de seguro tendrá que desplazarse para encontrarla)
</para></listitem>
<listitem><para>
Doble clic en la entrada Path
</para></listitem>
<listitem><para>
Ingrese su directorio de PHP al final de todo, con un ';' antes (por ej.,
<literal>;C:\php</literal>)
</para></listitem>
<listitem><para>
Presione OK
</para></listitem>
</itemizedlist>
</para>
<para>
En Windows 98/Me necesita editar el archivo <filename>autoexec.bat</filename>:
<itemizedlist>
<listitem><para>
Abra el Bloc de Notas (Inicio → Ejecutar y escriba notepad)
</para></listitem>
<listitem><para>
Abra el archivo <filename>C:\autoexec.bat</filename>
</para></listitem>
<listitem><para>
Localice la línea con PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... y agregue:
<literal>;C:\php</literal> en el final de la línea
</para></listitem>
<listitem><para>
Guarde el archivo y reinicie la máquina
</para></listitem>
</itemizedlist>
</para>
<note>
<simpara>
Asegúrese de reiniciar luego de seguir los pasos de arriba para garantizar
que los cambios a <envar>PATH</envar> se apliquen.
</simpara>
</note>
<para>
El manual de PHP solía promover el copiado de archivos dentro del directorio
de sistema de Windows, esto es porque este directorio
(<filename>C:\Windows</filename>, <filename>C:\WINNT</filename>, etc.)
está por defecto en los sistemas de <envar>PATH</envar>. Copiar archivos dentro del
directorio de sistema de Windows hace tiempo que ya no se utiliza y puede
causar problemas.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.phprc">
<question>
<para>
¿Cómo hago al archivo &php.ini; disponible para PHP en Windows?
</para>
</question>
<answer>
<para>
Hay varias formas de hacer esto. Si está usando Apache, lea
sus instrucciones específicas de instalación (<link
linkend="install.windows.apache1">Apache 1</link>, <link
linkend="install.windows.apache2">Apache 2</link>), a menos
que deba configurar la variable de entorno <varname>PHPRC</varname>:
</para>
<para>
En Windows NT, 2000, XP y 2003:
<itemizedlist>
<listitem><para>
Vaya a Panel de Control y abra el icono Sistema (Inicio → Configuración
→ Panel de Control → Sistema, o directamente Inicio → Panel de Control
→ Sistema para Windows XP/2003)
</para></listitem>
<listitem><para>
Vaya a la pestaña Avanzado
</para></listitem>
<listitem><para>
Clic en el botón 'Variables de Entorno'
</para></listitem>
<listitem><para>
Revise la parte de 'Variables de Sistema'
</para></listitem>
<listitem><para>
Clic en 'Nuevo' e ingrese 'PHPRC' como el nombre de variable y el
directorio donde &php.ini; se encuentra como el valor de variable
(por ej., <literal>C:\php</literal>)
</para></listitem>
<listitem><para>
Presione OK y reinicie la máquina
</para></listitem>
</itemizedlist>
</para>
<para>
En Windows 98/Me necesita editar el archivo <filename>autoexec.bat</filename>:
<itemizedlist>
<listitem><para>
Abra el Bloc de Notas (Inicio → Ejecutar y escriba notepad)
</para></listitem>
<listitem><para>
Abra el archivo <filename>C:\autoexec.bat</filename>
</para></listitem>
<listitem><para>
Agregue una nueva línea al final del archivo: <literal>set
PHPRC=C:\php</literal> (reemplace <literal>C:\php</literal>
con el directorio donde se encuentre &php.ini;). Por favor
note que la ruta no puede contener espacios. Por ejemplo,
si instaló PHP en <filename>C:\Archivos de programa\PHP</filename>,
debería ingresar <filename>C:\ARCHIV~1\PHP</filename> en su lugar.
</para></listitem>
<listitem><para>
Guarde el archivo y reinicie la máquina
</para></listitem>
</itemizedlist>
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.apache.multiviews">
<question>
<para>
¿Es posible usar la negociación de contenidos de Apache (opción MultiViews)
con PHP?
</para>
</question>
<answer>
<para>
Si los enlaces a archivos PHP incluyen la extensión, todo funciona
perfectamente. Esta FAQ es sólo para aquellos casos en los que los
enlaces a archivos PHP no incluyen la extensión y desea utilizar
la negociación de contenidos para elegir archivos PHP desde una URL
sin extensión.
En este caso, reemplace la línea <literal>AddType application/x-httpd-php
.php</literal> con:
<programlisting role="apache-conf">
<![CDATA[
AddHandler php5-script php
AddType text/html php
]]>
</programlisting>
Esta solución no funciona para Apache 1 ya que el módulo de PHP no capta
<literal>php-script</literal>.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.requestmethods">
<question>
<para>
¿PHP se limita a procesar sólo métodos de peticiones GET y POST?
</para>
</question>
<answer>
<para>
No, es posible manejar cualquier método de peticiones, por, ej., CONNECT.
El estado de respuesta apropiado puede ser enviado con <function>header</function>.
Si sólo los métodos GET y POST deberían ser manejados, se puede lograr con
la siguiente configuración de Apache:
<programlisting role="apache-conf">
<![CDATA[
<LimitExcept GET POST>
Deny from all
</LimitExcept>
]]>
</programlisting>
</para>
</answer>
</qandaentry>
</qandaset>
</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
-->