I’ve got a site where the hosting is still running php 5.4. They’re about to upgrade to 7.4. So in anticipation, I upgrade Modx to 2.8.1 and manually set the php on the server to 7.0.
I tried several versions 7.0 or higher. All crashed the site, when I revert back to older version the site came right back. I manually deleted the Modx cache before reloading the site once the php version was changed.
I don’t know how to proceed. Any ideas?
The site crashes with this error:
Fatal error: Uncaught Error: Class ‘PDO’ not found in /home4/xxxxxxx/public_html/core/xpdo/xpdo.class.php:3117 Stack trace: #0 /home4/xxxxxxx/public_html/core/xpdo/xpdo.class.php(454): xPDOConnection->connect(Array) #1 /home4/xxxxxxx/public_html/core/xpdo/xpdo.class.php(2526): xPDO->connect() #2 /home4/xxxxxxx/public_html/core/xpdo/om/xpdoquery.class.php(649): xPDO->prepare(‘SELECT `modSyst…’) #3 /home4/xxxxxxx/public_html/core/xpdo/om/xpdoobject.class.php(233): xPDOQuery->prepare() #4 /home4/xxxxxxx/public_html/core/xpdo/om/xpdoobject.class.php(485): xPDOObject::_loadRows(Object(modX), ‘modSystemSettin…’, Object(xPDOQuery_mysql)) #5 /home4/xxxxxxx/public_html/core/xpdo/xpdo.class.php(757): xPDOObject::loadCollection(Object(modX), ‘modSystemSettin…’, Object(xPDOQuery_mysql), true) #6 /home4/xxxxxxx/public_html/core/xpdo/xpdo.class.php(863): xPDO->call(‘modSystemSettin…’, ‘loadCollection’, Array) #7 /home4/xxxxxxx/public_html/core/model/modx/modcachemanager.class.php(234): xPDO->getCollection(‘modSystemSettin…’) in /home4/xxxxxxx/public_html/core/xpdo/xpdo.class.php on line 3117
Just finished a long chat with hosting support. We did discover conflicting entries in the .htaccess, which we removed. However, any version of php 7.0 or higher is still not working.
I found this in the Modx system info report:
PDO support: enabled
PDO drivers: mysql, sqlite
PDO Driver for MySQL: enabled
Client API version: 5.6.41-84.1
Directive: Local Value,Master Value
pdo_mysql.default_socket:
/var/lib/mysql/mysql.sock,/var/lib/mysql/mysql.sock
I’m not sure if this applies to you as you have a different error message, but I had a similiar issue after updating the PHP version on a shared hosting:
I wonder if this could be an autoloader issue, since PDO is enabled, and tech. support probably checked to make sure the pdo.php file is in the right place.
Maybe the autoloader is confused about where to look for it.
Thanks Ray. I have no idea what this means. LOL. How do I check for this? Since this is shared hosting, wouldn’t other sites on the same server have problems too?