We explain which packages need to be installed and configured in a few steps in this article. We use an environment without a desktop.
When you install Ubuntu, you will eventually reach a "Software selection" dialog that contains a list of checkboxes for selecting the software you want to install initially. Here, the "Ubuntu desktop environment" checkbox is already checked. If you uncheck this checkbox and leave all other desktop environment checkboxes (GNOME, Xfce, etc.) unchecked, this results in a GUI-less installation:
The installed packages for Apache web server, PHP, and MariaDB already come with configuration files. It is recommended to store custom settings in separate files rather than modifying the existing configuration files. With each package upgrade, any divergent settings would be flagged or overwritten. The default configuration settings are supplemented or overridden by the custom ones.
The memory_limit must be increased if needed, e.g., for very large reports or extensive documents. The value (in seconds) of session.gc_maxlifetime should be greater than or equal to the Session Timeout in the system settings of i-doit. The date.timezone parameter should be adjusted to the local time zone (see list of supported time zones).
Then the required PHP modules are activated and the Apache web server is restarted:
To ensure MariaDB delivers good performance and can be operated securely, you should not only follow our guide but also inform yourself further. Starting with a secure installation where the recommendations should be followed. Additionally, the root user should receive a secure password.
1
sudomysql_secure_installation
The InnoDB shutdown mode still needs to be changed. The value 0 causes a full purge and change buffer merge to be performed before MariaDB shuts down:
1
mysql-uroot-p-e"SET GLOBAL innodb_fast_shutdown = 0"
A new file is created for the custom configuration settings and our default configuration is inserted:
1
sudonano/etc/mysql/mariadb.conf.d/99-i-doit.cnf
This file contains the new configuration settings. For optimal performance, these settings should be adjusted to the (virtual) hardware. For optimal settings, please refer to mariadb.com
[mysqld]# This is the number 1 setting to look at for any performance optimization# It is where the data and indexes are cached: having it as large as possible will# ensure MySQL uses memory and not disks for most read operations.# See https://mariadb.com/kb/en/innodb-buffer-pool/# Typical values are 1G (1-2GB RAM), 5-6G (8GB RAM), 20-25G (32GB RAM), 100-120G (128GB RAM).innodb_buffer_pool_size=1G# Redo log file size, the higher the better.# MySQL/MariaDB writes one of these log files in a default installation.innodb_log_file_size=512Minnodb_sort_buffer_size=64Msort_buffer_size=262144# defaultjoin_buffer_size=262144# defaultmax_allowed_packet=128Mmax_heap_table_size=32Mquery_cache_min_res_unit=4096query_cache_type=1query_cache_limit=5Mquery_cache_size=80Mtmp_table_size=32Mmax_connections=200innodb_file_per_table=1# Disable this (= 0) if you have slow hard disksinnodb_flush_log_at_trx_commit=1innodb_flush_method=O_DIRECTinnodb_lru_scan_depth=2048table_definition_cache=1024table_open_cache=2048innodb_stats_on_metadata=0# The maximum number of instances is defined by the table_open_cache_instances system variable.# The default value of the table_open_cache_instances system variable is 8, which is expected to handle up to 100 CPU cores.# If your system is larger than this, then you may benefit from increasing the value of this system variable.table_open_cache_instances=8sql-mode=""