linux 下采用 CMake 方式开发php扩展(二)

接着上一步的工作~

四. 编译工程

4.1 cmake搭建工程

  $ cd /home/lw/桌面/phpmf
  $ mkdir Release
  $ cd Release
  $ cmake -D CMAKE_BUILD_TYPE=release -D php_path=/home/lw/桌面/php/php-7.0.20/main ..   //注意php_path要根据自己php源码位置而定

configure成功,进入下一步 ;

4.2 编译

  $ make 
  $ cd ../bin
  $ ls

这里写图片描述
可以在bin目录下 ,看到: mfTestlibmf.solibphp_mf.so 三个文件, 第一个是命令行测试程序,第二个是算法核心接口动态链接库,位置最好不要动,第三个libphp_mf.so就是要加到php的扩展动态库目录下的文件。

4.3 拷贝php扩展

$ sudo cp libphp_mf.so /usr/local/php-7.0.20/lib/php/extensions/no-debug-zts-20151012/

4.4 修改php.ini

注意php扩展目录下(/usr/local/php-7.0.20/etc/)一开始是没有php.ini文件的,我们需要从php源码目录中(/home/lw/桌面/php/php-7.0.20/php.ini-development) copy一份过去并重命名,然后编辑它。

  $ cd /usr/local/php-7.0.20/etc/
  $ sudo cp /home/lw/桌面/php/php-7.0.20/php.ini-development ./
  $ sudo cp php.ini-development php.ini
  $ sudo gedit php.ini

修改内容如下:

 extension_dir = "/usr/local/php-7.0.20/lib/php/extensions/no-debug-zts-20151012"

并在有很多 extension=xxx.dll 的地方添加(注意要去掉注释标记 —分号):

 extension=libphp_mf.so

至此全部配置完成!

五.测试

/var/www/html目录下新建 mftest.php

  $ gksudo gedit /var/www/html/mftest.php

内容如下:

  <?php
          $result = mf_my_train("/home/lw/openSource/real_matrix.tr.txt","/var/www/html/model.txt");
          echo $result;
  ?>

重启apache2
$ sudo service apache2 start
调用mftest.php
浏览器地址栏输:http://localhost/mftest.phphttp://127.0.1.1/mftest.php

浏览器端打印: 1
如果调用成功应该返回 0 并且显示 train successfully
分析函数输出,为1说明读取本地路径失败,考虑apache2 的权限问题,为 /var/www/html 加入到apache2 的默认用户组www-data下;
$ sudo chown -R www-data:www-data /var/www/html
再次重启apache2
$ sudo service apache2 start
调用mftest.php浏览器显示:
这里写图片描述

好啦~以上就是采用cmake方式开发php扩展的全部内容~~
后续还会添加关于推荐系统中大火的pmf方法以及更多关于libmf的内容~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值