skip to Main Content

Why are the modules not loaded?

This is my Dockerfile:

FROM php:5.6-apache

# Install PHP extensions and PECL modules.
RUN buildDeps=" 
        libbz2-dev 
        libmemcached-dev 
        libmysqlclient-dev 
        libsasl2-dev 
    " 
    runtimeDeps=" 
        curl 
        git 
        libfreetype6-dev 
        libicu-dev 
        libjpeg-dev 
        libldap2-dev 
        libmcrypt-dev 
        libmemcachedutil2 
        libpng12-dev 
        libpq-dev 
        libxml2-dev 
    " 
    && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $buildDeps $runtimeDeps 
    && docker-php-ext-install bcmath bz2 calendar iconv intl mbstring mcrypt mysql mysqli opcache pdo_mysql pdo_pgsql pgsql soap zip 
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ 
    && docker-php-ext-install gd 
    && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ 
    && docker-php-ext-install ldap 
    && docker-php-ext-install exif 
    && pecl install memcached-2.2.0 redis 
    && docker-php-ext-enable memcached.so redis.so 
    && apt-get purge -y --auto-remove $buildDeps 
    && rm -r /var/lib/apt/lists/* 
    && a2enmod rewrite

RUN a2enmod rewrite
RUN usermod -u 1000 www-data
RUN usermod -G staff www-data

And this is the output from php -m:

root@3363bf2aa56d:/var/www/html# php -m
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20131226/pdo.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20131226/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xsl.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xsl.so: cannot open shared object file: No such file or directory in Unknown on line 0
[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]

For example, there is no calendar extension, but it is defined in the Dockerfile itself. Also, exif doesn’t appear in the list. Whats wrong here?

2

Answers


  1. Chosen as BEST ANSWER

    Solution was, that the php.ini hasn't been updated accordingly.

    ...
    extension=gd.so
    extension=calendar.so
    extension=exif.so
    extension=xdebug.so
    extension=soap.so
    extension=opcache.so
    ...
    

    Now it works.


  2. You can add a command in the Dockerfile to activate the extension after building. For example, to enable the calendar extension add:

    RUN php5enmod calendar

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search