4

我已经做了以下事情:

Installed PHP 5.3.3

Installed GTK 2.0.1

Installed the latest version of php-gtk from svn

All dependencies are resolved and installed.

我编辑php.ini以在 PHP 的扩展库中加载 GTk 库,extension=php_gtk2.so并保存它。

如果我检查php -m我会发现一个错误,就像Unable to Load Dynamic Library ../../php_gtk2.so我假设它可能是因为它php_gtk2.so是一个静态库。

那我怎么加载它。?知道我在哪里犯错了吗?

我在跑CentOS 6.0 Server,,,PHP 5.3.3GTK 2.0.1

edit:

确切的问题如下:

    [root@srv-vg phpapps]# php -m
    PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/modules/php_gtk2.so' - 
/usr/lib/php/modules/php_gtk2.so: 
undefined symbol: php_cairo_get_context_ce in Unknown on line 0
    [PHP Modules]
    apc
    bz2
    calendar
    Core
    ctype
    curl
    date
    dom
    ereg
    exif
    fileinfo
    filter
    ftp
    gd
    gettext
    gmp
    hash
    iconv
    json
    ldap
    libxml
    memcache
    mysql
    mysqli
    odbc
    openssl
    pcntl
    pcre
    PDO
    pdo_mysql
    PDO_ODBC
    pdo_pgsql
    pdo_sqlite
    pgsql
    Phar
    readline
    Reflection
    session
    shmop
    SimpleXML
    soap
    sockets
    SPL
    sqlite3
    standard
    tokenizer
    wddx
    xml
    xmlreader
    xmlrpc
    xmlwriter
    xsl
    zip
    zlib

    [Zend Modules]

正如 hakre 所说,我尝试cairo extension通过添加cairo.ini文件来加载。但现在它也显示出一些像这样的错误

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/cairo.so' - /usr/lib/php/modules/cairo.so: undefined symbol: cairo_ce_cairosubsurface in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/php_gtk2.so' - /usr/lib/php/modules/php_gtk2.so: undefined symbol: php_cairo_get_context_ce in Unknown on line 0
[PHP Modules]

编辑2:

当我安装cairo时,有一个错误,cairo_surface.c我清除了它,因为论坛中有人告诉我该怎么做。我可以cairo成功安装。但是现在,这又如何!!

4

2 回答 2

1

所以你是从 SVN 安装的。但是编译后的二进制文件有问题,无法找到符号php_cairo_get_context_ce

您的模块列表显示您没有安装cairo 扩展

在php-gtk之前安装并加载它。

于 2011-12-31T23:10:38.620 回答
0

我在ubuntu中遇到过同样的问题。我所做的修复它是

  1. 将目录/usr/lib/php5/20121212中的php_gtk2.socairo.so文件的权限更改为644。早些时候它是777。对于我不知道的其他系统,路径中的最后一个数字可能不同。
  2. 更新了文件在名为Dynamic Extensionssudo gedit /etc/php5/cli/php.ini的部分中添加了这两个模块的条目

    extension= /usr/lib/php5/20121212/cairo.so extension= /usr/lib/php5/20121212/php_gtk2.so

请注意顺序,cairo.so必须是第一个。较早的php_gtk2.so是第一个导致我相信的错误的。

  1. 最后设法从终端使用命令从目录php-gtk-src运行演示$ php demos/phpgtk2-demo.php

希望能帮助到你 :)

于 2015-12-21T17:07:07.793 回答