首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DockerPHP5.6调用未定义函数bindtextdomain()

DockerPHP5.6调用未定义函数bindtextdomain()
EN

Stack Overflow用户
提问于 2017-04-11 08:58:19
回答 1查看 5.7K关注 0票数 2

问题:

我有一个Docker组合与一个nginx服务和一个PHP服务。当我试图打开dev项目的页面时,会遇到以下错误:

致命错误:调用第16行/usr/share/nginx/html/some_project/some_path/Bootstrap.php中的未定义函数bindtextdomain()

我发现这是一个缺少依赖的问题:php-gettext

My配置:

在我的Dockerfile中,我尝试安装它:

代码语言:javascript
复制
FROM php:5.6.30-fpm
MAINTAINER DarckCrystale "xxx@xxx.xx"

# 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

在我的php.ini中,我加载它:

代码语言:javascript
复制
extension=gettext.so

其他信息:

当我在集装箱里奔跑时

代码语言:javascript
复制
php -i | grep extension_dir

我收到了这样的信息:

警告: PHP启动:无法加载动态库'/usr/local/lib/php/extensions/no-debug-non-zts-20131226/gettext.so‘- /usr/local/lib/php/extensions/no-debug-non-zts-20131226/gettext.so:无法打开共享对象文件:在第0行未知的文件或目录中没有此类文件或目录

在我看来是什么:

我认为

代码语言:javascript
复制
RUN apt-get update && apt-get install -y php-gettext gettext

不安装php-gettext扩展。我也不知道原因。我认为这是一个PHP文档化的特定问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-11 08:58:19

因此,经过一番努力,我终于找到了如何在PHP容器中安装这个扩展!

如何解决这个问题?

在Dockerfile中使用docker-php-ext-install而不是apt-get install

代码语言:javascript
复制
FROM php:5.6.30-fpm
MAINTAINER DarckCrystale "xxx@xxx.xx"

# 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

有什么问题?

PHP容器有一种安装PHP扩展的特定方法:

如何安装更多的扩展 我们提供帮助脚本docker-php-ext-configuredocker-php-ext-installdocker-php-ext-enable来更容易地安装PHP扩展。

因此,php-gettext扩展安装似乎只能使用提供的脚本。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43341209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档