I had the same problem. Here is how to solve it:
First, generically speaking, you can tail the orangehrm.log file in your installation to check for errors. It will be inside your orangehrm folder, following the path ./symfony/log/orangehrm.log (e.g.: /var/www/html/symfony/log/orangehrm.log).
For me, it said:
Uncaught Error: Call to undefined function mysql_connect()
Apparently, it is trying to use a deprecated set of functions, not available on php7.0. The article you posted uses php5, but in Ubuntu 16.04, for example, php7 is the default.
So, follow this article in order to remove the default php7.0 (if you have it installed) and install PHP 5.6:
Installing PHP 5.6 on Xenial (16.04)
Then restart Apache server (
sudo service apache2 restart) and check you PHP version.
After that, you will need to change the default enconding for your MySQL installation too, if your have an up to date version (of MySQL or MariaDB), because OrangeHRM's installation will fail otherwise. This is a workaround, actually. Since version 5.5.3, the default enconding changed to utf8mb4, allowing less characters on keys, indexes, etc. If you don't change it back to utf8, you will see the error Specified key was too long; max key length is 767 bytes during OrangeHRM's install, failing to create tables, etc.
Edit the following file and specify the default char set for MySQL:
sudo nano /etc/mysql/my.cnf
Note that this file might be in different locations. If you don't find it, run:
mysqld --help --verbose 2> /dev/null | grep -A1 'Default options' to get other possible paths.
The result should look like this, after editing the file (this is just a subset of the file contents):
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
# This group is read both both by the client and the server
# use it for options that affect everything
default-character-set = utf8
default-character-set = utf8
init-connect='SET NAMES utf8'
Other locations/files to look for this configuration:
And if you're using MariaDB:
Look for any line defining default-character-set = utf8mb4 and change it to default-character-set = utf8
Execute the following command to make sure you got them all:
And then restart MySQL (
sudo service mysql restart).
Connect to MySQL:
sudo mysql -u root -p
Run the following to check your current char set values:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Now, provision the database itself (replace your_db_name, your_db_user and password by your actual values):
create database your_db_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;
grant all privileges on your_db_name.* to 'your_db_user'@'localhost' identified by "password";
One last thing: make sure you have the extension/module php5.6-xml. Install it if you don't (
sudo apt-get install php5.6-xml), otherwise you're going to see the error PHP Fatal error: Call to undefined function simplexml_load_file() on your logs and you won't be able to login to OrangeHRM after the installation is done.
Finally, try the installation again. Make sure you use an "Existing Empty Database".
This is how my page looks like:
OrangeHRM database install page
And here are some more references: