已安装php-gettext但不可用

时间:2017-04-29 00:42:47

标签: php apache2 gettext php-gettext

我在Ubuntu 16.04上安装了以下软件包:

  • apache2 2.4.18-2ubuntu3.1
  • php-gettext 1.0.11-2build1
  • gettext 0.19.7-2ubuntu3
  • php7.0 7.0.15-0ubuntu0.16.04.4

当我调用phpinfo()时,只提到gettext是在模块作者部分(" GetText = Alex Plotnick"),所以我认为支持已经正确编译。

似乎gettext没有正确加载到PHP中,因为以下代码:

<?php

if ( false === function_exists('gettext') ) {
    echo "You do not have the gettext library installed with PHP.";
    exit(1);
}

确实打印&#34;您没有使用PHP安装gettext库。&#34;

除文档外,我安装的唯一php-gettext文件是:

/usr/share/php/php-gettext/gettext.inc
/usr/share/php/php-gettext/streams.php
/usr/share/php/php-gettext/gettext.php

我还没有触及任何php或apache配置(除了尝试并安装icingaweb2

任何人都可以看到我的问题是什么吗?

更新 更多调试......

me@phoenix:~$ ls /etc/php/7.0/apache2/conf.d/
10-mysqlnd.ini  20-dom.ini      20-intl.ini  20-mbstring.ini  20-pdo_mysql.ini  20-wddx.ini       20-xmlwriter.ini
15-xml.ini      20-imagick.ini  20-ldap.ini  20-mysqli.ini    20-simplexml.ini  20-xmlreader.ini  20-xsl.ini


me@phoenix:~$ sudo a2dismod php5
ERROR: Module php5 does not exist!


me@phoenix:~$ sudo find / -name gettext.so
/usr/lib/php/20151012/gettext.so
/usr/lib/x86_64-linux-gnu/perl5/5.22/auto/Locale/gettext/gettext.so

1 个答案:

答案 0 :(得分:1)

安装后应该可以开箱即用。你重启了Apache吗?在终端控制台上首先尝试sudo apache2ctl restartsudo service apache2 restart。如果两者都不适用于您的系统,请尝试sudo /etc/init.d/apache2 restart

检查是否确实存在包含该行的文件/etc/php/7.0/apache2/conf.d/20-gettext.ini(或系统上的类似路径)

extension=gettext.so

必须作为分号前缀,否则会被注释掉。某些安装也可能在基本的php配置文件/etc/php/php/7.0/php.ini中配置该行,但是debian派生的方式是使用conf.d文件夹中的额外文件。

您可以在命令行上启用PHP模块(例如gettext)

sudo phpenmod -v 7.0 gettext

如果这不起作用,请手动编辑配置。

最后如上所述重启Apache服务。

检查Apache是​​否在PHP页面中运行了预期的PHP版本7.0以及以下行

echo phpversion();

您可以在命令行上从多个已安装的PHP版本启用/禁用Apache2模块

sudo a2dismod php5
sudo a2enmod php7.0
sudo apache2ctl restart