New Installer/Upgrader
I'll post on this page a draft of the (unfinished) code on which I've been working lately and some general design ideas behind the new installer. The new installer should be included as of 1.1.7.
The rationale
- Avoid using $_REQUEST
This is an issue affecting other components, but it's particularly crucial in the case of the installer because it can break the installation procedure, raise security issues or result in configuration errors. The generic $_REQUEST parameters are replaced in the new installer with $_POST parameters.
- Add a preliminary system requirement check
The current installer cannot detect a difference between a server running on Apache, Lighttpd, or IIS and installs .htaccess files regardless of the environment in which Wikka is supposed to run. Moreover, it doesn't check whether the system runs with the minimal requirements. This badly designed procedure is the source of most configuration issues, especially URL rewriting problems (see next point). The new installer starts by checking whether the basic system requirements (minimal PHP and MySQL versions) are met. It then proceeds to the URL rewrite configuration only if this is possible.
- Avoid mod_rewrite bugs
The most common installation issues occur because of a misconfiguration of base_url and rewrite_mode. Before setting up URL rewriting through .htaccess files, the new installer checks whether (1) the server runs under Apache (2) PHP is compiled with the mod_rewrite module (3) mod_rewrite is actually enabled in the Wikka root directory. (3) is done through an actual rewriting check, because (2) alone is not reliable. Also, to avoid the frequent issues with the configuration of base_url, the new installer doesn't allow the admin to change the rewrite_mode settings during the install procedure and it assumes that base_url refers to the Wikka root node (i.e. a URI terminated by a trailing slash). The decision whether to append or not the wikka.php?wakka= part is moved to the link creation methods.
- Remove unnecessary install options
The installer should only request the minimal settings the wiki admin is supposed to fill in in order to have Wikka running. All other options should be eventually dealt with with an interface to the config file, but not set during installation. The new installer removes unnecessary configuration options previously included in the wizard (e.g. the custom size of tabs in GeSHi!) and adds a form for crucial settings like default ACL.
(stub)
CategoryDevelopment