-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathinstallation.xml
602 lines (581 loc) · 20.7 KB
/
installation.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2dbf3d9064d4cb07f0a2f7d06641c877a2e5ed24 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no Maintainer: seros -->
<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. Este está disponible para casi cualquier SO y casi cualquier servidor web.
</para>
<para>
Para instalar PHP, siga las instrucciones de <xref linkend="install"/>.
</para>
<qandaset>
<qandaentry xml:id="faq.installation.apache2">
<question>
<para>
¿Por qué no debe utilizarse Apache2 con un MPM con hilos en un entorno de producción?
</para>
</question>
<answer>
<para>
PHP es el «pegamento» utilizado para desarrollar buenas aplicaciones web
uniendo docenas de bibliotecas de terceros y haciéndolas que parezcan
una entidad coherente a través de una interfaz de lenguaje intuitiva y fácil de
aprender. La flexibilidad y la potencia de PHP residen en la estabilidad y
robustez de la plataforma subyacente. Requiere la combinación de un SO, de un
servidor web y de bibliotecas de terceros, todos correctamente funcionando. Cuando
cualquiera de ellos deja de funcionar, PHP necesita identificar los problemas y corregirlos
rápidamente. Cuando el marco de trabajo subyacente se hace más complejo al no tener
hilos de ejecución completamente independientes, segementos de memoria completamente
independientes y un fuerte entorno de pruebas por cada petición a cubrir, se introducirán
más debilidades en el sistema de PHP.
</para>
<para>
Si desea utilizar un MPM con hilos, considere una configuración de FastCGI
donde PHP se ejecute 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 estar en <filename>/usr/local/lib</filename>,
lo que es <filename><install-path>/lib</filename>.
Para cambiar esta ruta durante la compilación se ha de usar la bandera
<link linkend="configure.with-config-file-path">--with-config-file-path</link>.
Se debería establecer a algo como por ejemplo:
<programlisting role="shell">
--with-config-file-path=/etc
</programlisting>
Luego se debería copiar el fichero <filename>php.ini-development</filename> de la
distribución a <filename>/etc/php.ini</filename> y
editarlo para realizar cualquier cambio necesario.
</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 se utiliza el servidor web Apache, &php.ini; se busca
primero en el directorio de instalación de Apache, p. ej. en <filename>C:\Archivos
de programa\Apache Group\Apache</filename>. De esta forma se pueden tener
distintos ficheros &php.ini; para diferentes versiones de Apache en la misma
máquina.
</para>
<para>
Véase 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: He instalado PHP, pero con cada documento que cargo, obtengo
el mensaje 'Document Contains No Data'. ¿Qué está pasando?
</para>
</question>
<answer>
<para>
Esto probablemente signifique que PHP esté teniendo algún tipo de problema
y esté realizando un volcado de memoria. Revise el registro de errores del servidor
para ver si este es el caso, y después intente reproducir el problema con
una pequeña prueba. Si sabe cómo usar 'gdb', le será de gran ayuda al
poder proporcionar la traza de la pila con el informe de errores para
que los desarrolladores puedan precisar el origen del problema. Si está
utilizando PHP como un módulo de Apache, intente algo así:
<itemizedlist>
<listitem>
<para>
Detener los procesos httpd
</para>
</listitem>
<listitem>
<para>
gdb httpd
</para>
</listitem>
<listitem>
<para>
Detener los procesos httpd
</para>
</listitem>
<listitem>
<para>
> run -X -f /ruta/al/httpd.conf
</para>
</listitem>
<listitem>
<para>
Luego obtenga el URL que causa el problema con su explorador
</para>
</listitem>
<listitem>
<para>
> run -X -f /ruta/al/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 la traza en su informe de errores, el cual debe 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 asegurarse de
que PHP y Apache se compilaron 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: He instalado PHP usando paquetes RPM, pero Apache no procesa los
las páginas de PHP. ¿Qué está pasando?
</para>
</question>
<answer>
<para>
Asumiendo que instaló tanto Apache como PHP desde paquetes RPM,
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: Le he aplicado a Apache 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 funciona bien con las extensiones de FrontPage. El problema
radica en que dicho parche modifica varias estructuras de Apache de
las que depende PHP. La recompilación de PHP (con 'make clean ; make')
tras la aplicación del parche debería resolver el problema.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.blankscreen">
<question>
<para>
Unix/Windows: He inslatado PHP, pero cuando intento acceder a ficheros
de script de 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 script de PHP.
Esto significa que el servidor web no envió el script a PHP
para interpretarlo. Algo está mal en la configuración del
servidor: vuelva a comprobarla con respecto a
las instrucciones de instalación de PHP.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.500error">
<question>
<para>
Unix/Windows: He instalado PHP, pero cuando intento acceder a
un fichero de script de PHP a través de mi navegador, obtengo
un error 500 del servidor.
</para>
</question>
<answer>
<para>
Algo falló cuando el servidor intentó ejecutar PHP. Para
obtener un mensaje de error detallado desde la línea de comandos,
vaya 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 ejecutarse,
el correspondiente error será mostrado en pantalla proporcionando
una pista sobre lo que debe hacer a continuación. Si
obtiene una pantalla completa de código HTML (la salida de la
función <function>phpinfo</function>) es porque PHP está funcionando,
y su problema puede estar relacionado con la configuración del
servidor, la cual debería de volver a revisar.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.undefinedsyms">
<question>
<para>
Algunos sistemas operativos: He instalado PHP sin errores, pero cuando
intento iniciar Apache, obtengo errores de Símbolos no definidos:
<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 cliente de MySQL. Algunas necesitan <option
role="configure">--with-zlib</option>, otras no. Esto
también se trata en las Preguntas frecuentes de MySQL.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.cgierror">
<question>
<para>
Windows: He instalado PHP, pero cuando intento acceder a un fichero
de script de 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 no pudo imprimir
nada. Para obtener un mensaje de error detallado desde la
línea de comandos, vaya al directorio que contiene el ejecutable
de PHP (<filename>php.exe</filename> en Windows) y ejecute
<command>php -i</command>. Si PHP tiene problemas al ejecutarse,
el correspondiente error será mostrado en pantalla proporcionando
una pista sobre lo que debe hacer a continuación. Si
obtiene una pantalla completa de código 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 nuevamente al script a través de su navegador. Si continúa
fallando, podría ser por una de las siguientes razones:
</para>
<itemizedlist>
<listitem>
<simpara>
Los permisos de fichero en el script de PHP,
<filename>php.exe</filename>, <filename>php5ts.dll</filename>,
&php.ini; o cualquier extensión de PHP que esté intentando cargar,
son tales que el usuario de internet anónimo
<literal>ISUR_<machinename></literal> no puede acceder a ellos.
</simpara>
</listitem>
<listitem>
<simpara>
El fichero de script no existe (o quizá no se ubique en donde usted
cree que está en relación a su directorio raíz web). Observe que
para IIS se puede manejar este error señalando la casilla 'comprobar si
el fichero existe' al configurar la correspondencia de scripts en el
Administrador de Servicios de Internet. Si un fichero de script no existe,
el servidor devolverá un error HTTP 404 en su lugar. IIS también
brinda el beneficio adicional de encargarse de cualquier autenticación
requerida de forma automática basándose en lospermisos
NTLanMan de su fichero de script.
</simpara>
</listitem>
</itemizedlist>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.phpandiis">
<question>
<para>
Windows: He seguido todas las instrucciones, pero todavía no puedo
hacer que PHP e IIS funcionen juntos.
</para>
</question>
<answer>
<para>
Asegúrese de que todo usuario que necesite ejecutar un script de PHP tenga los
permisos para ejecutar <filename>php.exe</filename>. IIS utiliza un usuario
anónimo que se añade en el momento de su instalación. Este usuario necesita
permisos para <filename>php.exe</filename>. Además, cualquier usuario
autenticado necesitará permisos para poder ejecutar <filename>php.exe</filename>.
Asimismo, es necesario indicarle a IIS4 que PHP es un motor de script.
Le podría interesar leer también estas
<link linkend="faq.installation.forceredirect">preguntas frecuentes</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 establecerse a <literal>0</literal>.
Por defecto es <literal>1</literal>, por lo que debe asegurarse
de que no esté comentada (con un <literal>;</literal>). Como
todas las directivas, se configura en &php.ini;
</para>
<para>
Debido a que su valor predeterminado es <literal>1</literal>, es crítico
asegurarse al 100% de estar leyendo el fichero &php.ini; correcto.
Lea estas <link linkend="faq.installation.findphpini">preguntas frecuentes</link>
para más detalles.
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.findphpini">
<question>
<para>
¿Cómo sé si mi &php.ini; se ha encontrado y se está leyendo? Parece
como si no lo fuera, ya que los cambios que realizo no se implementan.
</para>
</question>
<answer>
<para>
Para asegurarse de 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á dónde está buscando PHP el &php.ini; y si está
siendo leído o no. Si existe solo un directorio en <envar>PATH</envar>,
entonces PHP no está leyéndolo, por lo que debería colocar su &php.ini;
en tal directorio. Si &php.ini; está incluido dentro de <envar>PATH</envar>,
es que se está leyendo.
</para>
<para>
Si &php.ini; está siendo leído y PHP se está ejecutando como un módulo,
deberá reiniciar su servidor web tras aplicar los cambios a
&php.ini;
</para>
<para>
Véase 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:
<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>
Haga 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 (seguramente tendrá que desplazarse para encontrarla)
</para></listitem>
<listitem><para>
Haga doble clic en la entrada Path
</para></listitem>
<listitem><para>
Ingrese su directorio de PHP al final de todo, con un ';' antes (p.ej.,
<literal>;C:\php</literal>)
</para></listitem>
<listitem><para>
Presione OK
</para></listitem>
</itemizedlist>
</para>
<note>
<simpara>
Asegúrese de reiniciar tras seguir los pasos anteriores para garantizar
que se apliquen los cambios a <envar>PATH</envar>.
</simpara>
</note>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.phprc">
<question>
<para>
¿Cómo hago que el fichero &php.ini; esté disponible para PHP en Windows?
</para>
</question>
<answer>
<para>
Hay varias formas de hacerlo. Si está usando Apache, lea
las instrucciones específicas de instalación, o de lo contrario,
debe configurar la variable de entorno <varname>PHPRC</varname>:
</para>
<para>
En Windows:
<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></listitem>
<listitem><para>
Vaya a la pestaña Avanzado
</para></listitem>
<listitem><para>
Haga clic en el botón 'Variables de Entorno'
</para></listitem>
<listitem><para>
Revise el panel de 'Variables de Sistema'
</para></listitem>
<listitem><para>
Haga clic en 'Nuevo' e ingrese 'PHPRC' como nombre de variable, y el
directorio donde se encuentra &php.ini; como el valor de la variable
(p.ej., <literal>C:\php</literal>)
</para></listitem>
<listitem><para>
Presione OK y reinicie la máquina
</para></listitem>
</itemizedlist>
</para>
</answer>
</qandaentry>
<qandaentry xml:id="faq.installation.windows-temporary-path">
<question>
<simpara>
Windows: ¿Cómo se verifica que PHP puede escribir en el directorio temporal
bajo IIS?
</simpara>
</question>
<answer>
<procedure>
<step>
<simpara>
Haga clic derecho en el directorio temporal (<varname>%TEMP%</varname>)
en el Explorador de archivos para obtener los permisos.
El directorio temporal está disponible desde la configuración o
<function>phpinfo</function>.
</simpara>
</step>
<step>
<simpara>
Para IIS, verifique que el usuario <literal>IIS_User</literal> tenga
permiso <literal>MODIFY</literal>.
</simpara>
</step>
</procedure>
</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 ficheros de PHP incluyen la extensión, todo funciona perfectamente.
Estas preguntas frecuentes son solo para aquellos casos en los que los enlaces a
ficheros de PHP no incluyen la extensión y se desea utilizar la negociación de
contenidos para elegir ficheros de PHP sin extensión desde un URL.
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 únicamente 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 solo se van a manejar los métodos GET y POST, esto 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
-->