/
apache2.xml
379 lines (330 loc) · 11.4 KB
/
apache2.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 445962cfde047efd759cfc37006a5c5864864ef5 Maintainer: aeoris Status: ready -->
<!-- Reviewed: yes -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Apache 2.x sobre sistemas Unix</title>
<para>
Esta sección contiene notas y consejos específicos a las instalaciones de Apache 2.x
de PHP sobre sistemas Unix.
</para>
&warn.apache2.compat;
<para>
La <link xlink:href="&url.apache2.docs;">Documentación de Apache</link>
es la fuente de información más autorizada acerca del servidor Apache 2.x.
Ahí se puede encontrar más información acerca de las opciones de
instalación.
</para>
<para>
La versión más reciente de Apache HTTP Server puede obtenerse del
<link xlink:href="&url.apache;">Sitio de descargas de Apache</link>,
y una versión apropiada de PHP de los lugares anteriormente mencionados.
Esta guía rápida solamente cubre lo básico para comenzar con Apache 2.x
y PHP. Para obtener más información lea la
<link xlink:href="&url.apache2.docs;">Documentación de Apache</link>.
Los números de versión han sido omitidos aquí, para asegurar que las
instrucciones no sean incorrectas. En los ejemplos siguientes, 'NN' deberá ser
reemplazado con la versión específica de Apache que se está utilizando.
</para>
<para>
Existen actualmente dos versiones de Apache 2.x - está la 2.0 y la 2.2.
Mientras que existen varias razones para elegir cada una, la 2.2 es actualmente
la versión más reciente, y la que se recomienda, si es que esa opción está
disponible. Sin embargo, las instrucciones aquí funcionarán ya sea para
2.0 ó 2.2.
</para>
<orderedlist>
<listitem>
<para>Obténgase el servidor HTTP Apache de la ubicación listada con anterioridad,
y desempáquese:</para>
<informalexample>
<screen>
<![CDATA[
gzip -d httpd-2_x_NN.tar.gz
tar -xf httpd-2_x_NN.tar
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>De la misma manera, obtener y desempacar las fuentes de PHP:</para>
<informalexample>
<screen>
<![CDATA[
gunzip php-NN.tar.gz
tar -xf php-NN.tar
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Compilar e instalar Apache. Consúltese la documentación de instalación de Apache para
mayores detalles sobre la compilación de Apache.
</para>
<informalexample>
<screen>
<![CDATA[
cd httpd-2_x_NN
./configure --enable-so
make
make install
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Ahora se tiene Apache 2.x.NN disponible debajo de /usr/local/apache2,
configurado con soporte para módulos cargables y con el MPM (Módulo de multiproceso) prefork estándar.
Para probar la instalación úsese el procedimiento para iniciar
el servidor Apache, por ej.:
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>
y deténgase el servidor para proceder con la configuración para PHP:
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl stop
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Ahora, configure y compile PHP. Aquí es donde se personaliza PHP
con varias opciones, como qué extensiones se han de habilitar. Ejecute
./configure --help para obtener una lista de opciones disponibles. En el ejemplo
se realiza un simple configure con soporte para Apache 2 y MySQL.
</para>
<para>
Si se compila Apache a partir de los fuentes, tal como se describe anteriormente, el siguiente ejemplo
coincidirá con la trayectoria para apxs, pero si se ha instalado Apache de alguna otra manera, será
necesario ajustar la trayectoria a apxs apropiadamente. Nótese que algunas distribuciones pueden renombrar
apxs cómo apxs2.
</para>
<informalexample>
<screen>
<![CDATA[
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install
]]>
</screen>
</informalexample>
<para>
Si se decide a cambiar las opciones de configuración después de la instalación,
se deben volver a ejecutar los pasos configure, make, y make install.
Solamente se necesita
reiniciar apache para que el nuevo módulo tenga efecto. Una recompilación de
Apache no es necesaria.
</para>
<para>
Nótese que a menos que se indique lo contrario, 'make install' también instalará PEAR,
varias herramientas de PHP tales como phpize, instalará la interfaz de línea de comando (CLI) de PHP, y más.
</para>
</listitem>
<listitem>
<para>
Configurar php.ini
</para>
<informalexample>
<screen>
<![CDATA[
cp php.ini-development /usr/local/lib/php.ini
]]>
</screen>
</informalexample>
<para>
Se puede editar el fichero .ini para fijar las opciones de PHP. Si se prefiere tener
php.ini en otra ubicación, utilice --with-config-file-path=/alguna/trayectoria en el
paso 5.
</para>
<para>
Si en vez de eso se elige php.ini-production, asegúrese de leer la lista
de cambios al interior, ya que afectan como se comporta PHP.
</para>
</listitem>
<listitem>
<para>
Edítese httpd.conf para cargar el módulo PHP. La trayectoria a la derecha
de la sentencia LoadModule debe apuntar a la trayectoria del módulo PHP
en el sistema. El make install anterior podría ya haber agregado
esto automáticamente, pero asegúrese de revisar.
</para>
<informalexample>
<para>
Para PHP 7:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php7_module modules/libphp7.so
]]>
</programlisting>
</informalexample>
<informalexample>
<para>
Para PHP 5:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php5_module modules/libphp5.so
]]>
</programlisting>
</informalexample>
</listitem>
<listitem>
<para>
Indicar a Apache que procese ciertas extensiones como PHP. Por ejemplo, hágase que
Apache procese ficheros .php como PHP. En vez de solamente utilizar la directiva de Apache
AddType, se desea evitar subidas de ficheros potencialmente peligrosas y que ficheros
creados tal como exploit.php.jpg sean ejecutados como PHP. Utilizando este
ejemplo, se puede hacer que cualquier extensión o extensiones sean procesadas como PHP simplemente
añadiéndolas. Se agregará .php para demostrarlo.
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
O, si se deseara permitir que ficheros .php, .php2, .php3, .php4, .php5, .php6, y
.phtml fuesen ejecutados como PHP, pero nada más, se utilizaría esto:
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.ph(p[2-1]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
Y para permitir que ficheros .phps sean manejados por el filtro de fuentes de php, y
desplegado como código fuente con sintaxis resaltada, se utiliza esto:
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
mod_rewrite puede ser utilizado para permitir que cualquier fichero .php arbitrario sea desplegado
como código fuente con sintaxis resaltada, sin tener que renombrarlo o copiarlo
a un fichero .phps:
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
]]>
</programlisting>
</informalexample>
<para>
El filtro de código fuente php no debe habilitarse en sistemas de producción, donde
podría exponer información confidencial o de alguna otra manera sensible incluida en
código fuente.
</para>
</listitem>
<listitem>
<para>
Utilícese el procedimiento normal para iniciar el servidor Apache, por ej.:
</para>
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>
<para>O</para>
<informalexample>
<screen>
<![CDATA[
service httpd restart
]]>
</screen>
</informalexample>
</listitem>
</orderedlist>
<para>
Siguiendo los pasos anteriores se tendrá corriendo un servidor web Apache2 con
soporte para PHP como un módulo <literal>SAPI</literal>. Por supuesto existen
muchas opciones más de configuración disponibles para Apache y PHP. Para más
información teclee <command>./configure --help</command> en el árbol de fuentes
correspondiente.
</para>
<para>
Apache se puede compilar con soporte multihilos seleccionando el
<filename>worker</filename> MPM, en vez del
<filename>prefork</filename> MPM standard, cuando Apache se compila. Esto se realiza
agregando la siguiente opción al argumento pasado a ./configure, en el
paso 3 anterior:
</para>
<informalexample>
<screen>
<![CDATA[
--with-mpm=worker
]]>
</screen>
</informalexample>
<para>
Esto no debe llevarse a cabo sin ser consciente de las consecuencias de
esta decisión, y tener al menos un ligero entendimiento acerca de
las implicaciones. La documentación de Apache
al respecto de <link xlink:href="&url.apache2.mpm;">MPM-Modules</link>
discute los MPM en forma mucho más detallada.
</para>
<note>
<para>
Las <link linkend="faq.installation.apache.multiviews">Preguntas frecuentes
de Apache MultiViews</link> discute acerca del uso de multiviews con PHP.
</para>
</note>
<note>
<para>
Para compilar una versión multihilo de Apache, el sistema destino debe soportar hilos.
En este caso, PHP también debe compilarse con la opción Zend Thread Safety (ZTS)
experimental. Bajo esta configuración, no todas las extensiones se encontrarán disponibles.
La configuración recomendada es compilar Apache con el MPM-module
<filename>prefork</filename> por omisión.
</para>
</note>
</sect1>
<!-- 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:0
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=0 si
vim: et tw=0 syn=sgml
vi: ts=1 sw=1
-->