今天终于把C扩展加入到PHP中了,并且可以调用,废话就不说了,看下文。
一、必须先要安装Apache和mysql,这两个的安装过程我就不说了。
二、安装PHP
#mkdir /usr/local/php5
#./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/lib64/mysql --with-config-file-path=/usr/local/php5
#make
#make install
三、查看php是否安装成功
在apache的htdocs里建立一个文件名为:index.php
写入内容 <?phpinfo()?>
保存
浏览http://localhost/index.php
显示正确,安装成功。
四、创建自己的c php扩展
进入到php的安装包的ext目录下
#cd /usr/software/php5-3.2/ext
#./ext_skel --extname=mysqlc 注意:这里是创建里扩展库的名字,创建后,会在ext下有一个mysqlc的目录
#cd mysqlc
五、进行扩展库的基础修改和编码操作
#vi config.m4
原始
dnl PHP_ARG_ENABLE(mysqlc, whether to enable mysqlc support,
dnl Make sure that the comment is aligned:
dnl [ --enable-mysqlc Enable mysqlc support])
修改后的
PHP_ARG_ENABLE(mysqlc, whether to enable mysqlc support,
Make sure that the comment is aligned:
[ --enable-mysqlc Enable mysqlc support])
#vi mysqlc.c
在PHP_FUNCTION(confirm_mysqlc_compiled)函数下面追加
PHP_FUNCTION(mysqlc){
zend_printf("helloword c!!");
}
修改前
const zend_function_entry mysqlc_functions[] = {
PHP_FE(confirm_mysqlc_compiled, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in mysqlc_functions[] */
};
修改后
const zend_function_entry mysqlc_functions[] = {
PHP_FE(confirm_mysqlc_compiled, NULL) /* For testing, remove later. */
PHP_FE(mysqlc,NULL)
{NULL, NULL, NULL} /* Must be the last line in mysqlc_functions[] */
};
#vi php_mysqlc.h
在PHP_FUNCTION(confirm_mysqlc_compiled);下面追加
PHP_FUNCTION(mysqlc);
到这里,基本上你的扩展库就写完了,下面就要开始进行生成和安装了
五、生成扩展库
当前目录在/usr/software/php5-3.2/ext/mysqlc
#/usr/local/php5/bin/phpize
#./configure --with-php-config=/usr/local/php5/bin/php-config
#make
#make install
执行完毕后,将会在/usr/local/php5/lib/php/extensions/no-debug-non-zts-版本号/mysqlc.so文件
把mysqlc.so文件复制到apache下的modules去
四、进行配置php.ini
然后进入到/usr/local/php5看有没有php.ini,
如果没有,复制安装包里的php.ini-production改名为php.ini
进入php.ini设置
1、short_open_tag = On
2、extension_dir = "/usr/local/apache2/modules/"
3、追加一个extension=mysqlc.so
保存php.ini,重启apache
OK,扩展库可以使用了
相关推荐
使用C语言来扩展PHP,写PHP扩展dll
将c代码写成php的拓展库,实现php对c语言的调用
php调用c 的三种方式,php调用c-c++的一种方式
php调用c/c++有很多方式,最常用的是通过tcp或者http去调用,通过发送请求去调用c/c++编写的cgi/fastcgi来实现,另外php还有一种直接执行外部应用程序的方式,这种方式会影响到系统安全,容易被攻击者利用,所以使用的时候要谨慎处理好用户输入php执行外部二进制命令的函数有好几个,比如exec和passthru,并且passthru函数能执行命令并且可以返回外部命令的输出,所以本...
PHP中调用C/C++制作的动态链接库的教程
一般而言,php速度已经比较快,但是,对于一些较高级开发者而言,如果想要追求更快的速度,那毫无疑问可以通过自己写c代码,并编译为动态链接库(常为.so文件),然后php通过创建一个新的扩展(extension),并在扩展里调用该.so文件,同时对外暴露出php函数接口。 在实际使用中,只要调用该函数接口,即可使用底层更快速的c函数服务。 一、动态链接库(shared) 动态链接库的文件名后缀通常是 “.so”。在Windows系统中,其文件名后缀是”.dll”。 程序如果是和动态连接库进行链接(link),程序运行时需要能够找到相应的动态链接库文件。 使用动态链接库存编译的程序在运行时要求用户
php c 扩展,实现一个PHP的C扩展 [入门篇]
最近想尝试写PHP的C扩展,在《PHP7底层设计与源码实现》书中有一个PHP扩展的例子,这里动手实现了一下。准备LinuxPHP7PHP7源码包 点击下载预览Linux查看文本行数可以使用wc -l查看,现在需要将这一功能实现为PHP的自带功能。假如有这样一个文本,中间有空行,要分析该文本行数,有些时候需要让函数输出3,有些时候让函数输出7(包括空行),可以通过配置php.ini文件保存这一配置。...
Unity技能系统核心:从理论到实践构建可扩展的Buff管理器
本文深入探讨了Unity游戏开发中构建可扩展技能系统的核心——Buff管理器。通过剖析三层架构(数据、逻辑、渲染)与独立组件管理模式,提供了从Buff数据定义、管理器核心实现到可视化编辑器搭建的完整实践方案,旨在解决技能系统维护难题,提升开发效率与代码质量。
Linux yum源配置以及yum命令讲解
前面为大家介绍了RPM二进制包安装软件,RPM包安装的最大的缺点也提到过,就是依赖性太强,一旦遇到依赖问题,则需要我们手动解决包之间具有依赖性的问题,今天为大家介绍一种可自动解决包之间依赖关系的安装方式:yum。 yum 全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上我们通常可以通过各种软件管家实现软件的一键安装、升级和卸载,yum就是Linux 系统中的一键安装工具。yum 解决依赖关系的基本逻辑是:yu
PHP调用C语言实现接口方法
环境准备 环境: CentOS Linux release 7.3.1611 (Core) PHP 5.4.16 安装php、查看php版本 # yum install php php-devel # php -v so 动态库封装 [root@localhost hello]# cat hello.c #include <stdio.h> int hello_add (int a, int b) { return a+b; } 生成动态库: # gcc -fPI.
无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序
时差估计算法之精确时差估计(ETDE)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想
利用php调用C语言 扩展函数
<br />第一步. 生成需要调用的so文件<br />1. 首先做一个简单的so文件:<br />/** * hello.c <br />* To compile, use following commands:<br /> * gcc -O -c -fPIC -o hello.o hello.c<br /> * gcc -shared -o libhello.so hello.o <br />*/<br />int hello_add(int a, int b)<br />{<br />
MoveIt控制睿尔曼RM65机械臂:从仿真到实机的3种控制模式对比
本文详细解析了使用MoveIt框架控制睿尔曼RM65机械臂的三种核心模式:拖动规划、目标姿态规划和Python API控制,从Gazebo仿真到实机部署的完整实现路径。通过ROS环境配置、控制参数优化及实机过渡技术,为工业自动化和机器人研究提供实用指南。
不使用工具箱,通过MATLAB纯编程实现lstm网络的训练过程
长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。
php调用 c#、c++写的com组件
php调用com组件
基于 InceptionNeXt 模块增强的 YOLOv8 模型:针对多尺度目标检测的改进与实现
modules.py。
用PHP调用C扩展整个配置过程(辛苦呀)
今天终于把C扩展加入到PHP中了,并且可以调用,废话就不说了,看下文。一、必须先要安装Apache和mysql,这两个的安装过程我就不说了。二、安装PHP#mkdir /usr/local/php5#./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-my
Unity内存优化:从崩溃到流畅的终极指南
Emscripten 为 WebAssembly 设定的内存布局(Static、Stack 和 Heap)为开发者提供了一个清晰的内存管理框架。理解这些内存区域的特性和用途,有助于开发者在 WebGL 项目中更有效地管理内存,优化性能,减少内存使用峰值。在 Unity WebGL 中,Dynamic Memory 是 UnityHeap 的主要组成部分,负责存储游戏运行时所需的各种数据。Dynamic Memory 主要分为两类:Managed Memory 和 Native Memory。
从LLM到Agent:智能体核心范式与认知架构全景解读
摘要: Agent技术正成为AI领域的新焦点,其核心在于通过外部认知基础设施(如记忆、工具、协议等)将大语言模型(LLM)从“生成文本”升级为“执行任务”的智能体。2026年的研究显示,Agent能力提升的关键已从模型本身转向外部化架构,如Harness工程(执行框架)和认知解耦(如ORCA框架)。当前Agent框架生态呈现多元化竞争(如LangGraph、AutoGen、CrewAI),但可观测性与治理仍是薄弱环节。未来竞争壁垒将取决于外部基础设施的完善程度,而非单纯模型性能。
php 扩展开发的好处,关于PHP扩展开发(收藏)
一、Linux shell命令:ls –lh 查看文件大小du –a 查看文件及文件夹大小-------------------------- nginx ----------------------------------------------------1. 把nginx目录下所有文件拷贝到 ngi 目录下cp -R /etc/nginx/. /usr/share/nginx/h...
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
VS Code配置c/c++环境
目录 一句话总结 准备工作 下载visual studio code 安装MinGW-w64 什么是 MinGW? MinGW-w64与MinGW的区别 为什么使用MinGW-w64 注意: 下载、安装、配置MinGW-w64 验证 安装扩展(extension) 安装C/C++ 创建工作区,用于存放代码 配置C/C++ 配置编译器路径 创建生成任务 配置debug调试设置 安装Code Runner 配置Code Runner 配置把文件编译后存放到指定的文件夹下 官网参数说明 一句话总结 1. 去官网下
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
长沙php课程哪个好,长沙php培训中心哪个好(php代码如何调用)
长沙php培训中心哪个好,看着好多关于长沙php培训的内容,它带着php培训哪些好处,php怎么用,php代码如何调用,php代码如何加密,php为啥遭到它行鄙视,PHP的特点有哪些走来了。php培训哪些好处各行各业的岗位都演绎着很重要的角色,今天我们就来说一下关于PHP到底演绎着什么样的角色呢,在IT行业中PHP也是很重要的一部分,很多人觉得程序员这个工作枯燥、乏味。这可能就是:“外行看热闹,内...
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
PHP环境配置以及相关问题
为什么80%的码农都做不了架构师?>>> ...
dzsoft+php,php工具
PHP扩展加密工具XLoad可以帮助用户对PHP代码进行完美的加密处理,该工具采用多种代码保护方案不可还原,支持各种编码PHP文件脚本,拥有独家专利算法的用户专属引擎加密功能,彻底加密源代码,加密后的网站修改极其方便,只要打开软件即可加密。软件说明辛苦开发出来的PHP程序,如何来保证它的源码安全、知Swoole是纯C语言的并行网络通信引擎,有着可用性非常高的内置协程,用户可以使用完全同步的代码来实...
用Zend Encoder加密PHP文件和PHP 优化配置
在发布一个你写好的PHP程序时,你是不是担心自已辛苦写出来的成果会被别人占为已有呢?其实我们可以用Zend Encoder为我们的PHP文件加上一层保护壳。 软件版本:2.0.1软件大小:10.2M适用平台:Win9X/2000/XP官方网址:http://www.zend.com/store/products/zend-encoder.php软件的使...
Unity编辑器扩展
Unity,作为一款功能强大的游戏开发引擎,不仅提供了丰富的核心功能,还允许开发者通过编写编辑器扩展来进一步定制和优化开发流程。通过以上的解析和示例,你可以开始着手开发自己的Unity编辑器扩展,以优化你的游戏开发流程。首先,确保你的开发环境已经安装了Unity编辑器和相应的Unity编辑器脚本API。Unity编辑器API是开发编辑器扩展的核心。在Unity编辑器中,你可以通过创建一个新的C#脚本来开始你的扩展项目。为你的扩展提供清晰的文档和用户支持,这有助于其他开发者更好地理解和使用你的扩展。
PHP源码加密实战:小猫咪系统V1.41核心原理与部署指南
在软件开发和分发过程中,源码保护是保障知识产权和实现商业授权控制的关键环节。其核心原理是通过技术手段,将可读的源代码转换为难以直接逆向的形态,同时确保其在授权环境下能正常执行。这通常涉及加密算法、运行时环境校验和授权管理等多重技术。从技术价值看,有效的源码保护不仅能防止代码被非法复制和篡改,还能支撑按时间、域名或客户进行精细化授权的商业模式,尤其适用于商业PHP应用、插件和私有化部署场景。在PHP生态中,通过编写C语言扩展实现运行时加载与解密,结合AES等对称加密算法对opcode进行保护,是兼顾性能与安全
1162



被折叠的 条评论
为什么被折叠?



