Configuration
Config parameters[link1] for WackoWiki R6.1
Default values are set in the config_defaults.php[link2] file in the config/ folder.
1. Primary
generated by installer
config/config.php
$wacko_config = [ 'base_url' => 'https://example.com/wiki/', 'db_charset' => 'utf8mb4', 'db_collation' => 'utf8mb4_unicode_520_ci', 'db_driver' => 'mysql_pdo', 'db_engine' => 'InnoDB', 'db_vendor' => 'mariadb', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'wiki', 'db_user' => 'db_user_name', 'db_password' => '', 'sql_mode' => '0', 'table_prefix' => 'wacko_', 'system_seed' => 'c-&P[(13N#Nj62l*mYE4', 'hashid_seed' => '6MH]g{Fpa}#Ck~I22^X#', 'recovery_password' => '', 'wacko_version' => '6.1.29', ];
2. Secondary
stored in config table
Changes in the secondary config[link1] can be done via
- editing the
config_valuein the config table via phpMyAdmin.- Don't forget to delete the _cache/config/config.php afterwards, e.g.
{{admincache}}
- Don't forget to delete the _cache/config/config.php afterwards, e.g.
- the Admin panel[link3]
| no | config_name | value | default |
|---|---|---|---|
| 1. | abuse_email | abuse@example.com | |
| 2. | account_page | Settings | |
| 3. | acl_lock | 0 | |
| 4. | admin_email | webmaster@example.com | |
| 5. | admin_name | WikiAdmin | |
| 6. | allow_email_reuse | 0 | |
| 7. | allow_intercom | 0 | |
| 8. | allow_license_per_page | 0 | |
| 9. | allow_massemail | 0 | |
| 10. | allow_persistent_cookie | 1 | |
| 11. | allow_rawhtml | 1 | |
| 12. | allow_registration | 0 | |
| 13. | allow_themes | 0 | |
| 14. | allow_themes_per_page | 0 | |
| 15. | allow_x11colors | 0 | |
| 16. | allowed_email_domains | ||
| 17. | allowed_languages | 0 | |
| 18. | american_date | 1 | |
| 19. | anonymize_ip | 0 | |
| 20. | ap_failed_login_count | 0 | |
| 21. | ap_max_login_attempts | 4 | |
| 22. | approve_new_user | 0 | |
| 23. | attachments_handler | 2 | |
| 24. | autosubscribe | 1 | |
| 25. | cache | 1 | |
| 26. | cache_sql | 0 | |
| 27. | cache_sql_ttl | 600 | |
| 28. | cache_ttl | 600 | |
| 29. | canonical | 0 | |
| 30. | captcha_edit_page | 1 | |
| 31. | captcha_new_comment | 1 | |
| 32. | captcha_new_page | 1 | |
| 33. | captcha_registration | 1 | |
| 34. | categories_handler | 1 | |
| 35. | category_page | Category | |
| 36. | changes_page | RecentChanges | |
| 37. | check_mimetype | 1 | |
| 38. | comment_delay | 1 | |
| 39. | comments_count | 10 | |
| 40. | comments_offset | ||
| 41. | comments_page | RecentlyCommented | |
| 42. | create_thumbnail | 0 | |
| 43. | csp | 1 | |
| 44. | date_format | dd.MM.y | |
| 45. | debug | 3 | |
| 46. | debug_admin_only | 0 | |
| 47. | debug_sql_threshold | 0 | |
| 48. | default_comment_acl | $ | |
| 49. | default_create_acl | $ | |
| 50. | default_diff_mode | 3 | |
| 51. | default_read_acl | * | |
| 52. | default_rename_redirect | 0 | |
| 53. | default_upload_acl | Admins | |
| 54. | default_write_acl | $ | |
| 55. | diff_modes | 0,1,2,3,4,5 | |
| 56. | disable_bracketslinks | 0 | |
| 57. | disable_formatters | 0 | |
| 58. | disable_safehtml | 0 | |
| 59. | disable_wikilinks | 1 | |
| 60. | disable_wikiname | 1 | |
| 61. | edit_summary | 0 | |
| 62. | email_confirmation | 0 | |
| 63. | email_from | WackoWiki | |
| 64. | email_priority | 3 | |
| 65. | email_subject_prefix | ||
| 66. | enable_captcha | 1 | |
| 67. | enable_comments | 1 | |
| 68. | enable_counters | 1 | |
| 69. | enable_email | 1 | |
| 70. | enable_email_notification | 1 | |
| 71. | enable_feeds | 1 | |
| 72. | enable_license | 0 | |
| 73. | enable_referrers | 0 | |
| 74. | enable_security_headers | 1 | |
| 75. | enable_system_message | 1 | |
| 76. | export_handler | 2 | |
| 77. | ext_bad_behaviour | 0 | |
| 78. | footer_comments | 1 | |
| 79. | footer_files | 1 | |
| 80. | footer_tags | 1 | |
| 81. | forbidden_email_domains | ||
| 82. | form_token_time | 7200 | |
| 83. | forum_cluster | Forum | |
| 84. | forum_topics | 10 | |
| 85. | groups_page | Groups | |
| 86. | help_page | ||
| 87. | hide_index | 0 | |
| 88. | hide_locked | 1 | |
| 89. | hide_revisions | 0 | |
| 90. | hide_toc | 0 | |
| 91. | index_page | PageIndex | |
| 92. | intercom_delay | 30 | |
| 93. | ip_login_limit_max | 50 | |
| 94. | jpeg_quality | 80 | |
| 95. | keep_deleted_time | 0 | |
| 96. | language | en | |
| 97. | license | ||
| 98. | link_target | 0 | |
| 99. | list_count | 50 | |
| 100. | log_default_show | 1 | |
| 101. | log_level | 7 | |
| 102. | log_purge_time | 0 | |
| 103. | login_notice | 0 | |
| 104. | login_page | Login | |
| 105. | logo_display | 0 | |
| 106. | logo_height | 50 | |
| 107. | logo_width | 108 | |
| 108. | maint_last_cache | 1753529961 | |
| 109. | maint_last_delpages | 1 | |
| 110. | maint_last_log | 1 | |
| 111. | maint_last_oldpages | 1 | |
| 112. | maint_last_refs | 1753612761 | |
| 113. | maint_last_session | 1753785561 | |
| 114. | maint_last_update | 2025-07-26 10:32:04 | |
| 115. | maint_last_xml_sitemap | 1 | |
| 116. | max_image_area | 0 | |
| 117. | max_image_width | 0 | |
| 118. | max_login_attempts | 3 | |
| 119. | max_page_size | 2097152 | |
| 120. | max_thumb_width | 150 | |
| 121. | menu_items | 5 | |
| 122. | minor_edit | 0 | |
| 123. | multilanguage | 1 | |
| 124. | name_date_macro | %s (%s) | |
| 125. | news_cluster | News | |
| 126. | news_levels | ||
| 127. | news_structure | ||
| 128. | nofollow | 0 | |
| 129. | noindex | 0 | |
| 130. | noreferrer | 0 | |
| 131. | noreply_email | noreply@example.com | |
| 132. | notify_comment | 1 | |
| 133. | notify_diff_mode | 2 | |
| 134. | notify_minor_edit | 1 | |
| 135. | notify_new_user_account | 1 | |
| 136. | notify_page | 2 | |
| 137. | notify_upload | 1 | |
| 138. | numerate_links | 0 | |
| 139. | opensearch | 0 | |
| 140. | owners_can_remove_comments | 1 | |
| 141. | pages_purge_time | 0 | |
| 142. | paragrafica | 1 | |
| 143. | password_page | Password | |
| 144. | permissions_policy | 1 | |
| 145. | phpmailer_method | ||
| 146. | privacy_page | ||
| 147. | publish_anonymously | 0 | |
| 148. | pwd_admin_min_chars | 15 | |
| 149. | pwd_char_classes | 0 | |
| 150. | pwd_min_chars | 10 | |
| 151. | pwd_unlike_login | 1 | |
| 152. | random_page | RandomPage | |
| 153. | referrer_policy | 7 | |
| 154. | referrers_purge_time | 1 | |
| 155. | registration_delay | 10 | |
| 156. | registration_page | Registration | |
| 157. | remove_onlyadmins | 0 | |
| 158. | rename_global_acl | Admins | |
| 159. | reverse_proxy | 0 | |
| 160. | reverse_proxy_addresses | ||
| 161. | reverse_proxy_header | ||
| 162. | review | 0 | |
| 163. | rewrite_mode | 1 | |
| 164. | root_page | HomePage | |
| 165. | search_page | Search | |
| 166. | section_edit | 1 | |
| 167. | session_length | 30 | |
| 168. | session_notice | 0 | |
| 169. | session_store | 1 | |
| 170. | show_permalink | 0 | |
| 171. | show_spaces | 1 | |
| 172. | site_desc | Cover what you do best. Link to the rest. | |
| 173. | site_favicon | ||
| 174. | site_logo | wacko_logo.png | |
| 175. | site_name | MyWikiSite | |
| 176. | smtp_connection_mode | ||
| 177. | smtp_host | localhost | |
| 178. | smtp_password | ||
| 179. | smtp_port | 587 | |
| 180. | smtp_username | ||
| 181. | sorting_comments | 0 | |
| 182. | source_handler | 1 | |
| 183. | spam_filter | 1 | |
| 184. | standard_handlers | addcomment|admin\.php|attachments|categories|... | |
| 185. | store_deleted_pages | 1 | |
| 186. | svg_sanitizer | 1 | |
| 187. | system_message | ||
| 188. | system_message_audience | 1 | |
| 189. | system_message_type | ||
| 190. | terms_page | ||
| 191. | theme | default | |
| 192. | theme_color | ||
| 193. | time_format | HH:mm | |
| 194. | time_format_seconds | HH:mm:ss | |
| 195. | timezone | UTC | |
| 196. | tls | 0 | |
| 197. | tls_implicit | 0 | |
| 198. | tree_level | 1 | |
| 199. | typografica | 0 | |
| 200. | upload | admins | |
| 201. | upload_allowed_exts | ||
| 202. | upload_banned_exts | asax, asa, ascx, ashx, asmx, aspx, asp, axd, ... | |
| 203. | upload_images_only | 1 | |
| 204. | upload_max_size | 512000 | |
| 205. | upload_quota | 0 | |
| 206. | upload_quota_per_user | 104857600 | |
| 207. | upload_translit | 1 | |
| 208. | upload_translit_lower | 0 | |
| 209. | urls_underscores | 0 | |
| 210. | user_can_delete_account | 0 | |
| 211. | username_chars_max | 20 | |
| 212. | username_chars_min | 3 | |
| 213. | users_page | Users | |
| 214. | xml_changes_link | 1 | |
| 215. | xml_sitemap | 0 | |
| 216. | xml_sitemap_gz | 0 | |
| 217. | xml_sitemap_time | 1 | |
| 218. | xml_sitemap_update | ||
| 219. | youarehere_text |
3. User Settings
stored in usersetting table
Relation of corresponding user settings to config settings:
| guest | user | remarks | |
|---|---|---|---|
| config | ✓ | ✕ | |
| user setting | ✕ | ✓ |
The default values for the user settings are either set as DEFAULT value in the table itself or taken from the corresponding settings in the secondary config.
| no | config_name | value | default |
|---|---|---|---|
| 1. | allow_intercom | 0 | |
| 2. | allow_massemail | 0 | |
| 3. | autocomplete | 0 | |
| 4. | comments_offset | 1 | |
| 5. | date_preference | system | |
| 6. | diff_mode | 3 | |
| 7. | dont_redirect | ||
| 8. | doubleclick_edit | 1 | |
| 9. | hide_lastsession | ||
| 10. | list_count | 50 | |
| 11. | menu_items | 5 | |
| 12. | noid_pubs | 0 | |
| 13. | notify_comment | 1 | |
| 14. | notify_minor_edit | 1 | |
| 15. | notify_page | 2 | |
| 16. | numerate_links | 1 | |
| 17. | send_watchmail | ||
| 18. | session_length | ||
| 19. | setting_id | 1 | |
| 20. | show_comments | 1 | |
| 21. | show_files | ||
| 22. | show_spaces | 1 | |
| 23. | sorting_comments | 0 | |
| 24. | theme | default | |
| 25. | timezone | UTC | |
| 26. | user_id | 3 | |
| 27. | user_lang | en | |
| 28. | validate_ip |
4. Constants
config/constants.php[link4]
const CONFIG_DIR = 'config'; // NB hardcoded as config/constants.php for bootstrap
const CONFIG_FILE = 'config/config.php';
const CONFIG_DEFAULTS = 'config/config_defaults.php';
const SITE_LOCK = 'config/lock';
const AP_LOCK = 'config/lock_ap';
const ACTION_DIR = 'action';
const LANG_DIR = 'lang';
const FORMATTER_DIR = 'formatter';
const HANDLER_DIR = 'handler';
const IMAGE_DIR = 'image';
const THEME_DIR = 'theme';
const THUMB_DIR = 'file/thumb';
const THUMB_LOCAL_DIR = 'file/thumb_local';
const UPLOAD_GLOBAL_DIR = 'file/global';
const UPLOAD_LOCAL_DIR = 'file/perpage';
const UPLOAD_BACKUP_DIR = 'file/backup';
const XML_DIR = 'xml';
const CACHE_CONFIG_DIR = '_cache/config';
const CACHE_FEED_DIR = '_cache/feed';
const CACHE_PAGE_DIR = '_cache/page';
const CACHE_SQL_DIR = '_cache/query';
const CACHE_TEMPLATE_DIR = '_cache/template';
const CACHE_SESSION_DIR = '/tmp'; // '/tmp', '_cache/session'
const CHMOD_SAFE = 0640; // better to use 0600 in production
const CHMOD_FILE = 0644; // file creation mode
const CHMOD_DIR = 0755; // directory creation mode
const SITEMAP_XML = 'sitemap.xml';
const HTTP_403 = 'image/upload403.svg';
const HTTP_404 = 'image/upload404.svg';
const DAYSECS = 86400; // 24 * 60 * 60
const BACKUP_COMPRESSION_RATE = 9; // gzip compression rate
const BACKUP_MEMORY_STEP = 1048576; // max bytes to process per cycle (make sure it's at least 10 times less than PHP memory limit!)
const BACKUP_FILE_LOG = 'backup.log'; // backup log filename
const BACKUP_FILE_STRUCTURE = 'structure.sql'; // tables structure filename
const BACKUP_FILE_DUMP_SUFFIX = '.dat.gz'; // tables dump filename suffix
const BACKUP_FILE_GZIP_SUFFIX = '.gz'; // regular compressed files suffix
const GLOB_ALL = '{,.}*'; // for glob()
const ADD_NO_DIV = '*'; // for Wacko::method()
const SYSTEM_LANG = -1; // for Wacko::_t()
const COOKIE_SAMESITE = 'Lax'; // Strict, Lax, None
const AUTH_TOKEN = 'Auth';
const GUEST = 'guest@wacko';
const INTERCOM_MAX_SIZE = 262144;
const LOAD_NOCACHE = false;
const LOAD_CACHE = true;
const LOAD_ALL = false;
const LOAD_META = true;
const IS_HEADING = 66666;
const IS_PARAGRAPH = 77777;
const IS_INCLUDE = 99999;
const MENU_AUTO = 0;
const MENU_USER = 1;
const MENU_DEFAULT = 2;
const LINK_PAGE = 0;
const LINK_FILE = 1;
const LINK_EXTERNAL = 2;
const OBJECT_PAGE = 1;
const OBJECT_FILE = 2;
const OBJECT_REVISION = 3;
const NBSP = ' '; // \u{00A0} No-Break Space (NBSP)
const RECOVERY_MODE = 0; // 1 - restore database
const AUTO_REWRITE = 1; // 0 - off, turns off auto rewrite for debugging,
const SQL_MODE_STRICT = [
'mariadb' => 'TRADITIONAL,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY',
'mysql' => 'TRADITIONAL,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY'
];
const SQL_MODE_LAX = [
'mariadb' => 'NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER',
'mysql' => 'NO_ENGINE_SUBSTITUTION'
];
// Do not change these two lines, PLEASE-PLEASE. In fact, don't change anything! Ever!
const WACKO_VERSION = '6.1.29';
const HTML_ENTITIES_CHARSET = 'UTF-8';
const WACKO_ENV = 4; // Environment: 1 - development, 2 - test, 3 - stage, 4 - production
const ACTION4DIFF = 'anchor, toc'; // allowed actions in DIFF
const DB_MIN_VERSION = ['mariadb' => '10.4', 'mysql' => '8.0'];
const DB_ERROR_MODE = 0; // 0 - silent, 1 - warning, 2 - exception
const PHP_MIN_VERSION = '8.0'; // minimum required PHP version
const PHP_MAX_VERSION = '8.4'; // maximum supported PHP version
const PHP_ERROR_REPORTING = 0; // PHP error reporting: 0 - off, 6 - all
- [link1] https://wackowiki.org/doc/Doc/English/Configuration
- [link2] https://codeberg.org/WackoWiki/wackowiki/src/branch/master/src/config/config_defaults.php
- [link3] https://wackowiki.org/doc/Doc/English/AdminPanel
- [link4] https://codeberg.org/WackoWiki/wackowiki/src/branch/master/src/config/constants.php