Difference between revisions of "KB00005:Web Server Configuration"

From PartKeepr Wiki
Jump to: navigation, search
(nginx)
Line 8: Line 8:
 
* [https://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html mod_rewrite] enabled
 
* [https://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html mod_rewrite] enabled
 
* Must be able to parse the [https://httpd.apache.org/docs/2.4/howto/htaccess.html .htaccess file]. Ensure that [https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride AllowOverride] is at least set to '''Indexes''', '''FileInfo''' and '''Options''', however, if you encounter problems, use '''All'.
 
* Must be able to parse the [https://httpd.apache.org/docs/2.4/howto/htaccess.html .htaccess file]. Ensure that [https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride AllowOverride] is at least set to '''Indexes''', '''FileInfo''' and '''Options''', however, if you encounter problems, use '''All'.
 +
 +
On Debian-Based systems, you can usually activate mod_rewrite using:
 +
<pre>
 +
a2enmod rewrite
 +
</pre>
  
 
= nginx =
 
= nginx =

Revision as of 08:02, 12 December 2016

PartKeepr requires special configuration in some cases.

Apache

Apache requires the following settings:

On Debian-Based systems, you can usually activate mod_rewrite using:

a2enmod rewrite

nginx

You need to configure nginx so that it passes the path_info to PHP, that is, everything which is added after a PHP script (like setup.php/test). Also make sure you set your root directory to your PartKeepr web/ directory.

 server {
    # Listening port and host address
    listen 80;
    server_name partkeepr.example.com;

    # Default index pages
    index app.php index.html

    # Default character set
    charset utf-8;

    # Turn off access.log writes
    access_log off;
    log_not_found off;

    # Send file is an optimization, but does not work
    # across unix sockets which I use for php fpm so is best
    # used for local static content onlya 
    sendfile off;

    # Root for / project
    root /var/www/partkeepr/web/;

    # Setup rewrite helper
    rewrite ^/setup/webserver-test$ /setup/tests/webservercheck.json;

    # Handle main / location to symfony app.php controller
    location / {
        try_files $uri $uri/ /app.php?$query_string;
    }

    # Handle /setup location to symfony setup.php controller
    location /setup {
        try_files $uri $uri/ /setup.php?$query_string;
    }

    # Handle all locations *.php files via PHP-FPM unix socket
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_pass unix://var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

    # Deny .ht* access
    location ~ /\.ht {
        deny all;
    }
}