This page lists the minimum requirements and recommended settings to install Tiki.
If you are using a standard shared webhost, your webhost most likely meets these requirements and you should be able to install Tiki with no problems. Tiki is designed to run on shared hosting, using the LAMP stack.
These instructions are useful for people that are configuring their own server for Tiki.
Tiki will run in most shared webhost environments. Many hosts offer Tiki installation via a control panel application (such as Fantastico).
You should verify that your webhost meets the minimum requirements:
See Tiki Friendly Hosts for a list of working shared host environments.
You must have a fully operational webserver in order to install and use Tiki. Tiki should run on any webserver that supports PHP (such as nginx, Windows IIS or lighttpd), but is most widely tested and used with Apache. You may need to make minor modifications for non-Apache webservers.
To simply installation on Windows IIs, Tiki is included in the Windows Web App Gallery and can be installed with the Microsoft Web Platform Installer. See Microsoft Web Platform installer for details.
Your webserver should be configured with the following minimum requirements:
Tiki requires MariaDB or MySQL.
We are moving to a machine readable format: https://gitlab.com/tikiwiki/tiki-manager/-/blob/master/config/tiki_requirements.yml
Tiki Version | MariaDB Versions | MySQL Versions | Notes |
---|---|---|---|
Tiki22 and Tiki23 | - | - | Maximum versions too soon to know. |
Tiki21 LTS | 5.5+ | 5.7+ | Maximum versions too soon to know. |
Tiki19 or Tiki20 | 5.5-10.4 | 5.5.3-5.7 | MySQL 5.6+ or MariaDB 10.1+ are recommended. First version to support utf8mb4 |
Tiki18 LTS | 5.1-10.4 | 5.0-5.7 | MySQL 5.6+ or MariaDB 10.1+ are recommended as not all features will be available at lesser versions. |
Tiki15 LTS | 5.0-10.1 | 5.0-5.6 | In Tiki 15+ Upgrade scripts in in MariaDB 10.1 / MySQL 5.6 may not work from earlier versions of Tiki. |
Tiki12 LTS | 5.1-5.5 | 5.0-5.5 |
The database can be installed in the same physical location of the webserver (that is, as localhost) or Tiki can access a remote database.
We are moving to a machine readable format: https://gitlab.com/tikiwiki/tiki-manager/-/blob/master/config/tiki_requirements.yml
Tiki Version | Minimum PHP Version | Maximum PHP Version | Notes | |
---|---|---|---|---|
Tiki24 (not released yet) | 7.4 | 8.0: for sure 8.1: likely 8.2 too soon to know) |
||
Tiki22 and Tiki23 | 7.4 | 7.4 | Sadly 8.0 does not seem to be safe for Tiki yet, hopefully 24.x will be ok with 7.4 to 8.1 | |
Tiki21 LTS | [https://gitlab.com/tikiwiki/tiki/-/blob/21.x/setup.sh#L657 | 7.2] | 7.3 | You can fairly safely use 7.4 if you disregard or suppress the notices and warnings. |
Tiki19 or Tiki20 | 7.1 | 7.2 (maybe 7.3 as well) | There is known issue with Tiki 20.2 where PHP requirement was bumped up to PHP 7.2 accidentally | |
Tiki18 LTS | 5.6 | 7.2 | ||
Tiki15 LTS | 5.5 | 5.6 | ||
Tiki12 LTS | 5.3 | 5.6 |
Interesting links about PHP lifecycle
The default memory_limit in a standard PHP installation is 128M, and this should be fine for the vast majority of Tiki installations. Some web hosts install PHP with a lower default. Although Tiki may appear to install successfully, you will continually face issues with pages failing to load and system errors.
To review your PHP Memory Limits, access http://www.example.com/tiki-phpinfo.php and review the following values:
For some shared webhosts, these values may not be user-configurable and you may need to request changes from your webhost, whereas in other hosts you are allowed to fine tune these settings for your needs. You can try uncommenting the corresponding lines in the .htaccess file at your tiki root folder on the server, like:
# increase memory php_value memory_limit 128M # increase execution time... php_value max_execution_time 90
Some webhosts tend to disable some functions which are required for Tiki to run flawlessly.
Function | Notes |
---|---|
eval() | Required by Smarty templating engine. Causes "Please contact support about" messages appearing instead of Modules when ev php.ini . |
Library | Notes | ||
---|---|---|---|
[https://www.php.net/manual/en/book.libxml.php | libxml] | Required | |
[https://www.php.net/manual/en/book.dom.php | DOM] | Required starting from Tiki 19 | |
[https://www.php.net/manual/en/book.mbstring.php | mbstring] | Required by zend_search_lucene for Admin panel searching and managing preferences in perspectives. Useful when working with languages that require it mbstring needs to be compiled with --enable-mbregex or otherwise you will be missing functions like mb_split() which are needed for example by Smarty. Since Tiki 17, the symfony/polyfill-mbstring compatibility library (via symfony-console) is used in core functionality, but mbstring is still required for some functionality. |
|
[https://www.php.net/manual/en/book.ctype.php | ctype] | Required | |
[https://www.php.net/manual/en/book.calendar.php | calendar] | Required | |
[https://www.php.net/manual/en/book.iconv.php | iconv] | Required by certain Zend Framework validation and parsing classes | |
[http://php.net/manual/en/mysqli.overview.php | MySQLi] | In Tiki 12-18 MySQLI is recommended but the Tiki installer will fall back to the older MySQL driver if MySQLi is unavailable. | |
[https://www.php.net/manual/en/book.zip.php | zip] | [http://php.net/manual/en/class.ziparchive.php | The ZipArchive class for php] must be installed for some features such as XML Wiki Import-Export and PluginArchiveBuilder |
We recommend using the following configuration in your php.ini file:
PHP.INI Setting | Description |
---|---|
memory_limit = 128M | Specify the maximum memory for PHP scripts. |
_file_uploads = On | Required to allow uploads (files, images, etc.) to your Tiki |
upload_max_filesize = XXM post_max_size |
Specify the maximum upload filesize (in MB). |
session.save_path = /tmp | The directory where PHP stores session information (for the default handler (files)). Ensure that the location exists and is writable. In Shared Hosting environments, if you do not have access to /tmp, use temp (no slash) instead. |
max_execution_time = 60 max_input_time = 60 |
Specify the idle timeout (in seconds). If you experience timeouts (such as when performing Admin functions) you may need to increase these settings. |
default_charset = "utf-8" | Specify the default character encoding. |
mbstring.func_overload = 0 | Tiki will not work properly with mbstring.func_overload = 7. |
The location of the php.ini file may vary, depending on your operating sytem. Some common locations include:
Some Tiki features require the following additional software or libraries:
Feature | Additional Requirements |
Rewrite Tiki's default URLs | Use the Apache Clean URLs to create shorter, or custom, URLs. |
Elasticsearch | See Elasticsearch page (requirements section) |
|
|
||
Lines: 1-17 | Lines: 1-13 | ||
- | 2012-09: A ((Server Check)) script has been developed that will make everything easier! Just upload a single PHP file See also Tiki ((info:Lifecycle)) and ((Browser Compatibility ! Requirements and SetupThis page lists the minimum requirements recommended settings to install Tiki. If you are using a standard [http://en.wikipedia.org/wiki/Shared_web_hosting_service|shared webhost], your webhost most likely meets these requirements and you should be able to install Tiki with no problems. Tiki is designed to run on shared hosting, using the [http://en.wikipedia.org/wiki/LAMP_(software_bundle)|LAMP stack]. |
+ | ! Requirements This page lists the minimum requirements and recommended settings to install Tiki.%% See also Tiki's ((info:Lifecycle)) and ((Browser Compatibility)).% % If you are using a standard [http://en.wikipedia.org/wiki/Shared_web_hosting_service|shared webhost], your webhost most likely meets these requirements and you should be able to install Tiki with no problems. Tiki is designed to run on shared hosting, using the [http://en.wikipedia.org/wiki/LAMP_(software_bundle)|LAMP stack]. %% These instructions are useful for people that are configuring their own server for Tiki. |
- | + | {REMARKSBOX(type="tip" title="Tip")}A ((Server Check)) script has been developed that will make everything easier! Just upload a single PHP file to your server before installing Tiki and you will get an advice on your server configuration. {REMARKSBOX} | |
+ | {autotoc activity="yes" align="page" mode="off"} | ||
- | {maketoc} | ||
! Shared Host | ! Shared Host | ||
Tiki will run in most shared webhost environments. Many hosts offer Tiki installation via a control panel application (such as Fantastico). | Tiki will run in most shared webhost environments. Many hosts offer Tiki installation via a control panel application (such as Fantastico). | ||
Lines: 27-33 | Lines: 23-27 | ||
! Requirements | ! Requirements | ||
!! Webserver | !! Webserver | ||
- | You must have a fully operational webserver in order to install and use Tiki. Tiki ''should'' run on __any__ webserver that supports PHP (such as [http://www.iis.net/|Windows IIS] or [http://www.lighttpd.net/|lighttpd]), but is most widely tested and used with [http://httpd.apache.org/|Apache]. You may need to make minor modifications for non-Apache webservers. To simply installation on Windows IIs, Tiki is included in the Windows Web App Gallery and can be installed with the Microsoft Web Platform Installer. See ((Microsoft Web Platform installer)) for details. |
+ | You must have a fully operational webserver in order to install and use Tiki. Tiki ''should'' run on __any__ webserver that supports PHP (such as ((nginx)), [http://www.iis.net/|Windows IIS] or [http://www.lighttpd.net/|lighttpd]), but is most widely tested and used with [http://httpd.apache.org/|Apache]. You may need to make minor modifications for non-Apache webservers. |
Your webserver should be configured with the following __minimum__ requirements: | Your webserver should be configured with the following __minimum__ requirements: | ||
Lines: 35-53 | Lines: 29-62 | ||
* 100 MB free storage | * 100 MB free storage | ||
- | !! Database . |
+ | !! Database {img type="fileId" fileId="440" width="110" alt="MariaDB" imalign="right"} {img type="fileId" fileId="1655" width="110" alt="MySQL" imalign="right"} Tiki requires ((MariaDB)), ((MySQL)) or ((Percona Server for MySQL)) We are moving to a machine readable format: https://gitlab.com/tikiwiki/tiki-manager/-/blob/master/config/ .yml {FANCYTABLE(head="Tiki Version | MariaDB Versions | MySQL Versions | Notes" colwidths="20%|20%|10%|50%" colaligns="left" colvaligns= top")} ((Tiki27)) LTS (not released yet) | 10.5+ | 8+ | MariaDB 10.2.2+ or MySQL 5.7+ are the versions where the InnoDB row format is by default Dynamic, required for some tables. ((Tiki21)) to ((Tiki26)) | 5.5+ | 5.7+ | No known issues of 2023-06-15 ((Tiki19)) or ((Tiki20)) | 5.5-10.4 | 5.5.3-5.7 | MySQL 5.6+ or MariaDB 10.1+ are recommended. First version to support ((dev:utf8mb4)) ((Tiki18)) LTS | 5.1-10.4 | 5. -5.7 | MySQL 5.6+ or MariaDB 10.1+ are recommended as not features will be available at lesser versions. ((Tiki15)) LTS | 5. -10.1 | 5. -5.6 | In Tiki 15+ Upgrade scripts in in MariaDB 10.1 / MySQL 5. may not work from earlier versions of Tiki. ((Tiki12)) LTS | 5.1-5.5 5. -5.5 | {FANCYTABLE} |
The database can be installed in the same physical location of the webserver (that is, as __localhost__) or Tiki can access a remote database. | The database can be installed in the same physical location of the webserver (that is, as __localhost__) or Tiki can access a remote database. | ||
- | !! PHP {DIV(float=right,width="125px")} |
+ | !! PHP {img fileId="441" thumb="n" alt="PHP" imalign="right"} We are moving to a machine readable format: https://gitlab.com/tikiwiki/tiki-manager/-/blob/master/config/tiki_requirements.yml |
- | {FANCYTABLE(head="Tiki Version | Minimum PHP Version | Maximum PHP (( (( (( |PHP 5 (( |
+ | {FANCYTABLE(head="Tiki Version | Minimum PHP Version | Maximum PHP Version | Notes" colwidths="20%|20%|10%|50%" colaligns="left" colvaligns="top")} ((Tiki28)) (not released yet) | 8.1? | 8.4 | We'll decide this once Tiki27 is released. Expected to be OK until PHP 9. ((Tiki27)) (not released yet) | 8.1 | 8.4 | Expected to be OK until PHP 9 ((Tiki26)) | 8.1 | 8.1 (8.2 and 8.3 as Beta) | Related: ((PHP 8 ) ((Tiki22)), ((Tiki23)), ((Tiki24)) LTS and ((Tiki25)) | 7.4 | 7 4 | ((Tiki21)) LTS | [https://gitlab.com/tikiwiki/tiki/-/blob/21.x/setup.sh#L657|7.2] | 7.3 | You can fairly safely use 7.4 if you disregard or suppress notices and warnings. ((Tiki19)) or ((Tiki20)) | 7.1 | 7.2 (maybe 7.3 as well) | There is known issue with Tiki 20.2 where PHP requirement was bumped up PHP 7.2 accidentally ((Tiki18)) LTS | 5.6 7.2 | ((Tiki15)) LTS | 5.5 | 5.6 | ((Tiki12)) LTS | 5.3 | 5.6 | |
{FANCYTABLE} | {FANCYTABLE} | ||
Lines: 55-66 | Lines: 64-71 | ||
* http://php.net/supported-versions.php | * http://php.net/supported-versions.php | ||
* https://wiki.php.net/rfc/releaseprocess | * https://wiki.php.net/rfc/releaseprocess | ||
- | |PHP 5.4 was released in March 2012] and thus, should be EoL in March 2015. * http qFor all versions, [http://php.net/manual/en/mysqli.overview.php|MySQLi extension] is recommended but the Tiki installer will fall back to the older MySQL driver if MySQLi is . |
+ | * https://w3techs.com/technologies/details/pl-php |
^__Note on PHP Memory Limits__: | ^__Note on PHP Memory Limits__: | ||
- | The default memory_limit in a standard PHP |
+ | The default memory_limit in a standard PHP installation is __128M__, and this should be fine for the vast majority of Tiki installations. Some web hosts install PHP with a lower default. Although Tiki may appear to install successfully, you will continually face issues with pages failing to load and system errors. |
To review your PHP Memory Limits, access __http://www.example.com/tiki-phpinfo.php__ and review the following values: | To review your PHP Memory Limits, access __http://www.example.com/tiki-phpinfo.php__ and review the following values: | ||
Lines: 90-98 | Lines: 95-107 | ||
!!! Additional Libraries | !!! Additional Libraries | ||
{FANCYTABLE(head="Library | Notes",headvaligns="bottom",sortable="n",colwidths="25%|75%",colvaligns="top")} | {FANCYTABLE(head="Library | Notes",headvaligns="bottom",sortable="n",colwidths="25%|75%",colvaligns="top")} | ||
- | __mbstring__ Required |
+ | __[https://www.php.net/manual/en/book.libxml.php | libxml]__ | Required __[https://www.php.net/manual/en/book.dom.php|DOM]__ | Required starting from 19 19__[https://www.php.net/manual/en/book.mbstring.php | mbstring]__ | Useful when working with languages that require it %%% mbstring needs to be compiled with --enable-mbregex or otherwise you will be missing functions like mb_split() which are needed for example by Smarty.%%%Since Tiki 17, the symfony/polyfill-mbstring compatibility library (via symfony-console) is used in core functionality, but mbstring is still required for some . __[https://www.php.net/manual/en/book.ctype.php | ctype]__Required | Required__[https://www.php.net/manual/en/book.calendar.php | calendar]Required | Required__[https://www.php.net/manual/en/book.iconv.php | iconv]__ | Required by certain classes Framework validation and parsing classes__[http://php.net/manual/en/mysqli.overview.php|MySQLi]__ |In Tiki 12+ MySQLI is recommended but the Tiki installer will fall back to the older MySQL if MySQLi is unavailable. __[https://www.php.net/manual/en/book.zip.php|zip]__ |[http://php.net/manual/en/class.ziparchive.php|The ZipArchive class for php] must be installed for some features such as ((XML Wiki Import-Export)) ((PluginArchiveBuilder)) |
{FANCYTABLE} | {FANCYTABLE} | ||
Lines: 103-110 | Lines: 112-117 | ||
___file_uploads = On__|Required to allow uploads (files, images, etc.) to your Tiki | ___file_uploads = On__|Required to allow uploads (files, images, etc.) to your Tiki | ||
__upload_max_filesize = XXM__ %%% __post_max_size__ |Specify the maximum upload filesize (in MB). | __upload_max_filesize = XXM__ %%% __post_max_size__ |Specify the maximum upload filesize (in MB). | ||
- | __session.save_handler = files__%%% |
+ | __session.save_path = /tmp__|The directory where PHP stores session information (for the default handler (''files'')). Ensure that the location exists and is writable. In ((Shared Hosting)) environments, if you do not have access to __/tmp__, use __temp__ (no slash) instead. |
__max_execution_time = 60__%%%__max_input_time = 60__|Specify the idle timeout (in seconds). If you experience timeouts (such as when performing Admin functions) you may need to increase these settings. | __max_execution_time = 60__%%%__max_input_time = 60__|Specify the idle timeout (in seconds). If you experience timeouts (such as when performing Admin functions) you may need to increase these settings. | ||
- | __magic_quotes_gpc = Off__|Turn off PHP's [http://us2.php.net/magic_quotes|Magic Quotes] function. | ||
__default_charset = "utf-8"__|Specify the default character encoding. | __default_charset = "utf-8"__|Specify the default character encoding. | ||
__mbstring.func_overload = 0__|Tiki will not work properly with __mbstring.func_overload = 7__. | __mbstring.func_overload = 0__|Tiki will not work properly with __mbstring.func_overload = 7__. | ||
Lines: 115-138 | Lines: 122-138 | ||
* /etc/php/php.ini | * /etc/php/php.ini | ||
* /etc/php5/apache2/php.ini (Debian) | * /etc/php5/apache2/php.ini (Debian) | ||
+ | * /etc/php/7.x/apache2/php.ini | ||
* \windows\system\php.ini (Windows) | * \windows\system\php.ini (Windows) | ||
- | __Notes__: | ||
- | # If safemode is on you may need __safe_mode_allowed_env_vars = TZ__ in __php.ini__. | ||
- | # To run PHP5 on 1and1.com add the following lines to your __ _htaccess__ file (Tiki 3): | ||
- | + AddType x-mapp-php5 .php | ||
- | + AddHandler x-mapp-php5 .php | ||
- | + uncomment line 29 and 30 then rename in .htaccess | ||
!! Optional Software or Libraries | !! Optional Software or Libraries | ||
Some Tiki features require the following additional software or libraries: | Some Tiki features require the following additional software or libraries: | ||
||__Feature__|__Additional Requirements__ | ||__Feature__|__Additional Requirements__ | ||
- | [http://php.net/manual/en/class.ziparchive.php|The ZipArchive class for php] must be installed for some features such as ((XML Wiki Import-Export)) and ((PluginArchiveBuilder)) | ||
- | Image processing, used for thumbnail generation, dynamic chart generation, and to prevent bot/automatic registration.|Use either __GD Library__ 1.5 (or higher) or __ImageMagick__. ImageMagick is included, by default with PHP 4.3+ | ||
- | Manage and display maps as a GeoCMS (Geospatial Content Management System).|((Mapserver)) 4.6+ | ||
Rewrite Tiki's default URLs|Use the ((Apache Clean URLs)) to create shorter, or custom, URLs. | Rewrite Tiki's default URLs|Use the ((Apache Clean URLs)) to create shorter, or custom, URLs. | ||
Elasticsearch | See ((Elasticsearch)) page (requirements section) | Elasticsearch | See ((Elasticsearch)) page (requirements section) | ||
+ | Manticore Search | See ((Manticore Search)) page (requirements section) | ||
|| | || | ||
- | ! * ( * |
+ | !! Tiki Manager * ((Manager|Tiki Manager)) checks which version it can install or upgrade to: https://gitlab.com/tikiwiki/tiki-manager/-/merge_requests/233/ * Here is the current data: https://gitlab.com/tikiwiki/tiki-manager/-/blob/master/config/tiki_requirements yml |