WIKINDX requires a web server environment comprising a web server (typically Apache, Nginx, or Microsoft IIS), PHP scripting, and a MariaDB (or MySQL) server.
Most web-hosting providers can provide this configuration at a low cost. Even small VPS of a few bucks per month are more than enough. If you don’t have any system administration skills or don’t have the time to deal with it this is definitely your best option. Placing WIKINDX on such a remote web server means that it can be accessed from any machine and people on the web. The constraint of this solution is security. Be sure to update WIKINDX regularly to benefit from our security fixes
WIKINDX can also be installed on a private network within a company, institution or an organization or locally for a single user on one desktop or laptop computer.
Inside a private network you probably need to contact your administrator who will provide the infrastructure support necessary for your installation.
For a single installation there are a variety of LAMP software bundles that can be downloaded to create the required web server environment. Users reported to setup successfully:
If you have a BSD or Linux server then choose the softwares available from the package manager of your distribution / OS. They are usually very well endowed. Favour Apache over Nginx as it is much easier to configure. As a general rule we follow the software versions to be compatible with the latest stable version of Debian.
If a third party is configuring your hosting, provide them with the information on this page.
Disclaimer: WIKINDX is not supposed to share its database with any other software. This widespread practice involves serious security breaches and possible data loss in the event of software bugs. Dedicate a database to WIKINDX!
Minimal versions are required for good support of UTF-8 and are runtime-checked by WIKINDX: the setup blocks the installation if the db engine does not correspond to the minimum required.
In the case of a migration, if you really need to lower the minimum version, you can change the value of WIKINDX_MYSQL_VERSION_MIN and WIKINDX_MARIADB_VERSION_MIN constants. But be prepared to hack SQL code and replay the migration several times to avoid data and schema corruption …
Not all versions of WIKINDX have been tested with every version of the database engine. Only the most stable, recommended and tested combinations are given here.
MariaDB version | Min WIKINDX Version | Max WIKINDX Version |
---|---|---|
11.4 (LTS) | 6.6.8 | trunk |
11.3 (buggy) | Not supported | Not supported |
11.2 | 6.6.8 | trunk |
11.1 | 6.6.8 | trunk |
11.0.6 | 6.6.8 | trunk |
10.11.8 (LTS) | 6.6.8 | trunk |
10.10.5 | 6.0.8 | trunk |
10.9.7 | 6.0.8 | trunk |
10.8.8 | 6.0.8 | trunk |
10.7.8 | 6.0.8 | trunk |
10.6.18 (LTS) | 6.0.8 | trunk |
10.5.25 (LTS) | 6.0.8 | trunk |
10.4.34 (LTS) | 6.0.8 | trunk |
10.3.39 | 4.2.2 | 6.7.1 |
10.2.44 | 4.2.2 | 6.7.1 |
10.1.48 | 4.2.2 | 6.0.1 |
10.0.38 | 4.2.2 | 6.0.1 |
5.5.68 | 4.2.2 | 4.2.2 |
5.3.12 | 4.2.2 | 4.2.2 |
5.2.14 | 4.2.2 | 4.2.2 |
MySQL version | Min WIKINDX Version | Max WIKINDX Version |
---|---|---|
8.4.0 (LTS) | 6.6.8 | trunk |
8.3.0 | 6.6.8 | trunk |
8.2.0 | 6.6.8 | trunk |
8.1.0 | 6.6.8 | trunk |
8.0.37 (LTS) | 6.6.8 | trunk |
8.0.11 (LTS) | 6.6.8 | trunk |
5.7.41 | 4.2.2 | 6.7.1 |
5.6.51 | 4.2.2 | 6.1.0 |
5.5.60 | 4.2.2 | 4.2.2 |
WIKINDX does not use advanced features of MariaDB / MySQL database engines which should allow to install it without problems on a more recent version. However, there is no guarantee that MySQL will change its default options to stricter uses as in the past. We are finding that, more and more, MariaDB and MySQL are diverging which may lead to the removal of MySQL support in the future. If you encounter a problem let us know please.
See here for end of support dates for MySQL and MariaDB.
WIKINDX needs privileges for normal operation. There are small difference between MySQL 5.x, MySQL 8.x and MariaDB privileges.
max_allowed_packet
option and send large queries.
However it is preferable to configure max_allowed_packet
directly on the server without forgetting that
this option will affect all the requests received by the server whatever the application.A privilege can be granted for one or more databases and for one or more request origin. We do not describe the syntax of the GRANT statement here. In short, be aware that when the Scope column indicates Database you must grant the privilege only for the WIKINDX database, otherwise for all databases.
To avoid any error modify these rights with an interface such as phpMyAdmin or Adminer.
Examples:
-- Grant to myaccount user the create privilege on tables of mywikindxdb database when queries come from localhost
GRANT CREATE ON `myaccount`.* TO 'mywikindxdb'@'localhost';
-- Grant to myaccount user the reload privilege on server when queries come from localhost
GRANT SUPER ON *.* TO 'myaccount'@'localhost';
Context | Privilege | Scope | Requirement | Engine |
---|---|---|---|---|
All privileges | Database | Never | All | |
Grant option | Database | Never | All | |
Server | Create user | Server | Never | All |
Server | Event | Server | Never | All |
Server | Process | Server | Never | All |
Server | Proxy | Server | Never | All |
Server | Reload | Server | Never | All |
Server | Replication client | Server | Never | All |
Server | Replication slave | Server | Never | All |
Server | Show databases | Server | Never | All |
Server | Shutdown | Server | Never | All |
Server | Super | Server | Optional but recommended | MySQL 5.x and MariaDB 10.4.x and lower |
Server | SYSTEM_VARIABLES_ADMIN | Server | Optional but recommended | MySQL 8.x adn mariaDB 10.5.x and higher |
Server | Create tablespace | Server | Never | All |
Server | File | Server | Never | All |
Database | Create routine | Database | Optional | All |
Database | Create temporary tables | Database | Optional | All |
Database | Lock tables | Database | Mandatory | All |
Table | Alter | Database | Mandatory | All |
Table | Create | Database | Mandatory | All |
Table | Create view | Database | Optional | All |
Table | Delete | Database | Mandatory | All |
Table | Delete history | Database | Optional | MariaDB only |
Table | Drop | Database | Mandatory | All |
Table | Index | Database | Mandatory | All |
Table | Insert | Database | Mandatory | All |
Table | References | Database | Mandatory | All |
Table | Select | Database | Mandatory | All |
Table | Show view | Database | Optional | All |
Table | Trigger | Database | Optional | All |
Table | Update | Database | Mandatory | All |
Column | Select | Database | Mandatory | All |
Column | Insert | Database | Mandatory | All |
Column | Update | Database | Mandatory | All |
Column | References | Database | Mandatory | All |
Routine | Alter routine | Database | Optional | All |
Routine | Execute | Database | Optional | All |
WIKINDX use the following options and sets them on db connection:
Option | Name | Value | Scope | Note |
---|---|---|---|---|
Engine | Engine | InnoDB | table | Used by all core tables for ACID transactions |
Charset | NAMES | utf8mb4 | Session | Full UTF-8 encoding support |
Collation | COLLATE | utf8mb4_unicode_520_ci | Session | Most advanced UTF-8 sort algo for multi language support available for MySQL |
Mode | sql_mode | TRADITIONAL | Session | This stricter mode allows us to prevent errors |
GROUP_CONCAT limit | group_concat_max_len | 4.294.967.295 | Session | Avoid CONCAT to truncate long fields during search operations |
Max. size of one packet | max_allowed_packet | 1.073.741.824 | Global | Support for LONGTEXT types and long SQL strings. |
PHP support is tested for the core, components, and third party software included. For security purposes, we recommend the use of an officially supported PHP version from the PHP Team. mod_php, CGI, and FastCGI are compliant with PHP and WIKINDX.
WIKINDX can support older PHP versions to facilitate the migration of an installation but does not support a large number of PHP versions in its trunk/head installation.
All current versions of PHP have a good support of UTF-8.
PHP version | Min WIKINDX Version | Max WIKINDX Version |
---|---|---|
8.4 | Not supported | Not supported |
8.3 | 6.8.0 | trunk |
8.2 | 6.7.1 | trunk |
8.1 | 6.6.0 | trunk |
8.0 | 6.5.0 | 6.9.0 |
7.4 | 6.1.0 | 6.6.8 |
7.3 | 5.7.2 | 6.5.0 |
7.2 | 5.7.0 | 6.3.10 |
7.1 | 5.3.1 | 6.3.10 |
7.0 | 5.2.1 | 5.8.2 |
5.6 | 4.4.2 | 6.0.8 |
5.5 | 4.4.2 | 5.3.2 |
5.4 | 4.4.2 | 5.2.1 |
5.3 | 4.4.2 | 4.2.2 |
PHP 8.2 is not recommended at this time because it has not been tested extensively. However, the major features work, sometimes with a few warnings. If you try the experiment let us know the errors you encounter. The maximum version of PHP is not controlled by the code.
The minimum version of PHP is checked and you will be blocked if it is too low. In the case of a migration, if you really need to lower the minimum version, you can change the value of the constant WIKINDX_PHP_VERSION_MIN. But be prepared to hack code here and there to make it work …
The version numbers in this section are those of WIKINDX, not those of a PHP extension or a library used by a PHP extension. When the version is not specified the extension/library is supported in all versions of WIKINDX.
In summary, from version 5.2.0 all the extensions mentioned above are required for proper functioning, which should be the case for almost all installations.
Extensions | Requirement | WIKINDX version | Notes |
---|---|---|---|
bz2 | Optional | Used by the release process (development only). | |
Core | Mandatory | ||
curl | Mandatory | >= 6.4.8 | Was optional >= 5.2.0 |
date | Mandatory | ||
dom | Mandatory | >= 6.4.8 | |
fileinfo | Mandatory | ||
filter | Mandatory | >= 5.2.0 | |
gd | Mandatory | >= 4.0.0 | |
gettext | Optional | Was mandatory for >= 4.2.1 and <= 6.5.0 | |
hash | Mandatory | >= 5.2.0 | |
iconv | Optional | Was mandatory for >= 4.0.3 and <= 6.7.0 | |
intl | Mandatory | >= 6.3.9 | Requires ICU 50.1 or higher |
json | Mandatory | >= 4.0.3 | |
ldap | Optional | >= 6.4.0 | Needed only for LDAP authentification mode. |
libxml | Mandatory | ||
mbstring | Mandatory | >= 5.2.0 | |
mysqli | Mandatory | ||
openssl | Optional | >= 5.2.0 | Needed if you intend to use dbAdminer plugin or send emails with secure protocols (starttls, tls, ssl) in SMTP mode and encryption (See PHPMailer). |
pcre | Mandatory | ||
Phar | Optional | Used by the release process (development only). | |
Reflection | Optional | Was mandatory for >= 5.2.0 and <= 6.0.1 | |
session | Mandatory | ||
SimpleXML | Mandatory | >= 4.2.0 | |
sockets | Optional | >= 5.2.0 | Needed if you intend to send emails with the SMTP protocol. |
SPL | Mandatory | >= 6.0.1 | |
xml | Mandatory | ||
xmlreader | Mandatory | >= 5.2.0 | |
zip | Mandatory | >= 6.4.8 | Was optional >= 5.9.1 |
zlib | Optional | Used by the release process (development only) and the dbAdminer plugin |
The code’s disk space consumption is modest (around 40 MB for the code). You should plan a minimum of 150MB for the code, downloading updates and one db backup. To this must be added the space to be allocated for attachments, images, attachment cache files … It depends greatly on your use case.
Database disk space can vary greatly. The initial size is around 10 MB (50 KB for its backup). For a large base of 23,000 resources, 12,000 authors and 10 years of statistics, we have observed a size of 460MB (110 MB for its backup).
In normal use WIKINDX consumes less than 20 MB of RAM by process. It is recommended to limit to 128MB (default official value of PHP memory_limit) for the proper functioning of updating, searching, and extracting texts from PDF – processes that can greatly increase memory consumption.
Generally a script responds in less than 1 s but searches can go up to 5 or 15s depending on the size of the database and the complexity of the request. This can be more during a database upgrade, extracting texts from PDF, or importing data. It is recommended to limit the execution time of scripts to 120s to allow the upgrade and imports.
The client accesses the database via a standard (graphical) web browser. Your browser should support HTML5 and CSS level 3 well, this means that almost all browsers are supported unless yours is exotic.
On the other hand, WIKINDX does not have a responsive design suitable for tablets and mobile phones (note added on 2024-04-23).
You must enable JavaScript execution. Without JavaScript WIKINDX will not work properly.