Attempts to install MongoDB on a cPanel based CentOS VPS
While trying to install MongoDB on a cPanel based CentOS server, I found the system configurations were customised by cPanel. And because of which a lot of commands were not available in bash. Also the installation of some packages was disabled in the /etc/yum.conf (e.g. php* in the ‘exclude’ list blocked the installation of php-devel package, etc.). This is a documentation of the key steps to install MongoDB on such a system.
I referred the official doc on mongodb.com to install mongodb on CentOS. So at the time of writing this, the version provided in the doc to install was 4.4.
Please note that I did the installation as ‘root’ user.
Ref. https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
1.Create a repo file in /etc/yum.repos.d called mongodb-org-4.4.repo with this content:
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
2. Install the MongoDB packages
yum install -y mongodb-org
3. Configure MongoDB to auto-start on system startup / reboot
chkconfig mongod on
Output:
Note: Forwarding request to 'systemctl enable mongod.service'.
4. Start MongoDB
service mongod start
Output:
Redirecting to /bin/systemctl start mongod.service
5. Install MongoDB PHP Extension
Note that cPanel has the tools like pecl, phpize, etc. in the following location. Change the version in “ea-php*” as per your PHP version. There could be multiple versions of PHP installed, so choose the version you are using for the project.
/opt/cpanel/ea-php74/root/usr/bin/
So to run phpize followed by ./configure while compiling a package yourself, use something like:
/opt/cpanel/ea-php74/root/usr/bin/phpize && ./configure --with-php-config=/opt/cpanel/ea-php74/root/usr/bin/php-config
PHP extension installation with the pecl tool:
/opt/cpanel/ea-php74/root/usr/bin/pecl install mongodb
Ref. https://www.php.net/manual/en/mongodb.installation.pecl.php
Note that some references ask to install ‘mongo‘ as the extension, but it is the old extension, and with PHP 7 you need to install ‘mongodb‘ as the extension.
A successful installation should end with something like:
Build process completed successfully
Installing '/opt/cpanel/ea-php74/root/usr/lib64/php/modules/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.9.0
Extension mongodb enabled in php.ini
Info: Location of php.ini on cPanel:
/opt/cpanel/ea-*/root/etc/php.ini
6. Restart Apache
service httpd restart