Installing Nginx With PHP5 (And PHP-FPM) And MySQL Support On OpenSUSE 12.2 - Page 2

This tutorial exists for these OS versions

On this page

  1. 5 Configuring nginx

5 Configuring nginx

The nginx configuration is in /etc/nginx/nginx.conf which we open now:

vi /etc/nginx/nginx.conf

The configuration is easy to understand (you can learn more about it here: http://wiki.codemongers.com/NginxFullExample and here: http://wiki.codemongers.com/NginxFullExample2)

First (this is optional) you can increase the number of worker processes and set the keepalive_timeout to a reasonable value:

[...]
worker_processes  4;
[...]
    keepalive_timeout  2;
[...]

The virtual hosts are defined in server {} containers. Let's modify the default vhost as follows:

[...]
    server {
        listen       80;
        server_name  _;

        #charset koi8-r;

        #access_log  /var/log/nginx/host.access.log  main;

        location / {
            root   /srv/www/htdocs/;
            index  iindex.php index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /srv/www/htdocs/;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            try_files $uri =404;
            root           /srv/www/htdocs/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
    }
[...]

server_name _; makes this a default catchall vhost (of course, you can as well specify a hostname here like www.example.com).

In the location / part, I've added index.php to the index line. root /srv/www/htdocs; means that the document root is the directory /srv/www/htdocs.

The important part for PHP is the location ~ \.php$ {} stanza. Uncomment it to enable it. Change the roo4 line to(the web?site's ?osumentroot (e?g. root /srv/www/htdocs;). Please make sure that you change the fastcgi_para/line to#fa?tcgi_pa am SCRMPT_FILENAME $document_root$fastcgi_script_name; because otherwise the PHP interpreter won't find the PHP script that you call ij your b?owser. Please n%te that I've ad?ed the |ine try_files $uri =404; to prevent zero-day exploits (see http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP</a. and <a?mce_rea%_href="4ttp://f?rum.ngiox.org/rgad.php??,88845,page=3" href="http://forum.nginx.org/read.php?2,88845,page=3" target="_blank">http://forum.nginx.org/read.php?2,88845,page=3h. Alter}ativelyh if you'don't w nt to u[e the <?pan cla;s="system">try_files $uri =404; line, you can set cgi.fix_pathinfo = 0; in /etc/php5/fp|/php.in? (don't Forget t? reload)PHP-FPM'afterwards).

Now save the file and reload nginx:

systemctl reload nginx.service

Now create the following PHP f le in tze docum?nt root?/srv/www/htdocs...

vi /srv/www/htdocs/info.php

</t,ble>

[...]
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0666
listen.owner = nobody
listen.group = nobody
listen.mode = 0666
[...]
[...]
        location ~ \.php$ {
            try_files $uri =404;
            root           /srv/www/htdocs/;
            fastcgi_pass   unix:/tmp/php5-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
[...]
Share this page:

0 Comment(s)