Skip to content
Follow
CMS

How to Install ICE HRM with Apache on Ubuntu 24.04

Richard
Written by
Richard
Feb 1, 2025 Updated Oct 11, 2026 10 min read
How to Install ICE HRM with Apache on Ubuntu 24.04
How to Install ICE HRM with Apache on Ubuntu 24.04

Installing ICE HRM with Apache on Ubuntu 24.04 gives you a self-hosted human resource management system. You can use it to handle employee records, track time off, and manage payroll on your own server. ICE HRM is open source, so your company data stays on a machine you control.

Advertisement

Ubuntu 24.04, known as Noble Numbat, works well with the Apache web server for this job. The full stack is Apache, MariaDB and PHP, known as a LAMP stack. You need a server running Ubuntu 24.04, a user account with sudo rights (or root access), and a terminal. If you want HTTPS later, you also need a domain name that points to the server. Allow ports 80 and 443 through any firewall in front of the server. Run the sections below in order, because each one depends on the one before it.

⚡ Quick Answer

Install Apache, MariaDB, and PHP by running `sudo apt install apache2`, `sudo apt install mariadb-server`, and `sudo apt install php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap in your Ubuntu terminal.

Advertisement

Install Apache HTTP server on Ubuntu

Apache is the web server that makes ICE HRM reachable from a browser and handles all incoming web traffic. To install it , open your terminal and run sudo apt update and then sudo apt install apache2. The first command refreshes the package list. The second installs Apache from the Ubuntu repositories.

Open the Ubuntu terminal and run the commands below to install the Apache web server. Wait for the prompt to return before you move on. If apt asks you to confirm, type Y and press Enter.

🐧Bash / Shell
sudo apt update
sudo apt install apache2

On Ubuntu, Apache usually starts on its own after installation. Even so, the commands below let you start and stop it by hand, and enable it so it starts automatically every time the server boots. Run the enable command once. Without it, Apache stays down after a reboot and ICE HRM goes offline with it.

🐧Bash / Shell
sudo systemctl stop apache2
sudo systemctl start apache2
sudo systemctl enable apache2

Next, check that Apache is serving pages. Open a web browser and go to the server’s localhost or IP address. If you are working on the server itself, use localhost. If you are connecting from another computer, use the server’s IP address, as shown below.

Advertisement

http://localhost

Apache2 default page displayed on Ubuntu 24.04
Apache2 default page displayed on Ubuntu 24.04

When you see the Apache2 Default Page, the Apache HTTP server is installed and running. If the page does not load from another computer, a firewall is the usual cause. Make sure port 80 is open on the server and on any network firewall in front of it.

Additional help on installing Apache on Ubuntu is in the link below.

How to install Apache on Ubuntu

Advertisement

Install the MariaDB database server on Ubuntu

ICE HRM keeps all its data in a database: staff records, settings and application data. MariaDB is the database server used here. To install it, open your terminal and run sudo apt update followed by sudo apt install mariadb-server.

Use the instructions below to install MariaDB and check that it works.

Open the Ubuntu terminal and run the commands below to install the MariaDB database server.

🐧Bash / Shell
sudo apt update
sudo apt install mariadb-server

Once MariaDB is installed, use the commands below to stop, start, and enable the service. Enabling it makes MariaDB start automatically when the server boots. This matters because ICE HRM cannot work if the database is not running after a restart.

Advertisement
🐧Bash / Shell
sudo systemctl stop mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb

Run the following commands to confirm that MariaDB installed correctly and responds.

🐧Bash / Shell
sudo mariadb

These commands log you into the MariaDB console and print a message similar to the one below. On Ubuntu, the MariaDB root account normally signs in through the system account, so you run these commands with sudo and don't need a separate database password.

💻Code
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 32
Server version: 10.11.2-MariaDB-1 Ubuntu 23.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> 

This message confirms that the server is installed and accepting connections. You can leave the console for now. The next section opens it again to create the ICE HRM database.

Additional help on installing MariaDB.

Advertisement

Create an ICE HRM database

ICE HRM needs its own database and its own database user. Keeping them separate from everything else on the server means the application only touches its own data. To set this up, log into the MariaDB shell and run the commands that create a database named icehrmdb and a user with full permissions on it.

You will create a database called icehrmdb and a user account called icehrmdbuser.

Finally, you grant icehrmdbuser full access to the icehrmdb database, and only to that database.

You can do all of these database steps with the commands below.

Advertisement

First, log on to the MariaDB database server. The prompt changes to the MariaDB prompt when you are in.

🐧Bash / Shell
sudo mariadb

Then run the commands below to create the database, create the user and grant access. Each statement should answer with a short confirmation line.

💻Code
CREATE DATABASE icehrmdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER icehrmdbuser@localhost IDENTIFIED BY 'type_your_password_here';
GRANT ALL ON icehrmdb.* TO icehrmdbuser@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Replace type_your_password_here with your own password before you run the commands. Choose a strong one and write it down. You need the database name, the user name and this password again in the ICE HRM installation wizard.

Install PHP on Ubuntu Linux

ICE HRM is a PHP application, so Apache needs PHP and a few extra modules to run it. To install them, run sudo apt install php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd in your terminal. The libapache2-mod-php package connects PHP to Apache. The php-mysql package lets PHP talk to MariaDB.

Advertisement

Run the commands below to install the PHP version that ships with Ubuntu 24.04, along with those modules.

🐧Bash / Shell
sudo apt install php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-sqlite3 php-soap php-zip php-ldap php-imap

Additional help on installing PHP.

How to install PHP on Ubuntu Linux

Download ICE HRM files

Now you get the ICE HRM files. Take the latest archive link from the official download page and use wget in your terminal to fetch the package. Then extract the files into your web server directory.

To always install the latest version, check the download page for ICE HRM. Copy the download link for the archive, then download the package on the server and extract it.

First, go to the /tmp directory and download the ICE HRM files. Next, extract the contents into an icehrm folder in the Apache root directory. After extracting, list the folder to check that the ICE HRM files are in place and not inside an extra sub-folder.

The last step in this section is to change the ownership and permissions. This lets the Apache web server read and write the files it needs, while keeping the installation locked down.

Apache runs as the www-data user on Ubuntu, so that user must own the ICE HRM folder. Run these two commands: sudo chown -R www-data:www-data /var/www/icehrm and sudo chmod -R 755 /var/www/icehrm. If the installation wizard later reports that it cannot write a file or folder, wrong ownership here is the first thing to check.

⬛Command Prompt
cd /tmp
wget https://phoenixnap.dl.sourceforge.net/project/icehrm/icehrm_v33.5.0.OS.zip
unzip icehrm_*.zip
sudo cp -rf icehrm_v33.5.0.OS /var/www/icehrm
sudo chown -R www-data:www-data /var/www/icehrm/

With the files in place, configure Apache to serve the ICE HRM content. You do this with a virtual host file, which tells Apache which domain or address maps to which folder.

Run the commands below to create an Apache virtual host file for ICE HRM. The command opens an empty file in a text editor.

🐧Bash / Shell
sudo nano /etc/apache2/sites-available/icehrm.conf

Copy and paste the content block below into the new file. Change the server name and any paths to match your own domain or IP address and the folder you extracted ICE HRM into.

💻Code
<VirtualHost *:80>
ServerName icehrm.example.com
ServerAlias www.icehrm.example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/icehrm

<Directory /var/www/icehrm/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Save the file and close the editor.

Next, enable the virtual host for ICE HRM and restart Apache. Apache only reads a new site file once it is enabled, and it only applies the change after a restart. Run the commands below in order. If Apache refuses to restart, it usually reports a syntax error and the file and line where it found it. Open the virtual host file, fix that line, and try again.

🐧Bash / Shell
sudo a2ensite icehrm.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

Setup Let’s Encrypt SSL/TLS for ICE HRM

To encrypt the traffic to ICE HRM, set up a free Let's Encrypt certificate. Install Certbot from your terminal, then run its command to generate a certificate for your domain. This gives you HTTPS, so everything sent between your users and the HR server is encrypted. That matters here because the application handles personal and payroll data. Certbot needs a real domain name that points to your server, and ports 80 and 443 must be open. It cannot issue a certificate for a bare IP address.

The post below has more detail on installing and creating Let's Encrypt SSL certificates for Apache.

How to set up Let’s Encrypt SSL certificate for Apache on Ubuntu Linux

After you restart Apache, open your browser and go to the server hostname or IP address you set in the Apache virtual host file. If you set up SSL, use the https:// address.

💻Code
http://icehrm.example.com

The ICE HRM installation wizard should appear. If you still see the Apache default page, the virtual host is not active yet. Check that you enabled the site and restarted Apache, and that the default site is not answering for the same address.

  1. Type in the database name, the database user name and the password you created earlier.
  2. Click the Test Database Connectivity button. If the test fails, check the database name, user name and password for typos, and make sure MariaDB is running.
  1. When the test succeeds, click the Install Application button to begin. The wizard creates the tables in your database, which can take a short while.
ICE HRM installation wizard
ICE HRM installation wizard

When the installation finishes, log in with the default user name and password:

  • admin
  • admin

The first value is the user name and the second is the password. These defaults are public knowledge, so change the admin password as soon as you are logged in. Do this before you add any employee data or make the site reachable from the internet.

ICE HRM installation complete
ICE HRM installation complete

ICE HRM is now ready to use. You can start adding employees, setting up leave types and configuring the modules your company needs.

ICE HRM admin portal
ICE HRM admin portal

That should do it!

Conclusion:

Installing ICE HRM with Apache on Ubuntu gives you a solid, self-hosted environment for managing HR processes. Here are the key points from the installation:

  • Open-source Foundation: The software is free to use, which keeps operating costs down, and your data stays on your own server.
  • Apache Web Server: Apache is flexible and has strong community support, which makes it a reliable platform for hosting the application.
  • MariaDB Database Server: MariaDB stores all ICE HRM data and scales well for this kind of workload.
  • PHP Support: The PHP version and modules installed from the Ubuntu repositories let the application run properly.
  • SSL Security: Let's Encrypt certificates give you an encrypted connection for sensitive HR data.
  • User-friendly Setup: The web-based installation wizard makes the final setup quick once the server components are in place.
  • Post-installation Support: Documentation and community resources are available for ongoing management and troubleshooting.

By following these steps, you can set up ICE HRM to streamline your HR operations. Installing ICE HRM on Ubuntu 24.04 with Apache 2.4 gives you a dedicated Human Resource Management system that you control. Keep the server updated, change the default admin password, and back up the icehrmdb database regularly.

Have a question about this guide?

Answered by AI from this guide. Good questions may be added to this page — please don't include personal details.

Did this guide fix your problem?

Richard

About the Author

Richard

Tech Writer, IT Professional

Richard is a writer at Geek Rewind who turns complex IT tasks into clear, step-by-step guides. He draws on years of hands-on experience in system administration and enterprise IT operations, focusing on Windows, Linux and WordPress: the problems people actually run into, and the fixes that work. His server and WordPress guides come from systems he runs himself. Richard builds and maintains the platform behind Geek Rewind, from its Ubuntu servers and Nginx configuration to its custom WordPress plugins. Many new tutorials start with readers' questions, and he's always glad to answer them in the comments.

Advertisement

No comments yet — be the first to share your thoughts!

Leave a Comment

Your email address will not be published. Required fields are marked *