- 浏览: 167222 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (158)
- 每天工作日志 (64)
- php工作遇到技术难题记录 (4)
- linux成长记录 (17)
- web前端开发记录 (12)
- SQL成长记录 (16)
- joomla开发记录 (0)
- 开发工具使用记录 (1)
- vpn简单安装 (0)
- 直接查询字段结果进行以逗号分隔,不用在php代码中进行foreach循环处理 (1)
- phalcon项目搭建 (1)
- java项目实践 (5)
- share everythings (0)
- Mac工作记录 (3)
- 闲文杂谈 (6)
- 细说javascript面向对象 (0)
- 瞎几把扯 (2)
- Shell编程学习与分享 (0)
- GO语言开发 (5)
- angular2 (1)
- Go开发 (3)
- java开发 (15)
最新评论
-
弹指一世界:
感谢博主分享,但是我把项目下载下来放本地运行报了一个错误Exc ...
php phalcon项目实战 -
xialluyouyue:
...
php xmlrpc的简单实用
一、服务器环境
- Ubuntu 16.04.2 LTS x64
- PHP 7.0.21
二、服务器端软件安装
安装apache2
apt-get install apache2
安装php
apt-get install php7.0
apt-get install php7.0-dev
apt-get install libapache2-mod-php7.0
// Ubuntu 14.04, php5.6.32
apt-get install python-software-properties
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install -y php5.6
apt-get install php5.6-dev
三、添加到系统公共库
执行以下命令,将库文件添加到系统公共库中。
cp libmyclass1.so /usr/local/lib/ #拷贝到系统公共库
cp libmyclass2.so /usr/local/lib/
ldconfig #载入库
四、安装php扩展
下载php源码,使用源码包中的ext_skel工具创建扩展。
下载php源码
下载php当前版本对应的源码版本。使用以下命令查看当前php版本
php -v
我的版本是7.0.21,到php官网下载对应的tar.gz文件
wget http://php.net/distributions/php-7.0.21.tar.gz
解压并进入到ext目录
tar -zxvf php-7.0.21.tar.gz
cd php-7.0.21/ext
创建mythcrypt扩展
./ext_skel --extname=myclass1
更新config.m4文件,去掉第16和18行的dnl
cd mythcrypt
vim config.m4
16: PHP_ARG_ENABLE(myclass1, whether to enable mythcrypt support,
17: dnl Make sure that the comment is aligned:
18: [ --enable-myclass1 Enable myclass1 support])
更新myclass1.c
vim myclass1.c
// 添加函数声明
const zend_function_entry myclass1_functions[] = {
PHP_FE(confirm_myclass1_compiled, NULL) /* For testing, remove later. */
PHP_FE(my_function, NULL)
PHP_FE(my_request, NULL)
PHP_FE_END /* Must be the last line in mythcrypt_functions[] */
};
// 在PHP_FUNCTION(confirm_myclass1_compiled)函数定义下面添加如下代码。不同的版本添加的语法不一样,以下分别是5.3.10、5.6.31、7.0.21版本的示例。
// 5.3.10
PHP_FUNCTION(my_function)
{
char *ret;
ret=my_function();
RETURN_STRING(ret,0);
}
PHP_FUNCTION(my_request)
{
char *dataid;
char *ret;
.....;
}
// 5.6.31
PHP_FUNCTION(my_function)
{
char dataout[1024]={0};
my_function(dataout);
RETURN_STRING(dataout, 1);
}
PHP_FUNCTION(my_request)
{
int datalen;
char *dataid;
char dataout[1024]={0};
.....;
}
// 7.0.21
PHP_FUNCTION(my_function)
{
char dataout[1024]={0};
my_function(dataout);
RETURN_STRING(dataout);
}
PHP_FUNCTION(my_request)
{
char *dataid;
char dataout[1024]={0};
.....;
}
5.6.31 和 7.0.21版本中,函数my_function和my_request的返回字符串长度最大值是1024。
使用phpize命令生成configure文件
phpize
./configure
make LDFLAGS=-lmyclass1 # 载入libmycalss1.so并make
make test # 测试
make install # 将库安装到php的扩展文件夹里面
更新php配置文件,添加mythcrypt库
vim /etc/php/7.0/apache2/php.ini
extension=myclass1.so
# 重启apache
/etc/init.d/apache2 restart
五、编写测试脚本
测试脚本如下:
<?php
echo my_function();
echo my_request(1, '{"user_id":"test","crypto_service_id":1,"signature":"testasdfawef","data_in":{"sn":"A1000012312234234","hwid":"12312123234234234"}}');
- Ubuntu 16.04.2 LTS x64
- PHP 7.0.21
二、服务器端软件安装
安装apache2
apt-get install apache2
安装php
apt-get install php7.0
apt-get install php7.0-dev
apt-get install libapache2-mod-php7.0
// Ubuntu 14.04, php5.6.32
apt-get install python-software-properties
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install -y php5.6
apt-get install php5.6-dev
三、添加到系统公共库
执行以下命令,将库文件添加到系统公共库中。
cp libmyclass1.so /usr/local/lib/ #拷贝到系统公共库
cp libmyclass2.so /usr/local/lib/
ldconfig #载入库
四、安装php扩展
下载php源码,使用源码包中的ext_skel工具创建扩展。
下载php源码
下载php当前版本对应的源码版本。使用以下命令查看当前php版本
php -v
我的版本是7.0.21,到php官网下载对应的tar.gz文件
wget http://php.net/distributions/php-7.0.21.tar.gz
解压并进入到ext目录
tar -zxvf php-7.0.21.tar.gz
cd php-7.0.21/ext
创建mythcrypt扩展
./ext_skel --extname=myclass1
更新config.m4文件,去掉第16和18行的dnl
cd mythcrypt
vim config.m4
16: PHP_ARG_ENABLE(myclass1, whether to enable mythcrypt support,
17: dnl Make sure that the comment is aligned:
18: [ --enable-myclass1 Enable myclass1 support])
更新myclass1.c
vim myclass1.c
// 添加函数声明
const zend_function_entry myclass1_functions[] = {
PHP_FE(confirm_myclass1_compiled, NULL) /* For testing, remove later. */
PHP_FE(my_function, NULL)
PHP_FE(my_request, NULL)
PHP_FE_END /* Must be the last line in mythcrypt_functions[] */
};
// 在PHP_FUNCTION(confirm_myclass1_compiled)函数定义下面添加如下代码。不同的版本添加的语法不一样,以下分别是5.3.10、5.6.31、7.0.21版本的示例。
// 5.3.10
PHP_FUNCTION(my_function)
{
char *ret;
ret=my_function();
RETURN_STRING(ret,0);
}
PHP_FUNCTION(my_request)
{
char *dataid;
char *ret;
.....;
}
// 5.6.31
PHP_FUNCTION(my_function)
{
char dataout[1024]={0};
my_function(dataout);
RETURN_STRING(dataout, 1);
}
PHP_FUNCTION(my_request)
{
int datalen;
char *dataid;
char dataout[1024]={0};
.....;
}
// 7.0.21
PHP_FUNCTION(my_function)
{
char dataout[1024]={0};
my_function(dataout);
RETURN_STRING(dataout);
}
PHP_FUNCTION(my_request)
{
char *dataid;
char dataout[1024]={0};
.....;
}
5.6.31 和 7.0.21版本中,函数my_function和my_request的返回字符串长度最大值是1024。
使用phpize命令生成configure文件
phpize
./configure
make LDFLAGS=-lmyclass1 # 载入libmycalss1.so并make
make test # 测试
make install # 将库安装到php的扩展文件夹里面
更新php配置文件,添加mythcrypt库
vim /etc/php/7.0/apache2/php.ini
extension=myclass1.so
# 重启apache
/etc/init.d/apache2 restart
五、编写测试脚本
测试脚本如下:
<?php
echo my_function();
echo my_request(1, '{"user_id":"test","crypto_service_id":1,"signature":"testasdfawef","data_in":{"sn":"A1000012312234234","hwid":"12312123234234234"}}');
发表评论
-
shell脚本--sed的用法(转)
2019-12-06 10:50 310本文链接:https://blog.csdn.net/wdz3 ... -
linux下的find文件查找命令与grep文件内容查找命令
2019-08-09 15:27 366在使用linux时,经常需要进行文件查找。其中查找的命令主要 ... -
Javascript 面试核心考点(转)
2019-06-26 16:53 438Javascript 面试核心考点(转) 原文链接 ht ... -
Ubuntu下修改为永久DNS的方法
2019-05-20 11:14 559安装好Ubuntu之后设置了静态IP地址,再重启后就无法解析域 ... -
Java注解(Annotation)
2019-02-21 09:42 290一、认识注解 注解 ... -
Java Socket编程
2019-02-21 09:40 320Java最初是作为网络编程 ... -
MySQL中单句实现无限层次父子关系查询
2019-02-19 14:08 2353在 SQL Server 中,使用 CTE 表达式很容易做到无 ... -
Nginx中fastcgi_pass的配置问题
2018-12-26 16:19 1011Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP ... -
2t3ik与ddgs挖矿病毒处理
2018-06-01 14:43 930一、问题现象 朋友的阿里云LINUX服务器, 发现有2t3i ... -
PHP消息队列实现及应用
2018-06-01 13:53 523https://www.cnblogs.com/dump/p/ ... -
php rsa加密解密实例(转)
2018-06-01 11:23 407php服务端与客户端交互、提供开放api时,通常需要对敏感的部 ... -
远程管理项目部署(lamp)@Author:Tim Lu
2018-05-08 16:57 464远程管理项目部署(lamp)@Author:Tim Lu 切 ... -
PHP语言 fopen()函数不能打开文件的问题
2018-04-17 11:14 1071架了一个Apache服务器,文件目录为/var/www/,今天 ... -
linux的nohup命令的用法。
2018-01-04 15:33 418在应用Unix/Linux时,我们一般想让某个程序在后台运行, ... -
ubuntu12.04 启动apache2 对.htaccess 的支持(转)
2017-07-11 18:07 414将PHP工程从 lampp 拷贝到 apache2中之后 ... -
golang fmt格式“占位符”
2017-06-01 10:24 504golang 的fmt 包实现了格式化I/O函数,类似于C的 ... -
golang笔记——struct
2017-05-27 08:40 6681、定义一个结构体 type User struct ... -
给MySQL增加mysql-udf-http和mysql-udf-json自定义函数,让MySQL有调用http接口和查询直接回JSON的能力
2017-04-21 14:04 16841、安装mysql-udf-httpyum install ... -
PHP通过Http Post请求发送Json对象数据
2017-03-26 21:47 788public static function httpP ... -
关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用(转)
2017-02-08 14:33 787工作环境:window下 在一切的最开始,安装node.j ...
相关推荐
在Ubuntu下搭建WordPress博客环境是一项涉及多个步骤的技术过程,涵盖了Web服务器、数据库、脚本语言以及网站内容管理系统(CMS)的安装与配置。以下是对这一过程的详细解析,旨在帮助理解如何在Ubuntu系统中创建一...
在Ubuntu操作系统中安装Yaf(Yet Another Framework)框架是一个常见的任务,尤其对于...在Ubuntu上安装和使用Yaf需要对Linux系统、PHP扩展安装有一定了解,但只要遵循上述步骤,就能顺利地在你的开发环境中集成Yaf。
**在Ubuntu下安装配置WordPress详解** WordPress是一款基于PHP和MySQL的开源博客系统,因其功能强大、易于使用且扩展性极佳而备受青睐。在Ubuntu环境下搭建WordPress,不仅可以享受到Linux系统的高效资源管理、高...
在Linux(例如Ubuntu)系统上,你需要安装C语言的GCC编译器、Make构建工具以及Autoconf系统环境检测工具,可以通过运行以下命令来安装: ```bash sudo apt-get install gcc make autoconf ``` 接下来,使用PHP源码...
1. **PHP:**使用命令`sudo apt-get install php5-sqlite`安装PHP的SQLite扩展。 2. **Python:**使用命令`sudo apt-get install python-pysqlite2`安装Python的SQLite库。 3. **Ruby:**使用命令`sudo apt-get ...
在Ubuntu系统中,安装PHP的Yaf(Yet Another Framework)扩展是提升PHP应用程序性能的关键步骤。Yaf是由著名PHP开发者鸟哥(Laruence Yee)开发的一个C语言编写的高性能PHP框架,它提供了更好的性能和更接近底层的...
在 Ubuntu 上安装 phpMyAdmin phpMyAdmin 是一个基于 Web 的 MySQL 数据库管理工具,它提供了一个友好的图形用户界面,使用户可以轻松地管理 MySQL 数据库。在 Ubuntu 上安装 phpMyAdmin 非常简单,本文将指导您...
如果你遇到的是旧版本的Ubuntu,或者需要安装特定版本的软件,可能需要参考类似文章中的详细步骤,比如文章中提到的通过源码编译安装PHP、MySQL和相关扩展。但这种做法通常适用于有经验的系统管理员,因为编译安装...
在 https://pecl.php.net/package/mongo 下载 PHP的mongodb扩展的源码 复制代码 代码如下: $ wget -c https://pecl.php.net/get/mongo-1.6.9.tgz $ tar zxvf mongo-1.6.9.tgz $ cd mongo-1.6.9 $ phpize $ ./...
例如,在 Ubuntu 上可以使用 `sudo apt-get install libmysqlclient-dev libprotobuf-dev protobuf-compiler libprotobuf-c-dev libcurl4-openssl-dev libxml2-dev libssl-dev` 来安装必要的依赖。 2. **重新编译 ...
libsmbclient-php是一个PHP扩展,它使用Samba的libsmbclient库为PHP程序提供与Samba相关的功能。 入门 从PECL安装 pecl install smbclient 二进制软件包安装 一些发行版提供了二进制软件包: Fedora / RHEL / ...
以下是编译安装xcache for PHP 5.3在Ubuntu下的详细步骤: 首先,你需要确保你的系统已经安装了PHP 5.3.3。如果没有,可以通过apt-get或其它包管理工具进行安装。 1. 下载xcache的源代码包: ``` wget ...
推荐使用Ubuntu Linux,因为它的软件包管理工具(Apt)使得安装过程相对简单。首先,确保你已经熟悉Linux基础操作,然后按照以下步骤安装PHP开发环境: 1. 安装Apache服务器:`sudo apt-get install apache2` 2. 安装...
在 Ubuntu 环境下使用 Eclipse 需要安装相关的插件,例如 CDT(C/C++ Development Tooling),以便支持 C++ 语言的开发。Eclipse 的代码编辑器支持语法高亮、代码补全、代码重构等功能,提高了开发效率。 2. Anjuta...
本教程将指导你在Ubuntu 12.04系统上如何使用C语言为PHP 5.3.10版本创建自定义扩展模块。首先,确保你的系统已经安装了Apache和PHP。如果需要,可以通过`sudo apt-get install apache2 php5`命令进行安装。 1. 获取...
### Win 7下硬盘安装Ubuntu 10.10的方法详解 #### 核心知识点解析 在探索如何在Windows 7环境下通过硬盘安装Ubuntu 10.10以实现双系统共存的过程中,我们将深入讨论以下关键步骤和知识点: 1. **下载必要软件** ...
通过遵循以上步骤,您可以在Ubuntu 16.04上成功安装和配置Apache、MySQL和PHP,以及PHPmyadmin,从而构建一个完整的Web开发环境。在实践中,可能需要根据具体需求调整配置,例如添加更多的PHP扩展或优化服务器性能。...