Site icon Joseph Mwema – Biometrics Engineer

PHP Web Biometric Integration in Linux

A moment before touching Biometric Scanner with Right Index Finger for 2nd Finger Capture during Registration

I recently did a PHP Web Biometric Integration in Linux that I run on Mozilla Firefox and Google Chrome Web Browsers in an Ubuntu 20.04 LTS Linux Operating System on my favorite Ubuntu Linux’s GNOME Desktop.

The Biometric Fingerprint Scanner Device that I used for this endeavor was an HID DigitalPersona 4500 Fingerprint Scanner.

As a result of the successful PHP Web Biometric Integration in my Ubuntu Desktop, this was the first time ever in my life that I was Capturing, Enrolling and Authenticating Biometric Fingerprint images in PHP on a Web Browser that runs on top of a Linux Operating System.

Previously I was only able to do PHP Web Biometric Integrations on Windows only.

Here below are some of the PHP Web Biometric Integrations that I have done in the past.

If you need Help with a similar PHP Web Biometric integration for your Organization, Company, Institution, SME reach out to me. I do paid Professional Consulting and Software Development for projects like these on my website

Why I chose to use a DigitalPersona 4500 Biometric Fingerprint Scanner

I could have implemented this PHP Web Biometric Integration in Linux using any other Fingerprint Scanner other than a DigitalPersona 4500 Biometric Scanner.

The DigitalPersona 4500 Biometric Scanner is one readily available Fingerprint Scanner in the market today as compared to many other Fingerprint Scanner.

If you decide you want to purchase a DigitalPersona 4500 Fingerprint Scanner, you are not going to struggle so much to find a retailer of this device in your local electronic shops.

I usually factor in mind the availability of a Biometric Device in the market for my prospective client hopefuls.

There is no need of recommending a Biometric Solution for my clients which requires devices that are not readily available where they are based.

Having to procure a Biometric Device from a far away place and eventually ship it can take more time than is anticipated in some places and delay a project that is already underway.

So for this integration, I decided to use a DigitalPersona 4500 Biometric Scanner purposely for this one reason.

I know that if I recommend to a Company to carry out their PHP Web Biometric Integration in Linux using a DigitalPersona 4500 Biometric Scanner, they will have an easy time procuring these series of devices for their Project.

Why I did this integration on Ubuntu Linux?

At the time I was deciding to go ahead with my PHP Web Biometric integration in Linux, I already had an installation of Ubuntu 20.04 LTS in one of my Computer workstations.

My favorite Linux Operating System used to be CentOS Linux.

This however changed when CentOS Linux became an Upstream of RedHat Enterprise Linux unlike when previously it was a Downstream for RedHat Enterprise Linux.

To implement a PHP Biometric solution that runs on a Linux Desktop, I would recommend to my client to go with RedHat Enterprise Linux itself or any other Enterprise Linux distributions like e.g. SUSE Linux Enterprise.

Of-course other updated recent versions of Linux Distributions would still work fine but there are Linux distributions which are more tailored for business and mission critical operations than others hence the reason I proposed these two.

Overall Setup for PHP Web Biometric Integration in Linux

I will group this into 3 categories namely;

The Front-End

Desktop Operating System

Web Browsers

Fingerprint Scanner

The Server-End

Server Operating System

Web Server

Scripting Language


The Database used on the Server Back-End

Other Fingerprint Scanners that can work with this particular integration

Considering that I did this PHP Biometric integration for Linux using a DigitalPersona 4500 Fingerprint Scanner, the other variety of Fingerprint Scanners that could work with this particular integration include the following genuine ( not fake derivatives ) Biometric Devices. They are;

Motivation for doing this PHP Biometric integration in Linux

There was a time in the past, when I was working on my second job after college that I found myself in a rather awkward situation.

I had just recently been hired and I was not more than 2 months in this job.

The entry position I was serving in this company at that time was that of a Systems Engineer.

By the way, rarely do I see companies recruiting for Systems Engineer roles nowadays, I guess this position is gradually disappearing from many organizations.

The only company that I recently saw have a Systems Engineer position is Dell.

The other day I saw an advertisement for a vacant position of a Systems Engineer at Dell on LinkedIn for potential candidates residing in my country.

At Dell, from the information I gathered on the job description on their job post, is that their ideal Systems Engineer is more of a sales person who collects prospective client requirements, proposes devices that meet those requirements and follows through with after sales support service of equipment and computers sold and delivered to their customers.

My Systems Engineer position back then was not very different from what Dell’s Systems Engineer are expected to do in my country as of this time of writing this post.

However, on my part I was not expected to do any sales as a Systems Engineer.

As a Systems Engineer back then we would be required to do the following at client sites; Software Installations, Setting up and Configuration of new new Biometric Scanners and Smart Card Readers, Setting up of Modems for Data Transmission to Head Quarter, Training of Users and Systems Support.

All along before I was hired to work for this company, they would use Modems for transmitting data from client computers to our servers hosted at headquarter office.

One day, when I reported to work as usual, I noted that there was new batch of boxes at a corner of our open office.

I did not put much thought into them after noticing them that morning.

Later on, as the day progressed, our daily schedule at work was interrupted when we suddenly got notified by our seniors that there was an urgent training about a new set of networking devices that the company had acquired.

It was brought to our attention that in the next 10-15 minutes the training will start and that all persons who do Systems Support need to assemble together for the training session to commence.

Since the office was one big open space, we moved our seats to one side of the room so that we would be away from the wall where the projector would be shooting at.

One of the senior managers who often wore many other hats as situations deemed fit was the one going to conduct the training for the new 3G network routers.

You know how in a startups there are no like practically clear cut roles when it comes to executing some tasks?

This is because the whole company is reliant on everyone that is onboard going far and beyond their limits to do anything possible within their means to keep the ‘thing’ stay afloat and viable in the market so that it continues paying you salaries.

The few staff that a startup has will take up whatever responsibility that comes their way or that which no one else is available to do by simply wearing the appropriate hat for that moment and holding their end of the line and keep moving.

This company was one of those when a task landed on your desk, whether it was relevant to your job description or not, you would take it up, make decisions on how to go about most of the things and invoke your ingenuity to solve whatever complex scenarios you encountered by yourself while on the go.

The senior manager who was going to train us on how to setup, configure and deploy these new 3G network routers that would soon replace the current modems for data transmission from client sites to the Head Quarter, let’s call him, “G-Sort” looked like this particular task of training had landed on his desk while he was busy working as a Software Engineer and now he wanted to dispense off with it and get back to doing what he loved doing most.

While G-Sort was setting up the Projector and the 3G routers that he was going to use to train us, I noticed that not only were Systems Engineers gathered in one side of the hall but we were also joined by just about everyone else who served in that office including the Accountant and the CEO too.

Soon the training started and we were all ears!

G-Sort connected one of the 3G Routers that he had been working on to his laptop, connected the projector to his laptop and then began showing us around the GUI interface of the 3G Router.

5 minutes later, the training was deeply underway for this new 3G Router that would replace the modems we mostly used at client sites.

As the training went on, guys were keen to understand how this 3G Router works and how to go about configuring this gadget to sit on a physical LAN network of a client site as a node with an IP on that LAN and remit data via 3G to and from Headquarter and the client site server.

My grasping of networks at the time and how devices interconnect in a network was very limited and I was struggling to follow thru the training when out of without G-Sort grabbed one of the new boxes with a 3G Router in it and tossed it to me then asked me to simulate a client site deployment of this device.

I was given 2 IP addresses and a 3G SIM card to simulate a LAN setup using the 3G Router that I had been given.

I swear I did not know what to do with it before I slowly began to unwrap the device from its box.

The hall was dead silent! No one was talking!

I then proceeded to slot in the SIM card into the 3G Router, then connected it to its power adapter and stood their like a stooge looking at G-Sort.

He asked me what I was waiting for!

To which I answered that I was done with the setup. I knew it was stupid to have just said that but at this point I knew it was pointless to pretend to know that I knew the next steps of actions needed to accomplish what I had been asked to do.

I had previously struggled with 3G modem installations while at client sites on some past assignments from this same guy and here I was failing at a training session for a new network device.

I felt miserable and hopeless!

G-Sort asked me to explain to everyone in the hall how my device would connect into the client network and remit data with the current setup that I had?

I think I said I do not know how to proceed thereafter when he asked me a midst a sure frustration written all over on his face, “Did you study networking at school?”

To this question, I heard people giggling and holding back laughter behind me.

I said that I did a unit for networks at college and then while wondering what happens next now that I had demonstrated my ineptitude in front of everyone, the CEO said something to the rest of the team in a low tone which I did not quite clearly comprehend which made some girls go into a fit of laughter!

I was sure I was going to get shown the door after this epic fail but at that moment, I would have rather that happened than the humiliation I was undergoing at that time!

G-Sort turned back to me again now with a stern look and told me, “Joseph! You have not connected your 3G Router into the simulated client site LAN. Will you go ahead and assign the router one of the IP Addresses that I gave you and then assign the Test Computer the other IP Address then show us how the client server will send data back to HQ with your network setup”

I was only able to assign the IP Address to the Test Computer but did not know how to do the same with the 3G Router nor even know how to advance forward with simulating how data would move from the dummy client server thru the LAN to the 3G Router and back to HQ.

I had not noticed that I had not even connected the network patch cable to bridge the connection between the Test Computer and one of the 4 RJ45 ports of the 3G Router when G-Sort did it himself and asked me, “How would this setup of yours ever work if it is not sitting inside the simulated client’s LAN?”

By the way, in my schooling years and all along in college, I was not usually very sharp and smart enough to grasp things first hand at a class setup when a Teacher / Tutor / Lecturer / Professor was teaching and would normally compensate for this shortcoming on my part by revisiting things taught in class later on my own so that I could read and understand them especially for things which were just not obviously logic 1 logic 0.

In this office training, with G-Sort and other Systems Engineers, I did not anticipate that I would be put on the spot to demonstrate that I had understood what we were being trained about.

In my mind, I was thinking I will have some free time later and borrow one of the 3G Routers to practice with but here I was, now a laughing stock!

A minute or two passed when I started fumbling with the Test Computer then G-Sort reached out for another new box with a 3G Router inside and did an impromptu pick on another random System Engineer and handed them the box after which he requested me to take my seat.

I was relieved to be off the lime light for now but vowed to myself that I was going to work my ass off to understand how this device works for whatever it takes! Hang in there! Just read on. I will show you how I was able to eventually accomplish this feat.

The guy after me fumbled with the device too but the girls were helped out and we clapped hands for them to my utter dismay when it could be demonstrated with their simulated device network setup that data could be relayed over the 3G Router from the dummy client computer via the dummy LAN to the 3G Router then back to the HQ.

D-Day arrived when on one day about a week later, a new software release version was ready to be used to upgrade all the client sites that we managed and Systems Engineers were now required to replace the 3G modems at sites with the new 3G Routers too while on these site visits.

My fren! It was chaos at client sites as amigos struggled to introduce the 3G Routers at their respective client sites.

I had not been sent to site with one of these new 3G Routers as they preferred to send the more seasoned Systems Engineers so I stayed back in the office.

At 5 PM in the evening, most of the Systems Engineers who had gone to site were now calling back to request whether to reinstate the 3G modems that they were supposed to replace at client sites with the 3G Routers because they had not managed to make the 3G Routers work at their client sites and did not want to leave the site dysfunctional.

A site that was not operational for whatever reason was so catastrophic to the Syshtems Engineer assigned to it that in the event that your client site had a down time for relaying data to HQ because of a network connectivity related issue that was not your doing that would be grounds enough to get you summoned, given a warning letter and sometimes issued with threats of dismissal from service.

By end of that day, most of all the Systems Engineers, about 95% of them had NOT succeeded in deploying their 3G Routers to site.

I do not remember well but there was a guy who was helped by G-Sort to remotely setup their 3G Router successfully thru trial and error because that site was very critical and it had enough potential to stir a storm at the HQ that no one wanted to deal with so it was better to do everything possible to avoid it.

End of year was drawing nigh in a week’s time and we were going to break for Christmas holidays.

On the day folks were breaking off for end of year holidays, I went and talked to G-Sort and told him that I would like to come to the office over the festive holidays so that I could do more practice on how to setup, configure and deploy the 3G Routers at client sites to which he agreed.

I was so glad he accepted that I can be allowed in office during the holidays.

I never wasted that moment! We were just about 4 guys in that office over that holiday period.

Despite getting assigned a few tasks here and there and some occasional site visits for non related network issues, I had adequate time, multiple test computers and many 3G Routers at my disposal to learn and practice with.

With minimal interruptions and less busy work environment over the holidays. I salvaged and redeemed myself from the abhorrent situation that I was in at that time and vowed to myself that I will ace every task at any site which would require deployment and setup of these series of these 3G network devices.

With the help of G-Sort I simulated various possible site network scenarios which I did and redid over again to be sure that I truly understood what I was doing it.

When the holidays were over and folks had returned to the office as usual, whenever I was sent to sites for assignments, I would ace those 3G Router network installations, setup, configurations and deployments until guys began to book me to go with them to their sites to assist them in doing theirs too.

I began to get assigned sites far away from HQ where it would take me sometimes over 2 weeks to complete assignments in a given region there but whenever I combed an area, I would work on all the sites there and live them behind in a good standing to the satisfaction of the senior managers at the HQ who were monitoring the network devices remotely and data remittance back to HQ.

I did a combination of very many other complex network setups, configurations, installations not only with 3G Routers only but with other devices too including doing network routing and port forwarding in Linux boxes too. There was even a time I had an Endian firewall running atop an old Linux box that I had assembled at the office.

Back to PHP Web Biometric integration in Linux – What I learnt and shared Similarities

One day after helping a Client implement a PHP Linux based Biometric Server back-end that could do Biometric Authentication on the Linux back-end, I thought to myself, what if the Client had wanted to do a PHP Web Biometric Application on the Linux Front-End and not on Windows like their current setup was, I would not have been ready to do anything like that because I did not have the technology know how nor the experience to develop and implement such a solution.

I told myself that I must Figure out How To and Develop a Front-End PHP Web Biometric Application that can Capture Biometric Fingerprints for Enrollment, Registration and Authentication on a PHP Web Application that runs on a Linux Desktop.

I did not know where to start but I remember reminding myself how I relentlessly practiced with the 3G Routers back then over the holidays until I learned how to successfully do the setup, configurations and deployments of those network devices.

So I decided this is the same thing I will do with the DigitalPersona 4500 Biometric Scanner until I could flawlessly run it on a PHP Web Application on a Linux Operating System Desktop.

This Blog Post that you are reading here is a culmination of me succeeding to do PHP Web Biometric Fingerprint Capture, Registration, Enrollment on an Ubuntu 20.04 LTS Linux Desktop.

Should your Organization, Company, Institution or SME require the expertise of a Consultant to Help you implement a similar solution in PHP on Linux, you can reach out to me for Professional Consulting Services in the same.

Screenshots from PHP Web Biometric integration in Ubuntu Linux

Mozilla Firefox Web Browser version that runs in my Ubuntu Linux Desktop
A Blank Registration page for PHP Web Biometric Integration in Ubuntu Linux
Capturing my Left Finger Index Biometrics during Fingerprint Enrollment
A moment before touching Biometric Scanner with Right Index Finger for 2nd Finger Capture during Registration
Notification ALERT that Finger 2 Biometric is NOT yet Captured for Registration
Finger 2 Fingerprint Image Captured and now Ready for Registration
Registration page for PHP Web Biometric Integration in Linux when it is Populated with User Data and their Biometrics
PHP Web Biometric Registration was successful
The SQL Database Back-End after User Data and Biometrics is Successfully Registered
Touching Biometric Scanner with Right Hand Finger Index during Biometric Authentication
Biometric Authentication Succeeded and Returned a Match Found Result
Authentication Page Populated with Data of Biometrically Authenticated User
When there is a NO MATCH Found during Biometric Authentication
Command for getting USB Devices connected to get Type of Biometric Scanner connected
PHP Apache MariaDB Versions
The Database php_linux_web_biometric_db
The it_consultant SQL Table Structure where Biometric Data is archived

Watch PHP Web Biometric integration in Linux DEMO Video

PHP Web Biometric Integration in Linux

Do you Need Help with PHP Web Biometric integrations that run on Mozilla Firefox or Google Chrome in Linux Desktops?

I am a Software Engineer ( Biometrics Engineer ) who Helps Companies, Institutions, Organizations and SMEs like You to Develop, Integrate, Support and Maintain Identity and Access Management (IAM) Software Solutions based on Biometrics that run on Linux, Windows, Android, Web, RaspberryPi and Cloud.

If you need a Helping Hand to provide you with Professional Consulting for your PHP Web Biometric integration in Linux, I can assist you with that

I provide Premium based Consulting!

Please find more Details on How to contact me for Professional Consulting Services to Help you with similar Biometric integrations at my website

Thank you for reading this article post and for sharing it with your peers too. I appreciate!

Joseph Mwema’s Email Address and YouTube Channel’s QR Code
Some of the Companies, Organizations and Institutions that I have helped to integrate Biometrics in their Software Applications

Exit mobile version