Failed loading /opt/cpanel/ea-php70/root/usr/lib64/php/modules/: with No Module description

Stefan Bogdanescu
Founder & Senior Architect · 27 July 2026

Solving the Mystery: Missing PHP Module Loading Errors on CentOS 6.8 with EasyApache 4 VPS

As a senior developer at Laravel Company, I’ve seen this error pop up more than once in our client’s servers running CentOS 6.8 with EasyApache 4. The error message might look something like this:

Failed loading /opt/cpanel/ea-php70/root/usr/lib64/php/modules/: /opt/cpanel/ea-php70/root/usr/lib64/php/modules/: cannot read file data: Is a directory

It’s frustrating, especially when the php -m command in the terminal shows all modules loading correctly. Let me guide you through this issue step by step.

Understanding the Error and Your Server Environment

You’re running CentOS 6.8 with EasyApache 4 VPS, which allows multiple PHP versions on your server. This setup often leads to confusion because it has multiple .ini files for different PHP versions, causing conflicts.

The error message suggests that something is trying to read a directory as a file, leading to the “Is a directory” issue.

The Role of extension_dir in php.ini

In your php.ini under the extension_dir line, you mentioned:

  • Commenting out
    ; extension_dir = ""
    
  • Setting it to
    extension_dir = "/opt/cpanel/ea-php70/root/usr/lib64/php/modules/"
    

Both of these configurations work because EasyApache 4 manages the PHP extensions differently. By leaving it blank or specifying the correct path, you’re telling PHP where to look for its modules.

The Culprit: Multiple PHP Versions and .ini Files

EasyApache 4 allows multiple PHP versions on a single server, which is great for hosting sites with different PHP requirements. However, this feature also creates multiple php.ini files for each version.

When you’re using EasyApache 4, the modules aren’t necessarily loaded from your main php.ini file in /usr/local/lib; instead, they might be loaded from another .ini file specific to your chosen PHP version and managed by EasyApache.

How to Troubleshoot This Issue

Step 1: Check Your Error Logs

You mentioned that you didn’t find any errors in the error_log. However, it’s worth noting that this log is typically located at /usr/local/apache/logs/error_log for EasyApache installations.

Look for any PHP-related warnings or notices around the time the issue started occurring.

Step 2: Disable mod_pagespeed

You found that mod_pagespeed was causing issues with your backend and images not displaying. Since it’s a performance optimization module, it can sometimes interfere with certain PHP applications.

To disable it temporarily, you can use the following command:

/usr/local/cpanel/3rdparty/bin/apache2ctl -M | grep pagespeed

If it appears in the list of loaded modules, comment out the line LoadModule pagespeed_module libexec/wwwpagespeed in your Apache configuration file (usually /usr/local/apache/conf/httpd.conf).

Then restart Apache:

service httpd restart

Step 3: Review Your PHP Configuration

The solution you found—commenting out or leaving blank the extension_dir and zend_extension lines—is a good start. However, to fully resolve this issue:

  1. Locate the php.ini file for your specific PHP version (you can find it using php --ini).
  2. Ensure that all necessary extensions are properly commented out or uncommented in this file.
  3. Make sure there are no conflicting lines in any other .ini files managed by EasyApache.

Conclusion: A Clean and Efficient Solution

As a developer at Laravel Company, I’ve seen firsthand how easy it is to get caught up in the intricacies of server configurations. The key to solving this issue lies in understanding your server’s environment:

  • You’re using CentOS 6.8 with EasyApache 4 VPS.
  • This setup allows multiple PHP versions and corresponding .ini files.
  • Conflicting configurations between these .ini files can cause loading errors.

By following the steps outlined above—checking error logs, disabling mod_pagespeed if necessary, and reviewing your PHP configuration—the issue should be resolved. Remember to test your site thoroughly after making any changes.

The Laravel Company blog has more detailed guides on server management and PHP configuration best practices that you might find helpful: Laravel Company Blog.

Don’t hesitate to reach out if you need further assistance or want to discuss a custom solution for your specific project.

Our network