刁旭东 2023-04-23 19:27 采纳率: 42.9%
浏览 37
已结题

php 编写扩展,感觉某个路径有问题

系统环境 centos 7
我需要编写一个php扩展,我只会c,运维那边用宝塔安装php 7.4.33(运维不想让我直接代码安装,说后面管理不方便),然后我在这台机器上下载了7.4.29的代码 .编译php的时候把安装路径指向了宝塔安装的php的路径(不知道是否生效),然后就是从网上搜的编写过程(动态编译,不是静态编译),编写完成后将so的名字添加到了php.ini, 在宝塔重启了php.
然后执行php -m命令中没有找到我的库的名字,但是我通过执行php -d extension=php_helloworld.so -r 'helloworld_php();'是成功的

请问我应该如何在宝塔安装的php中添加我的自定义库

  • 写回答

3条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2023-04-23 21:06
    关注

    如果您已经成功编写了自定义的 PHP 扩展,并且通过方式 php -d extension=php_helloworld.so -r 'helloworld_php();' 成功测试并运行,那么您需要确保宝塔所使用的 PHP 拥有您的扩展。这里提供一个可能的解决方案:

    1. 确认您的自定义扩展已经被编译成 .so 文件,例如 php_helloworld.so

    2. 找到宝塔使用的 PHP 的 php.ini 配置文件。一般来说,宝塔安装的 PHP 配置文件应该在 /www/server/php/<版本号>/etc/php.ini

    3. php.ini 的最后一行添加以下代码:

      [PHP]
      extension=/path/to/php_helloworld.so
      

      其中,/path/to 是您编译得到的 .so 文件所在的完整路径。请注意确保该路径拥有执行权限。

    4. 保存 php.ini 文件并重新启动 Apache 或者 PHP-FPM。

    5. 执行 php -m 命令验证您的自定义扩展是否已经被成功加载。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 赞助了问题酬金15元 4月23日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 对于这个问题的代码运行
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败