-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathnginx.xml
297 lines (260 loc) · 7.64 KB
/
nginx.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f0261e36dc250410f352fe33ad4c4e699cb18b02 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="install.unix.nginx" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Nginx 1.4.x sur les systèmes Unix</title>
<para>
Cette documentation couvre l'installation et la configuration de PHP avec
PHP-FPM pour le serveur HTTP Nginx 1.4.x.
</para>
<para>
Ce guide suppose que vous avez compilé Nginx à partir des sources et donc
tous les binaires et fichiers de configuration se trouvent dans
<literal>/usr/local/nginx</literal>. Si ce n'est pas le cas et que vous avez
obtenu Nginx par d'autres moyens, veuillez vous référer au
<link xlink:href="&url.nginx;">Wiki d'Nginx</link> pour adapter ce manuel
pour votre configuration.
</para>
<para>
Ce guide couvre les bases de la configuration du serveur Nginx afin de
parvenir à servir une application PHP sur le port 80. Il est recommandé
d'étudier les documentations d'Nginx et de PHP-FPM afin d'optimiser votre
installation.
</para>
<para>
Veuillez noter que tout au long de cette documentation, les numéros de version
ont été remplacé par un "x" pour assurer que cette dernière reste correcte
dans l'avenir. Pensez à les remplacer par votre numéro de version.
</para>
<orderedlist>
<listitem>
<para>
Il est recommandé de consulter la
<link xlink:href="&url.nginx.wiki.install;">documentation de Nginx</link>
afin de l'installer sur votre système.
</para>
</listitem>
<listitem>
<para>
Récupérer et décompresser les sources de PHP :
</para>
<informalexample xml:id="install.unix.nginx.extract.php">
<screen>
<![CDATA[
tar zxf php-x.x.x
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Configurer et compiler PHP. Ce sera le moment où vous pourrez
personaliser PHP avec diverses options, comme les extensions
à activer. Exécuter ./configure --help pour obtenir une liste
des options disponibles. Dans notre exemple, vous effectuerons
une configuration simple avec le support PHP-FPM et MySQLi.
</para>
<informalexample xml:id="install.unix.nginx.build.php">
<screen>
<![CDATA[
cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
make
sudo make install
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Récupérer et déplacer les fichiers de configuration dans
les bons dossiers
</para>
<informalexample xml:id="install.unix.nginx.configure.php">
<screen>
<![CDATA[
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
cp sapi/fpm/php-fpm /usr/local/bin
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Il est important que vous empéchiez Nginx de passer les requêtes
au backend PHP-FPM si le fichier n'existe pas, évitant ainsi
les failles par injections arbitraires de scripts.
</para>
<para>
Nous pouvons réaliser cela en définissant la directive
de configuration <link linkend="ini.cgi.fix-pathinfo">cgi.fix_pathinfo</link>
à la valeur <literal>0</literal> dans votre php.ini.
</para>
<para>
Editer php.ini :
</para>
<informalexample xml:id="install.unix.nginx.configure.ini">
<screen>
<![CDATA[
vim /usr/local/php/php.ini
]]>
</screen>
</informalexample>
<para>
Trouver la directive <literal>cgi.fix_pathinfo=</literal>
et modifier là comme ceci :
</para>
<informalexample xml:id="install.unix.nginx.configure.pathinfo">
<screen>
<![CDATA[
cgi.fix_pathinfo=0
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Le fichier php-fpm.conf doit être modifié pour spécifier que
php-fpm doit être exécuté avec l'utilisateur
www-data et le groupe www-data avant de démarrer le service :
</para>
<informalexample xml:id="install.unix.nginx.modify.phpfpm">
<screen>
<![CDATA[
vim /usr/local/etc/php-fpm.d/www.conf
]]>
</screen>
</informalexample>
<para>
Trouver et modifier ce qui suit :
</para>
<informalexample xml:id="install.unix.nginx.modify.phpfpm.usergroup">
<screen>
<![CDATA[
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
]]>
</screen>
</informalexample>
<para>
Le service php-fpm peut maintenant être démarré :
</para>
<informalexample xml:id="install.unix.nginx.start.phpfpm">
<screen>
<![CDATA[
/usr/local/bin/php-fpm
]]>
</screen>
</informalexample>
<para>
Ce guide ne va pas configurer php-fpm plus que cela ; si vous
êtes intéressé dans la configuration avancée de php-fpm, veuillez
consulter la documentation.
</para>
</listitem>
<listitem>
<para>
Nginx doit maintenant être configuré pour supporter l'analyse des
applications PHP :
</para>
<informalexample xml:id="install.unix.nginx.configure.nginx">
<programlisting>
<![CDATA[
vim /usr/local/nginx/conf/nginx.conf
]]>
</programlisting>
</informalexample>
<para>
Modifier le bloc par défaut afin qu'il puisse servir des fichiers
.php :
</para>
<informalexample xml:id="install.unix.nginx.configure.nginx.location">
<programlisting role="nginx-conf">
<![CDATA[
location / {
root html;
index index.php index.html index.htm;
}
]]>
</programlisting>
</informalexample>
<para>
La prochaine étape permet d'assurer que les fichiers .php soient passés
au backend PHP-FPM ; Sous le bloc commenté par défaut et entrez :
</para>
<informalexample xml:id="install.unix.nginx.configure.nginx.php">
<programlisting role="nginx-conf">
<![CDATA[
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
]]>
</programlisting>
</informalexample>
<para>
Redémarrer Nginx.
</para>
<informalexample xml:id="install.unix.nginx.restart.nginx">
<screen>
<![CDATA[
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Créez un fichier de test
</para>
<informalexample xml:id="install.unix.nginx.test.nginx.php">
<screen>
<![CDATA[
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
]]>
</screen>
</informalexample>
<para>
Maintenant, naviguez vers http://localhost. Le phpinfo()
devrait maintenant être affiché.
</para>
</listitem>
</orderedlist>
<para>
En suivant ces différentes étapes, vous devriez exécuter un serveur
web Nginx avec le support de PHP comme module <literal>FPM</literal> <literal>SAPI</literal>.
Bien entendu, il y a beaucoup plus d'options de configuration de
disponible pour Nginx et PHP. Pour plus d'informations, tapez
<command>./configure --help</command> dans la source correspondante.
</para>
</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: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
-->