0

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

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

我打电话时唯一提到 gettextphpinfo()是在模块作者部分(“GetText = Alex Plotnick”),所以我认为支持已经正确编译。

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

<?php

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

确实打印“您没有使用 PHP 安装 gettext 库。”

除了文档,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
4

1 回答 1

2

它应该在安装后开箱即用。您是否重新启动了 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 版本 7.0,并在您的 PHP 页面中使用以下行

echo phpversion();

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

sudo a2dismod php5
sudo a2enmod php7.0
sudo apache2ctl restart
于 2017-05-02T04:09:56.673 回答