Contributions are ready for review
| From: | phpdoc at lists dot php dot net | Date: | Mon, 13 Jan 2014 13:00:01 +0000 |
| Subject: | Contributions are ready for review | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969384806@lists.php.net to get a copy of this message | ||
Hello PHP EN Documentation team,
There are contributions within the online editor queue for this language.
Please review, then commit or delete these patches.
Patches for review :
-----------------------
New file: en/install/unix/nginx.xml
By: Jacob Clark on 2014-01-08 07:33:25
===================================================================
--- en/install/unix/nginx.xml
+++ en/install/unix/nginx.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <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 on Unix systems</title>
+
+ <para>
+ This documentation will cover installing and configuring PHP with PHP-FPM for a Nginx 1.4.x
HTTP server.
+ </para>
+
+ <para>
+ This guide will assume that you have built Nginx from source and therefore all binaries and
configuration files are located at '/usr/local/nginx'. If this is not the case and you
have obtained Nginx through other means then please refer to the <link
xlink:href="&url.nginx;">Nginx Wiki</link> in order translate this manual to
your setup.
+ </para>
+
+ <para>
+ This guide will cover the basics of configuring an Nginx server to
+ process PHP applications and serve them on port 80, it is recommended
+ that you study the Nginx and PHP-FPM documentation if you wish to
+ optimise your setup past the scope of this documentation.
+ </para>
+
+ <para>
+ Please note that throughout this documentation version numbers have been
+ replaced with an 'x' to ensure this documentation stays correct in the future,
+ please replace these as necessary with the corresponding version numbers.
+ </para>
+
+ <orderedlist>
+ <listitem>
+ <para>
+ It is recomended that you visit the Nginx Wiki
+ <link
xlink:href="&url.nginx.wiki.install;">install</link> page
+ in order to obtain and install Nginx on your system.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Obtain and unpack the PHP source:
+ </para>
+
+ <example xml:id="install.unix.nginx.extract.php">
+ <screen>
+<![CDATA[
+tar zxf php-x.x.x
+]]>
+ </screen>
+ </example>
+ </listitem>
+
+ <listitem>
+ <para>
+ Configure and build PHP. This is where you customize PHP
+ with various options, like which extensions will be enabled. Run
+ ./configure --help for a list of available options. In our example
+ we'll do a simple configure with PHP-FPM and MySQL support.
+ </para>
+
+ <example xml:id="install.unix.nginx.build.php">
+ <screen>
+<![CDATA[
+cd ../php-x.x.x
+./configure --enable-fpm --with-mysql
+make
+sudo make install
+]]>
+ </screen>
+ </example>
+ </listitem>
+
+ <listitem>
+ <para>
+ Obtain and move configuration files to their correct locations
+ </para>
+
+ <example xml:id="install.unix.nginx.configure.php">
+ <screen>
+<![CDATA[
+cp php.ini-development /usr/local/php/php.ini
+cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
+cp sapi/fpm/php-fpm /usr/local/bin
+]]>
+ </screen>
+ </example>
+ </listitem>
+
+ <listitem>
+ <para>
+ It is important that we prevent Nginx from passing requests to the PHP-FPM backend
if the file does not exists, allowing us to prevent arbitrarily script injection.
+
+ We can fix this by setting the option cgi.fix_pathinfo= to 0 within our php.ini
file.
+
+ Load up php.ini:
+ </para>
+
+ <example xml:id="install.unix.nginx.configure.php">
+ <screen>
+<![CDATA[
+vim /usr/local/php/php.ini
+]]>
+ </screen>
+ </example>
+
+ <para>
+ Locate cgi.fix_pathinfo= and modify it as follows:
+ </para>
+
+ <example xml:id="install.unix.nginx.configure.php">
+ <screen>
+<![CDATA[
+cgi.fix_pathinfo=0
+]]>
+ </screen>
+ </example>
+ </listitem>
+
+ <listitem>
+ <para>
+ php-fpm.conf must be modified to specify that php-fpm must run as the user www-data
and the group www-data before we can start the service:
+ </para>
+
+ <example xml:id="install.unix.nginx.modify.phpfpm">
+ <screen>
+<![CDATA[
+vim /usr/local/etc/php-fpm.conf
+]]>
+ </screen>
+ </example>
+
+ <para>
+ Find and modify the following:
+ </para>
+
+ <example 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>
+ </example>
+
+ <para>
+ The php-fpm service can now be started:
+ </para>
+
+ <example xml:id="install.unix.nginx.start.phpfpm">
+ <screen>
+<![CDATA[
+/usr/local/bin/php-fpm
+]]>
+ </screen>
+ </example>
+
+ <para>
+ This guide will not configure php-fpm any further, if you are interested in further
configuring php-fpm then please consult the documentation.
+ </para>
+ </listitem>
+
+
+
+ <listitem>
+ <para>
+ Nginx must now be configured to support the processing of PHP applications:
+ </para>
+
+ <example xml:id="install.unix.nginx.configure.nginx">
+ <programlisting>
+<![CDATA[
+vim /usr/local/nginx/conf/nginx.conf
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ Modify the default location block to be aware it must attempt to serve .php files:
+ </para>
+
+ <example xml:id="install.unix.nginx.configure.nginx.location">
+ <programlisting role="nginx-conf">
+<![CDATA[
+location / {
+root html;
+index index.php index.html index.htm;
+}
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ The next step is to ensure that .php files are passed to the PHP-FPM backend, blow
the commented default PHP location block, enter the following:
+ </para>
+
+ <example 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>
+ </example>
+
+ <para>
+ Restart Nginx.
+ </para>
+
+ <example xml:id="install.unix.nginx.restart.nginx">
+ <screen>
+<![CDATA[
+sudo /usr/local/nginx/sbin/nginx -s stop
+sudo /usr/local/nginx/sbin/nginx
+]]>
+ </screen>
+ </example>
+ </listitem>
+
+ <listitem>
+ <para>
+ Create a test file
+ </para>
+
+ <example 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>
+ </example>
+
+ <para>
+ Now navigate to http://localhost. The phpinfo()
should now be shown.
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>
+ Following the steps above you will have a running Nginx web server with
+ support for PHP as a <literal>SAPI</literal> module. Of course there are
+ many more configuration options available Apache and PHP. For more
+ information type <command>./configure --help</command> in the corresponding
+ source tree.
+ </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
+ -->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=51828
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=51828
------------------------------------------------------------------
--
https://edit.php.net/
This email is send automatically by the Php Docbook Online Editor.