加载我构建的PHP模块失败,没有错误

时间:2019-04-03 06:29:56

标签: php module

我按照以下提示构建了hello_world php模块:https://zando.io/post/hello-world-php-7-extension/

我成功地在modules /

下建立了hello.so

但是当我尝试加载此hello.so时,它失败了。

(将extension=hello.so添加到php.ini并将.so文件放入extension_dir

var_dump(extension_loaded('hello'));
var_dump(hello_world());

输出:

bool(false)
Fatal error: Uncaught Error: Call to undefined function hello_world() in /var/www/app/test.php(2) : eval()'d code:1 Stack trace: #0 /var/www/app/test.php(2): eval() #1 {main} thrown in /var/www/app/test.php(2) : eval()'d code on line 1

但是当我尝试加载朋友的hello_world so文件时,它可以正常工作!

(相同的源代码,相同的构建过程...)

我真的不知道为什么...

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

因为我使用了错误的phpizephp-config版本。

phpinfo()显示PHPAPI20170718

但是我原来的phpize显示20180731

所以我重新安装了php7.2-dev

然后运行phpize7.2,然后运行./configure --with-php-config=/usr/bin/php-config7.2来配置设置。

它有效!