Banshee is a PHP website framework with a main focus on security. It has a Model-View-Controller architecture and uses XSLT for the view. MySQL is being used as the default database, but with little effort other databases can be used as well. Although it's called a framework, it comes with a ready to use CMS, lots of libraries and modules like a…
PHP JavaScript XSLT CSS Shell HTML
Latest commit 58e7f42 May 1, 2016 @hsleisink Release 5.2
Failed to load latest commit information.
controllers Release 5.2 May 1, 2016
database Release 5.2 May 1, 2016
extra Release 5.2 May 1, 2016
libraries Release 5.2 May 1, 2016
logfiles Release 4.1 Mar 17, 2014
models Release 5.2 May 1, 2016
public Release 5.2 May 1, 2016
settings Release 5.2 May 1, 2016
templates Release 5.2 May 1, 2016
views Release 5.2 May 1, 2016
.htaccess Release 5.2 May 1, 2016
ChangeLog Release 5.2 May 1, 2016
LICENSE Release 5.1 Oct 26, 2015
README.md Release 5.2 May 1, 2016
import Release 5.2 May 1, 2016
new_layout Release 5.2 May 1, 2016
new_module Release 5.2 May 1, 2016
remove_module Release 5.2 May 1, 2016
security_audit Release 5.2 May 1, 2016
show_library_api Release 4.0 May 1, 2013

README.md

Banshee

Banshee is a PHP website framework with a main focus on security. It has a Model-View-Controller architecture and uses XSLT for the view. MySQL is being used as the default database, but with little effort other databases can be used as well. Although it's called a framework, it comes with a ready to use CMS, lots of libraries and modules like a forum, weblog and a guestbook.

Configure your webserver

Use the directory 'public' as the webroot directory and allow PHP execution. If you use the Hiawatha webserver, you can use the following configuration:

UrlToolkit {
    ToolkitID = banshee
    RequestURI isfile Return
    Match ^/(css|files|fonts|images|js)(/|$) Return
    Match ^/(favicon.ico|robots.txt)$ Return
    Match [^?]*(\?.*)? Rewrite /index.php$1
}

Directory {
    DirectoryID = files
    Path = /files
    StartFile = index.html
    ShowIndex = yes
    ExecuteCGI = no
}

Directory {
    DirectoryID = static
    Path = /css, /fonts, /images, /js
    ExpirePeriod = 2 weeks
}

VirtualHost {
    ...
    UseToolkit = banshee
    UseDirectory = static, files
}

For Apache, there is a .htaccess file in the 'public' directory which contains the required URL rewriting rules.

Configure PHP

Banshee needs PHP's MySQL, XSL and GD module. Use the following PHP settings:

allow_url_include = Off
cgi.fix_pathinfo = 0 (when using FastCGI PHP), 1 (otherwise)
date.timezone = <your timezone>
magic_quotes_gpc = Off
register_globals = Off

Configure your database

Open the website in your browser and follow the instructions on your screen. In case of an error, add /setup to the URL.

Configure Banshee

Go to the Settings page in the CMS and replace the present e-mail addresses with your own. Before going live, set the DEBUG_MODE flag in settings/website.conf to 'no' and make sure you've changed the administrator password.