Symptoms
Customer may receive the following error while having their MySQL PHP modules enabled:
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
Or any similar messages about the missing MySQL/MySQLi extensions on other CMS.
Solution
Try switching the PHP module sets "mysqlnd, nd_mysql, nd_mysqli, nd_pdo_mysql" to "mysql, mysqli, pdo_mysql" without the "nd" part, or vice versa.
If the error remains
The first thing that you should check is whether or not the PHP Selector is configured properly. Check out the following setup guides for:
If you're sure that everything is set correctly, contact us for further assistance.
MySQL_ND vs MySQL explained
MySQL_ND and MySQL PHP extensions are the different sets of drivers. They are provided by the different teams of developers (MySQL and PHP, respectively). The most important is the fact that they are mutually exclusive - you can not select them both simultaneously or mix them in any way. Otherwise, the php code will throw errors about the connection to the MySQL database.
Since PHP 5.4, mysqlnd is used as the default MySQL driver for all PHP MySQL extensions. But for PHP 5.3 and older PHP versions libmysqlclient is used as a connector from PHP to MySQL.
For PHP Selector we need to support both methods, that is why we added nd_* prefix for PHP MySQL extensions compatible with mysqlnd.
So, as a result:
- libmysqlclient works with mysql, mysqli, pdo_mysql extensions (PHP 4.4 - PHP 5.3);
- mysqlnd works with nd_mysql, nd_mysqli, nd_pdo_mysql extensions (PHP 5.4 - PHP 7.1+).
So you have to choose only one of the following sets:
mysqlnd
nd_mysqli
nd_pdo_mysql
or
mysqli
pdo_mysql
Also the
/etc/cl.selector/php.extensions.conflicts
File provides information about the mutually incompatible php extensions.
In some instances, it may be required to update the "etc" directory, and the user's CageFS. To do so, run:
cagefsctl --update-etc $USER && cagefsctl -m $USER
Comments
0 comments
Please sign in to leave a comment.