Nginx/fr: Difference between revisions

From Joomla! Documentation

FuzzyBot (talk | contribs)
Updating to match new version of source page
FuzzyBot (talk | contribs)
Updating to match new version of source page
Line 1: Line 1:
<noinclude><languages /></noinclude>
<noinclude><languages /></noinclude>
[http://nginx.net/ nginx] is a lightweight Web server that powers about 13% of Web servers across all domains[http://en.wikipedia.org/wiki/Nginx#Description]. Unless you have specific requirements that demand a heavy Web server like Apache, you are much better off using nginx.
<div lang="en" dir="ltr" class="mw-content-ltr">
[http://nginx.org/ Nginx] is a lightweight Web server that powers [https://en.wikipedia.org/wiki/Nginx about 33%] of Web servers across all domains. Unless you have specific requirements that demand a heavy Web server like Apache, you are much better off using Nginx.
</div>


Below are instructions on how to get Joomla! running with [http://wiki.nginx.org/PHPFcgiExample nginx and PHP via FastCGI].
<div lang="en" dir="ltr" class="mw-content-ltr">
Below are instructions on how to get Joomla! running with [https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/ PHP FastCGI Example].
</div>


<div class="mw-translate-fuzzy">
== Installer Nginx ==
== Installer Nginx ==
For Ubuntu, run <tt>aptitude install nginx</tt>. For other distros, run the corresponding package manager, or see http://wiki.nginx.org/Install.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
For Ubuntu, run ''aptitude install Nginx''. For other distributions, run the corresponding package manager or see the [https://www.nginx.com/resources/wiki/start/topics/tutorials/install/ Nginx Install page].
</div>


== Installation de PHP FastCGI ==  
== Installation de PHP FastCGI ==  
For Ubuntu, read this excellent page on how to [http://wiki.nginx.org/PHPFcgiExample configure PHP and FastCGI for nginx].
<div lang="en" dir="ltr" class="mw-content-ltr">
For Ubuntu, read [https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/ PHP FastCGI Example].
</div>


For Gentoo, PHP will run as a FastCGI service (fpm), so the nginx server will run PHP as a separated process:
<div lang="en" dir="ltr" class="mw-content-ltr">
For Gentoo, PHP will run as a FastCGI service (FPM), so the Nginx server will run PHP as a separate process:
</div>
<pre>
<pre>
# echo "dev-lang/php gd gd2 curl simplexml tokenizer dom tidy sqlite xml fpm cgi" >> /etc/portage/package.use
# echo "dev-lang/php gd gd2 curl simplexml tokenizer dom tidy sqlite xml fpm cgi" >> /etc/portage/package.use
# emerge php
# emerge php
</pre>
</pre>
The default settings of php-fpm are good for most servers. For special configurations, visit the [http://php.net/manual/en/install.fpm.php PHP FPM site].
<div lang="en" dir="ltr" class="mw-content-ltr">
The default settings of PHP-FPM are good for most servers. For special configurations, visit the [http://php.net/manual/en/install.fpm.php PHP FPM site].
</div>


== Configurer Nginx ==
== Configurer Nginx ==
<div class="mw-translate-fuzzy">
Les fichiers de configuration nginx se situent dans :
Les fichiers de configuration nginx se situent dans :
* <tt>/etc/nginx/sites-available/</tt> on Ubuntu (for sites running on that nginx instance)
</div>
* <tt>/etc/nginx/nginx.conf</tt> on Gentoo and Raspbian(= Debian optimized for Raspberry Pi)
<div lang="en" dir="ltr" class="mw-content-ltr">
* <tt>/etc/nginx/sites-available/</tt> on Ubuntu (for sites running on that Nginx instance)
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* <tt>/etc/nginx/nginx.conf</tt> on Gentoo and Raspbian (Debian optimized for Raspberry Pi)
</div>


Here is an sample nginx configuration file, joomla.conf, that you can reuse over all your nginx enabled-sites.
<div lang="en" dir="ltr" class="mw-content-ltr">
Here is an sample Nginx configuration file, ''joomla.conf'', that you can reuse over all your Nginx enabled-sites.
</div>


<pre>
<pre>
server {
server {
        listen 80;
  listen 80;
        server_name YOUR_DOMAIN;
    server_name YOUR_DOMAIN;
        server_name_in_redirect off;
    server_name_in_redirect off;


        access_log /var/log/nginx/localhost.access_log;
    access_log /var/log/nginx/localhost.access_log;
        error_log /var/log/nginx/localhost.error_log info;
    error_log /var/log/nginx/localhost.error_log info;


        root PATH_ON_SERVER;
    root PATH_ON_SERVER;
        index index.php index.html index.htm default.html default.htm;
    index index.php index.html index.htm default.html default.htm;
        # Support Clean (aka Search Engine Friendly) URLs
    # Support Clean (aka Search Engine Friendly) URLs
        location / {
    location / {
                try_files $uri $uri/ /index.php?$args;
        try_files $uri $uri/ /index.php?$args;
        }
    }


        # add global x-content-type-options header
    # add global x-content-type-options header
        add_header X-Content-Type-Options nosniff;
    add_header X-Content-Type-Options nosniff;


        # deny running scripts inside writable directories
    # deny running scripts inside writable directories
        location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                return 403;
        return 403;
                error_page 403 /403_error.html;
        error_page 403 /403_error.html;
        }
    }


        location ~ \.php$ {
    location ~ \.php$ {
            fastcgi_pass  127.0.0.1:9000;
      fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
      fastcgi_index index.php;
            include fastcgi_params;
      include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi.conf;
      include /etc/nginx/fastcgi.conf;
        }
    }


        # caching of files  
    # caching of files  
        location ~* \.(ico|pdf|flv)$ {
    location ~* \.(ico|pdf|flv)$ {
                expires 1y;
        expires 1y;
        }
    }


        location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
                expires 14d;
        expires 14d;
        }
    }


}
}
Line 70: Line 92:


Prêtez attention à quelques éléments :
Prêtez attention à quelques éléments :
# The parameter <tt>fastcgi_pass</tt> is set to 127.0.0.1:9000, corresponding to the port that fpm is configured to listen to. This means you can run the PHP processes on separate servers. On Gentoo, you can find this configuration in <tt>/etc/php/fpm-php5.3/php-fpm.conf/</tt>
<div lang="en" dir="ltr" class="mw-content-ltr">
# The parameter ''fastcgi_pass'' is set to ''127.0.0.1:9000'', corresponding to the port that FPM is configured to listen to. This means you can run the PHP processes on separate servers. On Gentoo, you can find this configuration in the ''/etc/php/fpm-php5.3/php-fpm.conf/'' file.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Don't forget to replace YOUR_DOMAIN & PATH_ON_SERVER above depending on your domain and the path of Joomla on your server.
# Don't forget to replace YOUR_DOMAIN & PATH_ON_SERVER above depending on your domain and the path of Joomla on your server.
</div>


<div class="mw-translate-fuzzy">
== Prise en charge GZip ==
== Prise en charge GZip ==
If you need GZip compression support, add the following section to the http section of the main nginx configuration file:
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
If you need GZip compression support, add the following section to the ''http'' section of the main Nginx configuration file:
</div>
<pre>
<pre>
        gzip on;
gzip on;
        gzip_http_version 1.1;
gzip_http_version 1.1;
        gzip_comp_level 6;
gzip_comp_level 6;
        gzip_min_length 1100;
gzip_min_length 1100;
        gzip_buffers 4 8k;
gzip_buffers 4 8k;
        gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript application/javascript application/x-javascript
gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript application/javascript application/x-javascript
        gzip_proxied     any;
gzip_proxied any;
        gzip_disable     "MSIE [1-6]\.";
gzip_disable "MSIE [1-6]\.";
</pre>
</pre>


== Sources ==
== Sources ==
* [http://en.gentoo-wiki.com/wiki/Nginx Nginx in Gentoo]
* [https://wiki.gentoo.org/wiki/Nginx Nginx in Gentoo]
* [http://www.kevinworthington.com/nginx-for-windows/ Nginx for Windows]
* [https://kevinworthington.com/nginx-for-windows/ Nginx for Windows]
* [http://wiki.nginx.org/Install#Ubuntu_PPA Nginx in Ubuntu]
* [https://ubuntu.com/tutorials/install-and-configure-nginx#1-overview Nginx in Ubuntu]
* [http://www.debianadmin.com/howto-install-nginx-webserver-in-debian.html Nginx in Debian]
* [https://www.debianadmin.com/howto-install-nginx-webserver-in-debian.html Nginx in Debian]
* [http://php.net/manual/en/install.fpm.php PHP-FPM installation and configuration]
* [https://www.php.net/manual/en/install.fpm.php PHP-FPM installation and configuration]
* [http://wiki.nginx.org/HttpGzipModule GZip in Nginx]
* [https://docs.nginx.com/nginx/admin-guide/web-server/compression/ Compression and Decompression]
* [http://wiki.nginx.org/HttpRewriteModule Rewrite in Nginx]
* [https://www.nginx.com/blog/creating-nginx-rewrite-rules/ Creating NGINX Rewrite Rules]
* [http://nginx.org/en/docs/http/request_processing.html How nginx processes a request]
* [http://nginx.org/en/docs/http/request_processing.html How Nginx processes a request]


[[Category:Server configurations]]
[[Category:Server configurations]]

Revision as of 09:13, 16 August 2022

Nginx is a lightweight Web server that powers about 33% of Web servers across all domains. Unless you have specific requirements that demand a heavy Web server like Apache, you are much better off using Nginx.

Below are instructions on how to get Joomla! running with PHP FastCGI Example.

For Ubuntu, run aptitude install Nginx. For other distributions, run the corresponding package manager or see the Nginx Install page.

Installation de PHP FastCGI

For Ubuntu, read PHP FastCGI Example.

For Gentoo, PHP will run as a FastCGI service (FPM), so the Nginx server will run PHP as a separate process:

# echo "dev-lang/php gd gd2 curl simplexml tokenizer dom tidy sqlite xml fpm cgi" >> /etc/portage/package.use
# emerge php

The default settings of PHP-FPM are good for most servers. For special configurations, visit the PHP FPM site.

Configurer Nginx

Les fichiers de configuration nginx se situent dans :

  • /etc/nginx/sites-available/ on Ubuntu (for sites running on that Nginx instance)
  • /etc/nginx/nginx.conf on Gentoo and Raspbian (Debian optimized for Raspberry Pi)

Here is an sample Nginx configuration file, joomla.conf, that you can reuse over all your Nginx enabled-sites.

server {
  listen 80;
    server_name YOUR_DOMAIN;
    server_name_in_redirect off;

    access_log /var/log/nginx/localhost.access_log;
    error_log /var/log/nginx/localhost.error_log info;

    root PATH_ON_SERVER;
    index index.php index.html index.htm default.html default.htm;
    # Support Clean (aka Search Engine Friendly) URLs
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # add global x-content-type-options header
    add_header X-Content-Type-Options nosniff;

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
        return 403;
        error_page 403 /403_error.html;
    }

    location ~ \.php$ {
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include /etc/nginx/fastcgi.conf;
    }

    # caching of files 
    location ~* \.(ico|pdf|flv)$ {
        expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
        expires 14d;
    }

}

Prêtez attention à quelques éléments :

  1. The parameter fastcgi_pass is set to 127.0.0.1:9000, corresponding to the port that FPM is configured to listen to. This means you can run the PHP processes on separate servers. On Gentoo, you can find this configuration in the /etc/php/fpm-php5.3/php-fpm.conf/ file.
  1. Don't forget to replace YOUR_DOMAIN & PATH_ON_SERVER above depending on your domain and the path of Joomla on your server.

Prise en charge GZip

If you need GZip compression support, add the following section to the http section of the main Nginx configuration file:

gzip on;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain application/xhtml+xml text/css application/xml application/xml+rss text/javascript application/javascript application/x-javascript
gzip_proxied any;
gzip_disable "MSIE [1-6]\.";

Sources