我已经做了以下事情:
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.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]
正如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
。但是现在,这个怎么样!!
答案 0 :(得分:1)
所以你从SVN安装了。但是编译后的二进制文件有一个问题就是找到符号php_cairo_get_context_ce
。
您的模块列表显示您没有安装cairo extension。
在 php-gtk之前安装并加载。
答案 1 :(得分:0)
我在ubuntu中遇到过同样的问题。我做了什么修复它是
更新了文件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 是导致我认为错误的第一个。
$ php demos/phpgtk2-demo.php
希望有所帮助:)