-
Notifications
You must be signed in to change notification settings - Fork 50
/
server.xml
637 lines (585 loc) · 20.1 KB
/
server.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
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e392d576edd328d2c1340a560bfa8c632e1a7c90 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry role="variable" xml:id="reserved.variables.server" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>$_SERVER</refname>
<refname>$HTTP_SERVER_VARS [eliminado]</refname>
<refpurpose>Información del entorno del servidor y de ejecución</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
<varname>$_SERVER</varname> es un array que contiene información, tales
como cabeceras, rutas y ubicaciones de script. Las entradas de este
array son creadas por el servidor web. No hay garantía que cada
servidor web proporcione alguna de estas entradas, existen servidores que
pueden omitir algunas o proporcionar otras no recogidas aquí. Un gran
número de estas variables se encuentran recogidas en <link
xlink:href="&url.rfc;3875">especificación CGI 1.1</link>, así que al menos
debe esperar encontrar estas entradas.
</para>
<note>
<simpara>
Antes de PHP 5.4.0, <varname>$HTTP_SERVER_VARS</varname> contenía la misma información
inicial, aunque no era una <link linkend="language.variables.superglobals">superglobal</link>.
(Observe que <varname>$HTTP_SERVER_VARS</varname> y <varname>$_SERVER</varname>
eran variables diferentes, por lo que PHP las trata de forma distinta).
</simpara>
</note>
</refsect1>
<refsect1 role="indices">
&reftitle.indices;
<simpara>
Puede encontrar o no los siguientes elementos en <varname>$_SERVER</varname>.
Tenga en cuenta que si ejecuta PHP desde
<link linkend="features.commandline">línea de comando</link> pocos o ninguno
de los siguientes elementos estarán disponibles (o tendrán algún significado).
</simpara>
<para>
<variablelist>
<varlistentry>
<term>'<varname>PHP_SELF</varname>'</term>
<listitem>
<simpara>
El nombre del archivo de script ejecutándose actualmente, relativa al
directorio raíz de documentos del servidor. Por ejemplo, el valor de
<varname>$_SERVER['PHP_SELF']</varname> en un script ejecutado en la
dirección <filename>http://example.com/foo/bar.php</filename>
será <filename>/foo/bar.php</filename>.
La constante <link linkend="language.constants.predefined">__FILE__</link>
contiene la ruta completa del fichero actual, incluyendo el nombre del archivo.
</simpara>
<simpara>
Si PHP se está ejecutando como un proceso de línea de comando, esta variable es
el nombre del script desde PHP 4.3.0. En anteriores versiones no estaba
disponible.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<link linkend="reserved.variables.argv">argv</link>'</term>
<listitem>
<simpara>
Array de los argumentos enviados al script. Cuando se ejecuta el
script en línea de comando se obtiene acceso a los parámetros de
línea de comando con un estilo parecido a como sería en C. Cuando se
ejecuta el script mediante el método GET, contendrá la cadena de la consulta.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<link linkend="reserved.variables.argc">argc</link>'</term>
<listitem>
<simpara>
Contiene el número de parámetros de línea de comando enviados
al script (si se ejecuta en línea de comando).
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>GATEWAY_INTERFACE</varname>'</term>
<listitem>
<simpara>
Número de revisión de la especificación CGI que está empleando el
servidor, por ejemplo '<literal>CGI/1.1</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_ADDR</varname>'</term>
<listitem>
<simpara>
La dirección IP del servidor donde se está ejecutando actualmente
el script.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_NAME</varname>'</term>
<listitem>
<simpara>
El nombre del host del servidor donde se está ejecutando actualmente
el script. Si el script se ejecuta en un host virtual se
obtendrá el valor del nombre definido para dicho host virtual.
</simpara>
<note>
<simpara>
Bajo Apache 2, se debe establecer <literal>UseCanonicalName = On</literal>
y <literal>ServerName</literal>. De lo contrario, este valor refleja el
nombre del host proporcionado por el cliente, el cual se puede burlar.
No es seguro depender de este valor en contextos que necesiten seguridad.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_SOFTWARE</varname>'</term>
<listitem>
<simpara>
Cadena de identificación del servidor dada en las cabeceras de
respuesta a las peticiones.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_PROTOCOL</varname>'</term>
<listitem>
<simpara>
Nombre y número de revisión del protocolo de información
a través del cual la página es solicitada, por ejemplo
'<literal>HTTP/1.0</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_METHOD</varname>'</term>
<listitem>
<simpara>
Método de petición empleado para acceder a la página, por ejemplo '<literal>GET</literal>',
'<literal>HEAD</literal>', '<literal>POST</literal>', '<literal>PUT</literal>'.
</simpara>
<note>
<para>
El script de PHP se considera terminado después de enviar las cabeceras
(es decir después de producir cualquier resultado sin emplear buffers para el
resultado) si el método de la petición empleado era <literal>HEAD</literal>.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_TIME</varname>'</term>
<listitem>
<simpara>
Fecha Unix de inicio de la petición. Disponible desde PHP 5.1.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_TIME_FLOAT</varname>'</term>
<listitem>
<simpara>
El timestamp del inicio de la solicitud, con precisión microsegundo.
Disponible desde PHP 5.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>QUERY_STRING</varname>'</term>
<listitem>
<simpara>
Si existe, la cadena de la consulta de la petición de la página.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>DOCUMENT_ROOT</varname>'</term>
<listitem>
<simpara>
El directorio raíz de documentos del servidor en el cual se
está ejecutando el script actual, según está definida en el
archivo de configuración del servidor.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>Accept:</literal> de la petición
actual, si existe.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT_CHARSET</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>Accept-Charset:</literal> de la petición
actual, si existe. Por ejemplo: '<literal>iso-8859-1,*,utf-8</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT_ENCODING</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>Accept-Encoding:</literal> de la petición
actual, si existe. Por ejemplo: '<literal>gzip</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_ACCEPT_LANGUAGE</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>Accept-Language:</literal> de la petición
actual, si existe. Por ejemplo: '<literal>en</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_CONNECTION</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>Connection:</literal> de la petición
actual, si existe. Por ejemplo: '<literal>Keep-Alive</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_HOST</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>Host:</literal> de la petición
actual, si existe.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_REFERER</varname>'</term>
<listitem>
<simpara>
Dirección de la pagina (si la hay) que emplea el agente de usuario para
la pagina actual. Es definido por el agente de usuario. No todos los
agentes de usuarios lo definen y algunos permiten modificar
<varname>HTTP_REFERER</varname> como parte de su funcionalidad. En
resumen, es un valor del que no se puede confiar realmente.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTP_USER_AGENT</varname>'</term>
<listitem>
<simpara>
Contenido de la cabecera <literal>User-Agent:</literal> de la petición
actual, si existe. Consiste en una cadena que indica el agente
de usuario empleado para acceder a la pagina. Un ejemplo típico
es: <computeroutput>Mozilla/4.5 [en] (X11; U;
Linux 2.2.9 i586)</computeroutput>. Entre otras opciones, puede emplear
dicho valor con <function>get_browser</function> para personalizar
el resultado de la salida de la página en función de las capacidades
del agente de usuario empleado.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>HTTPS</varname>'</term>
<listitem>
<simpara>
Ofrece un valor no vacío si el script es pedido mediante el protocolo
HTTPS.
</simpara>
<note>
<simpara>
Tenga en cuenta que si se emplea ISAPI con IIS el valor será
<literal>off</literal> si la petición no se ha realizado a través
del protocolo HTTPS.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_ADDR</varname>'</term>
<listitem>
<simpara>
La dirección IP desde la cual está viendo la página actual el usuario.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_HOST</varname>'</term>
<listitem>
<simpara>
El nombre del host desde el cual está viendo la página actual el usuario. La
obtención inversa del dns está basada en la <varname>REMOTE_ADDR</varname>
del usuario.
</simpara>
<note>
<simpara>
Su servidor web debe estar configurado para crear esta variable. Por
ejemplo en Apache necesita que exista <literal>HostnameLookups On</literal>
dentro de &httpd.conf;. Consulte tambien <function>gethostbyaddr</function>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_PORT</varname>'</term>
<listitem>
<simpara>
El puerto empleado por la máquina del usuario para comunicarse
con el servidor web.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REMOTE_USER</varname>'</term>
<listitem>
<simpara>
El usuario autenticado.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REDIRECT_REMOTE_USER</varname>'</term>
<listitem>
<simpara>
El usuario autenticado si la petición es redirigida internamente.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SCRIPT_FILENAME</varname>'</term>
<listitem>
<para>
La ruta del script ejecutándose actualmente en forma absoluta.
<note>
<para>
Si un script se ejecuta mediante CLI como ruta relativa, como
por ejemplo <filename>file.php</filename> o
<filename>../file.php</filename>, entonces
<varname>$_SERVER['SCRIPT_FILENAME']</varname> contendrá
la ruta relativa especificada por el usuario.
</para>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_ADMIN</varname>'</term>
<listitem>
<simpara>
El valor dado a la directiva SERVER_ADMIN (de Apache) en el
archivo de configuración del servidor web. Si el script se
está ejecutando en un host virtual, el valor dado será el
definido para dicho host virtual.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_PORT</varname>'</term>
<listitem>
<simpara>
El puerto de la máquina del servidor usado por el servidor web
para la comunicación. Para las configuraciones por omisión,
el valor será '<literal>80</literal>'; el empleo de SSL, por ejemplo,
cambiará dicho valor al valor definido para el puerto HTTP seguro.
</simpara>
<note>
<simpara>
Bajo Apache 2, se debe establecer <literal>UseCanonicalName = On</literal>,
así como <literal>UseCanonicalPhysicalPort = On</literal> para poder
obtener el puerto físico (real), de otro modo, este valor podría ser burlado y
podría o no devolver el valor del puerto físico.
No es seguro confiar en este valor en contextos que requieran seguridad.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SERVER_SIGNATURE</varname>'</term>
<listitem>
<simpara>
Cadena que contiene la versión del servidor y el nombre del host virtual
que son añadidas a las páginas generadas por el servidor, si esta habilitada esta funcionalidad.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PATH_TRANSLATED</varname>'</term>
<listitem>
<simpara>
Ruta de acceso basada en el sistema (no en el directorio raíz
de documentos del servidor) del script actual, después de
cualquier mapeo de virtual a real realizada por el servidor.
</simpara>
<note>
<simpara>
A partir de PHP 4.3.2, <envar>PATH_TRANSLATED</envar> no está
definida de forma implícita en el <acronym>SAPI</acronym> de
Apache 2, en comparación a la situación de Apache 1, donde era
necesario establecer el mismo valor que la variable del servidor
<envar>SCRIPT_FILENAME</envar> cuando no era proporcionada
por Apache. Este cambio ha sido realizado para cumplir la
especificación <acronym>CGI</acronym> donde
<envar>PATH_TRANSLATED</envar> sólo debe existir si
<envar>PATH_INFO</envar> esta definida.
</simpara>
<simpara>
Los usuarios de Apache 2 pueden emplear <literal>AcceptPathInfo = On</literal>
dentro de <filename>httpd.conf</filename> para definir <envar>PATH_INFO</envar>.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>SCRIPT_NAME</varname>'</term>
<listitem>
<simpara>
Contiene la ruta del script actual. Esto es de utilidad para
las páginas que necesiten apuntarse a si mismas. La constante
<link linkend="language.constants.predefined">__FILE__</link>
contiene la ruta absoluta y el nombre del archivo actual incluido.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>REQUEST_URI</varname>'</term>
<listitem>
<simpara>
La URI que se empleó para acceder a la página. Por ejemplo:
'<literal>/index.html</literal>'.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_DIGEST</varname>'</term>
<listitem>
<simpara>
Cuando se hace autenticación Digest HTTP, esta variable se establece
para el encabezado 'Authorization' enviado por el cliente (el cual se
debe entonces usar para hacer la validación apropiada).
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_USER</varname>'</term>
<listitem>
<simpara>
Cuando se hace autenticación HTTP, esta variable se establece para el
nombre de usuario provisto por el usuario.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PHP_AUTH_PW</varname>'</term>
<listitem>
<simpara>
Cuando se hace autenticación HTTP, esta variable se establece para la
clave provista por el usuario.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>AUTH_TYPE</varname>'</term>
<listitem>
<simpara>
Cuando se realiza la autenticación HTTP, está variable se establece para el
tipo de autenticación.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>PATH_INFO</varname>'</term>
<listitem>
<simpara>
Contiene cualquier información sobre la ruta proporcionada por el cliente
a continuación del nombre del fichero del script actual pero antecediendo
a la cadena de la petición, si existe. Por ejemplo, si el script actual
se accede a través de la URL
<filename>http://www.example.com/php/path_info.php/some/stuff?foo=bar</filename>,
entonces <varname>$_SERVER['PATH_INFO']</varname> contendrá
<literal>/some/stuff</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>'<varname>ORIG_PATH_INFO</varname>'</term>
<listitem>
<simpara>
Versión original de '<varname>PATH_INFO</varname>' antes de ser procesado por PHP.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.4.0</entry>
<entry>
<varname>$HTTP_SERVER_VARS</varname> ya no está disponible debido a
la eliminación de arrays grandes de registro.
</entry>
</row>
<row>
<entry>5.3.0</entry>
<entry>
La directiva <literal>register_long_arrays</literal>,
la cual hacía que estuviera disponible <varname>$HTTP_SERVER_VARS</varname>
está obsoleta.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example xml:id="variable.server.basic">
<title><varname>Ejemplo de $_SERVER</varname></title>
<programlisting role="php">
<![CDATA[
<?php
echo $_SERVER['SERVER_NAME'];
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
www.example.com
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
¬e.is-superglobal;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><link linkend="book.filter">Filtrado de datos</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
-->