2017-04-11 3 views
0

Problem:Docker PHP5.6 Call to undefined function bindtextdomain()

Ich habe ein Docker mit einem nginx Service zusammenstellen und ein PHP-Dienst. Wenn ich versuche, eine Seite meines dev Projekt zu öffnen, begegne ich diesen Fehler:

Fatal error: Call to undefined function bindtextdomain() in /usr/share/nginx/html/some_project/some_path/Bootstrap.php on line 16

ich sah, dass ein Problem einer fehlenden Abhängigkeit ist: php-gettext.

Meine Konfiguration:

In meinem Dockerfile, ich versuche, es zu installieren:

FROM php:5.6.30-fpm 
MAINTAINER DarckCrystale "[email protected]" 

# Here I try to install the php-gettext extension 
# but it does not work 
RUN apt-get update && apt-get install -y php-gettext gettext 

# Setup PHP configuration 
ADD php.ini /usr/local/etc/php/conf.d/php.ini 

In meiner php.ini ich es laden:

extension=gettext.so 

Weitere Informationen :

Wenn ich in meinem Container laufen

php -i | grep extension_dir 

Ich habe diese Meldung angezeigt:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20131226/gettext.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20131226/gettext.so: cannot open shared object file: No such file or directory in Unknown on line 0

Was es mir zu sein scheint:

Ich denke

RUN apt-get update && apt-get install -y php-gettext gettext 

installiert nicht die extensi auf. Ich weiß nicht warum. Ich denke, das ist ein spezielles PHP Docker-Problem.

Antwort

1

So, nach dem Kampf habe ich endlich gefunden, wie diese Erweiterung im PHP-Container installiert wird!

Wie löst man dieses Problem?

Verwenden docker-php-ext-install statt apt-get install im Dockerfile:

FROM php:5.6.30-fpm 
MAINTAINER DarckCrystale "[email protected]" 

# Here I install the php-gettext extension 
# and it works! :D 
RUN docker-php-ext-install gettext 

# Setup PHP configuration 
ADD php.ini /usr/local/etc/php/conf.d/php.ini 

Was ist das Problem?

PHP Container haben eine bestimmte Art und Weise PHP-Erweiterungen zu installieren:

How to install more PHP extensions

We provide the helper scripts docker-php-ext-configure , docker-php-ext-install , and docker-php-ext-enable to more easily install PHP extensions.

So php-gettext Erweiterung Installation scheint nur zu arbeiten, zur Verfügung gestellt Skripten.

Verwandte Themen