Difference between revisions of "KB00005:Web Server Configuration"
From PartKeepr Wiki
Line 14: | Line 14: | ||
</pre> | </pre> | ||
+ | Example config for <code>demo.partkeepr.org</code> running on Apache 2.4 on Debian Jessie: | ||
+ | |||
+ | <pre> | ||
+ | <VirtualHost *:80> | ||
+ | ServerName demo.partkeepr.org | ||
+ | |||
+ | DocumentRoot /home/demo.partkeepr.org/PartKeepr/web/ | ||
+ | |||
+ | 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> | ||
+ | |||
+ | </pre> | ||
= nginx = | = nginx = | ||
Revision as of 13:47, 29 January 2017
PartKeepr requires special configuration in some cases.
Apache
Apache requires the following settings:
- AcceptPathInfo set to ON
- mod_rewrite enabled
- Must be able to parse the .htaccess file. Ensure that 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:
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/ 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
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; } }