标签: php-extension

创建静态库

我正在尝试创建一个静态库,以便在我的PHP扩展中使用.为此,我正在.c使用gcc -c file.c -o file.o和获取.o文件来编译我的文件.然后我用ar rcs lib.a *.o它将所有编译的对象存档到一个.a文件中.

执行此操作后,我.a在编译我的PHP扩展时引用此文件,但是我收到以下错误:

*** Warning: Linking the shared library <extension>.la against the
*** static library lib.a is not portable!
Run Code Online (Sandbox Code Playgroud)

如果我使用.o文件而不是.a文件,我得到:

*** Warning: Linking the shared library <extension>.la against the non-libtool
*** objects  file1.o file2.o is not portable!
Run Code Online (Sandbox Code Playgroud)

我做错了什么,这样做的正确方法是什么?

c gcc static-libraries php-extension static-linking

4
推荐指数
1
解决办法
2353
查看次数

如何在Windows操作系统上安装gearman php扩展?

请有人帮我在windows xp上安装gearman php扩展.我在我的系统上安装了xampp 1.7.7,我在我的系统上安装了Cygwin,libevent-1.4.14b-stable和gearmand.请让我知道安装gearman-1.0.2 php扩展所需的更多内容.当我在cygwin终端上运行gearman-1.0.2时发现命令未找到错误.

php windows operating-system gearman php-extension

4
推荐指数
1
解决办法
5511
查看次数

phpize 的 config.m4 在 PHP_NEW_EXTENSION 中包含多个源文件,会生成一个不执行任何操作的 Makefile

我正在尝试编写 PHP 的 C 扩展。这是我的config.m4。几乎直接从 helloworld 中出来

PHP_ARG_ENABLE(my_ext, whether to enable my_ext support,
[ --enable-my-ext   Enable My Ext support])

if test "$PHP_MY_EXT" = "yes"; then
  AC_DEFINE(HAVE_MY_EXT, 1, [Whether you have my ext])
  PHP_NEW_EXTENSION(my_ext, my_ext.c,  $ext_shared)
fi
Run Code Online (Sandbox Code Playgroud)

当我运行 phpize 和 ./configure 时,它​​会生成一个可以工作的 Makefile。 到目前为止看起来不错。

现在,如果我向 PHP_NEW_EXTENSION 添加额外的源文件,事情就会崩溃。根据此处此处,调用应如下所示:

PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
Run Code Online (Sandbox Code Playgroud)

完整语法:

PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]])
Run Code Online (Sandbox Code Playgroud)

好的,所以我将额外的源文件 (logging.c) 添加到该列表中:

PHP_NEW_EXTENSION(my_ext, my_ext.c, logging.c  $ext_shared)
Run Code Online (Sandbox Code Playgroud)

和 phpize/configure生成一个成功运行的 Makefile,但实际上并没有构建任何东西。 (是的,我已经做了 make distclean、phpize --clean 等) …

php c autoconf makefile php-extension

4
推荐指数
1
解决办法
986
查看次数

在Bluemix中激活PHP扩展

这是一个纯粹的Bluemix问题!

我已经在本地主机上顺利运行代码但是当我将它迁移到Bluemix时,我的数据库连接失败了.检查日志我发现问题"调用未定义的函数mysqli_init()"HTTP响应500.我发现该扩展已被禁用以使其变小并找到一些有关它的详细信息:Buildpack选项.

不幸的是我尝试过但失败了.也许我误解了解决方案.

截图

任何帮助将不胜感激.

编辑:

bgconfig - > bp-config解决了"未定义的函数错误"

似乎已经添加了一些扩展,但并非全部."致命错误:在第15行的/home/vcap/app/htdocs/db_config.php中找不到类'PDO'"

但是我在options.json中添加了PDO扩展.

我尝试添加一个php.ini覆盖 截图

但仍然得到同样的错误......

有关信息:db_config.php上的第15行只是:

$db = new PDO('mysql:host=us-cdbr-iron-east-02.cleardb.net;dbname=ad_dae231843a962ca', $username, $password);}
Run Code Online (Sandbox Code Playgroud)

在尝试和捕捉当然.

任何线索?

php mysql mysqli php-extension ibm-cloud

4
推荐指数
1
解决办法
1676
查看次数

在 mac 上的 xampp 上安装 xDebug:phpize 不起作用

我在操作系统 10.11 上使用 xampp5.6.15。我按照此说明安装 xDebug。我的“定制安装说明”如下: 在此输入图像描述

在这个指令中,它没有提到将下载的 tgz 文件放在哪里,所以我只是将其保留在文件夹中downloads,运行后phpize,输出如下:

grep: /usr/include/php/main/php.h: 没有这样的文件或目录 grep: /usr/include/php/Zend/zend_modules.h: 没有这样的文件或目录 grep: /usr/include/php/Zend /zend_extensions.h:没有这样的文件或目录 配置:PHP Api 版本:
Zend 模块 Api 编号:
Zend 扩展 Api 编号:
找不到 autoconf。请检查您的 autoconf 安装和 $PHP_AUTOCONF 环境变量。然后,重新运行此脚本。

我想这是因为 xdebug 文件夹不在正确的位置,我尝试将其移动到xamppfiles/xamppfiles/modules/以及其他一些地方,但没有任何效果。

那么有什么问题吗?我应该将文件夹放在哪里?

php xdebug php-extension phpize

4
推荐指数
1
解决办法
5603
查看次数

在 PHP 5.6.12 中启用 DOTNET COM 扩展

在 PHP 项目中,我需要使用DOTNET COM 库,但我看到它被禁用。
我不知道如何启用它,所以我尝试取消注释php.ini文件中 [com] 部分下的以下几行:

com.typelib_file = php_com_dotnet.dll 
com.allow_dcom = true
pextension=php_com_dotnet.dll 
com.autoregister_typelib = true
com.autoregister_casesensitive = false
com.autoregister_verbose = true
com.code_page=
Run Code Online (Sandbox Code Playgroud)

我仍然收到错误说Class 'COM' not found
关于该怎么做的任何建议?
谢谢。

.net php com php-extension

4
推荐指数
1
解决办法
2万
查看次数

什么是zend扩展?

如果你看一下这个文档,第一个参数只返回Zend扩展.与PHP("简单")扩展相比,什么是Zend扩展?

php php-extension php-internals

4
推荐指数
1
解决办法
3329
查看次数

PHP模块已加载警告

刚刚注意到,在CLI上执行时,PHP会引发警告:

php模块已经加载

$ php -v
PHP Warning:  Module 'PDO' already loaded in Unknown on line 0
PHP Warning:  Module 'calendar' already loaded in Unknown on line 0
PHP Warning:  Module 'ctype' already loaded in Unknown on line 0
PHP Warning:  Module 'exif' already loaded in Unknown on line 0
PHP Warning:  Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning:  Module 'ftp' already loaded in Unknown on line 0
PHP Warning:  Module 'gettext' already loaded in Unknown on …
Run Code Online (Sandbox Code Playgroud)

php configuration-files php-extension

4
推荐指数
2
解决办法
2万
查看次数

如何在Windows上安装PHP 7扩展"memcache"

我在安装php的memcached扩展时遇到了很大的问题.

目前使用:

操作系统:Windows 10 x64
PHP:7.0.1通过XAMPP
Apache:2.4.18(Win32)

我已经成功安装了memcached,C:/memcached正在运行该服务.

但是当尝试添加memcache php扩展时,问题就出现了.我尝试了很多版本,php_memcache.dll而且似乎没有工作.
我确实在php.ini中包含了扩展名 extension=php_memcache.dll

当我运行php -mmemcache没有列出,并在顶部我收到错误:

PHP启动:无法加载动态库'C:\ xampp\php\ext\php_memcache.dll'
- 找不到指定的模块.

当我尝试运行test.php进行内存缓存初始化时,我会重新启动 Class not found exception

这是一个很大的问题,因为我需要它来运行硒测试.

php windows memcached php-extension php-7

4
推荐指数
1
解决办法
1万
查看次数

未找到Symfony ZipArchive PHP扩展类

我试过这段代码

var_dump(class_exists('ZipArchive'));
$zip = new ZipArchive();
Run Code Online (Sandbox Code Playgroud)

好吧,输出是这样的.

bool(true)
Fatal error: Class 'MyProject\ProjectBundle\Controller\ZipArchive' not found in \path\to\my\Controller.php on line 83
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题?我安装了

php-pear
php5-dev
libcurl3-openssl-dev
libevent-dev
pecl-http
all i need have been installed
and i have put the extension to my php.ini then restart my apache
Run Code Online (Sandbox Code Playgroud)

但我仍然得到那个错误.然后我尝试了这个

$z = new /ZipArchive();
Run Code Online (Sandbox Code Playgroud)

从这个页面

然后我收到了这个错误:

Parse error: syntax error, unexpected '/' in /path/to/my/symfonyController.php on line 83
Run Code Online (Sandbox Code Playgroud)

php php-extension ziparchive symfony

3
推荐指数
1
解决办法
6361
查看次数