Difference between revisions of "KB00005:Web Server Configuration"

From PartKeepr Wiki
Jump to: navigation, search
Line 38: Line 38:
 
</pre>
 
</pre>
 
= nginx =
 
= nginx =
 +
 +
'''Note that this configuration might be outdated'''
  
 
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. If you have set your root directory to '''web/''', you need to open '''setup/index.html''' instead of '''web/setup/index.html'''.
 
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. If you have set your root directory to '''web/''', you need to open '''setup/index.html''' instead of '''web/setup/index.html'''.
Line 98: Line 100:
  
 
</pre>
 
</pre>
 +
 +
= Individual Errors =
 +
 +
== Error 1: Tried to send a POST request to setup/webserverTest and it did not succeed. ==
 +
 +
PartKeepr sends a HTTP POST request to <code>setup/webserverTest</code>. This request is served by <code>web/app.php</code>.
 +
 +
 
[[Category:Knowledge Base]]
 
[[Category:Knowledge Base]]

Revision as of 14:20, 25 June 2018

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

Example config for demo.partkeepr.org running on Apache 2.4 on Debian Jessie:

<VirtualHost *:80>
        ServerName demo.partkeepr.org

        DocumentRoot /home/demo.partkeepr.org/PartKeepr/web/
        AcceptPathInfo on

        ErrorDocument 403 "<h1>Demo Site update in progress. Check back in a few minutes.</h1>"

        <Directory /home/demo.partkeepr.org/PartKeepr/web/>
		Require all granted
                AllowOverride All
        </Directory>

  ## Logging
  ErrorLog "/var/log/apache2/demo.partkeepr.org_error.log"
  ServerSignature Off
  CustomLog "/var/log/apache2/demo.partkeepr.org_access.log" combined 
</VirtualHost>

nginx

Note that this configuration might be outdated

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. If you have set your root directory to web/, you need to open setup/index.html instead of web/setup/index.html.

 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;
    }
}

Individual Errors

Error 1: Tried to send a POST request to setup/webserverTest and it did not succeed.

PartKeepr sends a HTTP POST request to setup/webserverTest. This request is served by web/app.php.