Загрузка GTK2 в PHP не удалась - PullRequest
       12

Загрузка GTK2 в PHP не удалась

4 голосов
/ 30 декабря 2011

Я уже сделал следующее:

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 для загрузки библиотеки GTk в расширении lib PHP как extension=php_gtk2.so и сохранил ее.

Если я проверю с помощью php -m Я найду одну ошибку, такую ​​как Unable to Load Dynamic Library ../../php_gtk2.so Я предполагаю, что это может быть потому, что php_gtk2.so является статической библиотекой.

Тогда как мне его загрузить? Есть идеи, где я ошибся?

Я работаю на CentOS 6.0 Server, PHP 5.3.3, GTK 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]

Как сказал Хакре, я попытался загрузить 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 ]

1 голос
/ 01 января 2012

Итак, вы установили из SVN.Но что-то с скомпилированным двоичным файлом имеет проблему с поиском символа php_cairo_get_context_ce.

В вашем списке модулей показано, что у вас не установлено расширение cairo .

Установкаи загрузите его до php-gtk.

0 голосов
/ 21 декабря 2015

Я столкнулся с той же проблемой в Ubuntu. Что я сделал, чтобы исправить это было

  1. Изменено разрешение файлов php_gtk2.so , cairo.so в каталоге / usr / lib / php5 / 20121212 на 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

Обратите внимание на порядок, cairo.so должен быть первым. Ранее php_gtk2.so был первым, который вызвал ошибку, которую я считаю.

  1. Наконец-то удалось запустить демки из каталога php-gtk-src из терминала с помощью команды $ php demos/phpgtk2-demo.php

Надеюсь, это поможет:)

...