【问题标题】:Add .so as php extension添加 .so 作为 php 扩展名
【发布时间】:2016-05-28 06:12:26
【问题描述】:

我有一个使用 SWIG 生成的 .so 文件。我想使用那里定义的函数作为 php 扩展。 如何将它们添加为 php 扩展?

我将.so添加到扩展目录,并在php.ini中添加了一行:“extension=example.so”,然后重新启动了apache。

当我运行:php -d "extension=example.so" -m 时,它不会显示为扩展,并说: "Unable to load dynamic library '/usr/lib/php5/...../example.so. cannot open shared object file: Permission denied in Unknown on line 0"

然而,权限是 777

权限

PHP .so 文件夹

php.ini 文件

检查扩展 [

扩展名“example.so”不存在。

【问题讨论】:

  • 您的 extension_dir 是否正确?是命令行php使用正确的php.ini吗?
  • 1.它在正确的目录中。 2. 我在/cli/php.ini 中添加了扩展。我刚刚注意到,php -d "extension=xxxxx.so,说:无法加载动态库'/usr/lib/php5/...../xxxxx.so。无法打开共享对象文件:Permissino denied in Unknown on第 0 行
  • 修改你的.so的权限然后:)chmod 755 {so}
  • 它所在的目录呢?
  • @也设置为777。我添加了图片以显示事态

标签: php dll swig php-extension shared-objects


【解决方案1】:

通过将.so的完整路径添加到php.ini中解决

extension=/full/path/to/so/example.so

因此,无需将 .so 添加到 php 扩展文件夹。 .so 可以驻留在任何目录中。

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2015-09-08
    • 2021-07-19
    • 2021-04-07
    相关资源
    最近更新 更多