博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于php编写64位扩展的问题
阅读量:4694 次
发布时间:2019-06-09

本文共 848 字,大约阅读时间需要 2 分钟。

1、原本是在32位的桌面系统上编写了一个php的扩展,已经在本地调试好,可以正常使用了。

2、发布到服务器以后,扩展始终没有加载起来,通过phpinfo查看没有加载,服务器是ubuntu 14.04 64位版本

3、将php.ini中的中的错误显示项打开

    display_startup_errors = On

   error_log = /etc/php_errors.log

   以上设置可以显示php启动时的错误信息,例如扩展模块没有加载成功之类的。

4、停止再启动php5-fpm

    命令:stop php5-fpm

    命令:start php5-fpm

5、可以看到php_errors.log文件中有如下类似的错误信息

   wrong ELF class: ELFCLASS32 in Unknown on line 0

   说明是因为编写的扩展是32位,系统是64位的,所以加载出错了

6、下载php源码版本,然后把扩展编译一遍

     命令:wget http://cn2.php.net/distributions/php-5.6.5.tar.gz

     命令:tar zxvf php-5.6.5.tar.gz

     命令:cd php-5.6.5/ext

 

7、重新按照php扩展的方法,创建一个扩展,具体参见网上其它资料

8、将原来扩展的代码复制替换过去

9、执行编译

     命令:phpize,如果提示命令不存在,请使用命令安装:apt-get install php5-dev

     命令:./configure

     命令:make

     如果没有错误,就会在modules文件夹下生成一个so的文件,这个也就是扩展的模块。

10、再次停止和启动php5-fpm

     已经可以显示扩展成功加载成功了。

 

以上日记记录下来,方便以后找问题。主要的经验就是如何找错,如果扩展没有加载成功,可以通过上面开启日志的方法来找错,从而快速解决问题。

 

转载于:https://www.cnblogs.com/icycity/p/4253586.html

你可能感兴趣的文章
win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)
查看>>
学习英语的方法
查看>>
解决IIS 不能下载.exe.config文件的方法
查看>>
第一章 编译预处理
查看>>
atitit.RandomAccessFile rws rwd 的区别于联系
查看>>
Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php
查看>>
Atitit 自动化gui 与 发帖机 技术
查看>>
查询每个分组中第N的一条记录
查看>>
!! jquery主要资料
查看>>
BS模式实现SignalR技术开发
查看>>
关于VS下的应用程序出现0xc000007b的问题以及OpenCV相关的0xc000007b问题
查看>>
2013 年最不可思议的 10 个硬件开源项目
查看>>
python 新式类和经典类(了解)
查看>>
POJ3617 Best Cow Line 馋
查看>>
数学思想方法-分布式计算-linux/unix技术基础(5)
查看>>
Path相关评论的方法(一)
查看>>
设计模式(一)工厂模式Factory(创建类型)
查看>>
谋哥:研究App排行榜浮出的神器
查看>>
二叉树非递归遍历方法总结
查看>>
windows下搭建Nexus3私服和基于IDEA15的Maven学习笔记
查看>>