在PHP中加载GTK2失败

时间:2011-12-30 09:08:05

标签: php gtk2

我已经做了以下事情:

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 ServerPHP 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]

EDIT2:

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

2 个答案:

答案 0 :(得分:1)

所以你从SVN安装了。但是编译后的二进制文件有一个问题就是找到符号php_cairo_get_context_ce

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

在 php-gtk之前安装并加载

答案 1 :(得分:0)

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

  1. 将目录 / usr / lib / php5 / 20121212 php_gtk2.so cairo.so 的权限更改为<强> 644 。早些时候 777 。对于我不了解的其他系统,路径中的最后一个数字可能会有所不同。
  2. 更新了文件sudo gedit /etc/php5/cli/php.ini在名为动态扩展程序

    的部分中添加了这两个模块的条目

    <强> extension= /usr/lib/php5/20121212/cairo.so extension= /usr/lib/php5/20121212/php_gtk2.so

  3. 请注意, cairo.so 必须是第一个。早些时候 php_gtk2.so 是导致我认为错误的第一个。

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

      希望有所帮助:)