System requirements

Lucas Krause edited this page Feb 22, 2015 · 5 revisions
Clone this wiki locally

Gustav is written in PHP and designed for running on an Apache server powered by any OS.

##PHP requirements

Since Gustav relies, among other, on OOP 5, namespaces and anonymous functions, Gustav requires PHP 5.3+.
Moreover, you should make sure that PHP's open_basedir configuration option doesn't exclude important directories like the templates directory, the source directory or the GvDir. Also the allow_url_fopen PHP configuration option should be enabled.

##Apache requirements

Gustav uses the DirectorySlash directive which is available as of Apache 2.0.51.
If you remove that directive from the .htaccess file, Gustav may also work fine on Apache versions below 2.0.51.
Other directives used by Gustav are

and, if the use_fallback_resource configuration option is set to true,

or otherwise,

FallbackResource is available as of Apache 2.2.16.
If not setting use_fallback_resource to true, Apache should be compiled with mod_rewrite (Extension, by default not included) or that module should be loaded dynamically using LoadModule. If it's not, no errors or something similar will occur, but auto-generating a non-existing destination file for a requested URL similar to http://example.com/blog/category/article-1/ won't work if that directory already exists since, instead of a 404 Not Found status, a 403 Forbidden status is returned (if no directory index is generated) which doesn't trigger generate.php. If mod_rewrite is available, setting the FollowSymLinks option in a .htaccess file must be enabled using AllowOverride Options=FollowSymLinks for example.
ErrorDocument requires FileInfo permissons in .htaccess files, while DirectoryIndex and DirectorySlash, as well as FallbackResource require Indexes permissons set, for example, using AllowOverride FileInfo Indexes.
Moreover, mod_dir must be compiled into Apache (Base, by default included) or must be loaded dynamically using LoadModule to provide support for DirectoryIndex, DirectorySlash and FallbackResource.

##Tested systems

###Working

Apache PHP
2.2.22 5.3.29
5.4.38
5.5.22