利用php调用so库文件中的代码

某个功能被编译到so文件中,那么如何通过php来调用它? 一个方法是写一个php模块(php extension),在php中调用该模块内的函数, 再通过该模块来调用so中的函数。下面做一个简单的例子,使用的操作系统是Fedora Core 6。   首先做一个简单的so文件: /** * hello.c * To compile, use following commands: * gcc -O -c -fPIC -o hello.o hello.c * gcc -shared -o libhello.so hello.o */ int hello_add(int a, int b) { return a + b; } 然后将它编译成.so文件并放到系统中:

PHP通过Thrift操作Hbase

HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据。官方网址是:http://hbase.apache.org 一 、HBase访问接口   1.  Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase数据 2.  HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用 3.  Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据 4.  REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制 5.  Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计 6.  Hive,当前Hive的Release版本尚没有加入对HBase的支持,但在下一个版本Hive 0.7.0中将会支持HBase,可以使用类似SQL语言来访问HBase 如果使用PHP操作Hbase,推荐使用Facebook开源出来的thrift,官网是:http://thrift.apache.org/ ,它是一个类似ice的中间件,用于不同系统语言间信息交换。

Linux下Hadoop集群安装详细步骤

1. 环境的需求(这里虚拟机下Centos6的安装就不说了)   Centos6 + hadoop-0.21.0.tar   2. 服务器的配置(我在这里均为2个CPU,2G内存,100硬盘)   在这里,服务器IP最好是固定的,也就是说,能相互之间用ping命令ping通的IP 建议在公司开发,因为公司有这个条件,我在这里配置了三台datanode,分别为 Datanode1,Datanode2,Datanode3(这些都是创建虚机的主机名) 服务器名称     IP地址(自己定) Namenode       192.168.16.1 Datanode1                            192.168.16.2 Datanode2                            192.168.16.3 Datanode3                            192.168.16.4 2.1 修改服务器IP的方法如下:   vi  /etc/sysconfig/network-scripts/ifcfg-eth0

php mysql语句文件备份

<?php //blackbap.org $mysql_servername = “localhost”; //数据库服务器 $mysql_username = “root”; //数据库登陆账户 $mysql_password = “123456”; //数据库登陆密码 $mysql_database = “db”; //数据库名称 $mysql_link = mysql_connect($mysql_servername, $mysql_username, $mysql_password); mysql_select_db($mysql_database); mysql_query(“SET NAMES utf8”); $mysql = “”; $q1 = mysql_query(“show tables”); while ($t = mysql_fetch_array($q1)) { $table = $t[0]; $q2 = mysql_query(“show create table `$table`”); $sql = mysql_fetch_array($q2); $mysql .= $sql[‘Create Table’] […]

轻松实现Apache,Tomcat集群和负载均衡

0, 环境说明  Apache  :apache_2.0.55     1 个 Tomcat:  apache-tomcat-5.5.17 (zip版) 2个 mod_jk:: mod_jk-apache-2.0.55.so  1个 第一部分:负载均衡 负载均衡,就是apache将客户请求均衡的分给tomcat1,tomcat2….去处理 1.安装apche,tomcat http://httpd.apache.org/ 下载Apache 2.0.55 http://tomcat.apache.org/download-55.cgi 下载tomcat5.5 zip版本(解压即可,绿色版) http://apache.justdn.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/ 下载mod_jk,注意和  apache版本匹配 按照jdk,我的路径为:E:ideapacheApache2 解压两份Tomcat, 路径分别为 E:idetomcat1,E:idetomcat2   下载mod_jk  

apache和tomcat的区别

Apache是一个web服务器环境程序,可以作为web服务器使用。不过只支持静态网页,如(asp,php,cgi,jsp)等动态网页的就显得无能为力。 引用 如果要在Apache环境下运行jsp 的话就需要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat,  为什么还要JDK呢?因为jsp需要连接数据库的话,就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要Apache+tomcat+JDK。不过作者认为:最好不要在JSP页面中有访问数据库的代码。JSP的功能只是负责显示。需要JDK的另一个原因是Tomcat是用JAVA语言实现的。 如果想让服务器也能处理动态页面,那么就需要Tomcat。Tomcat能对JSP、Servlet进行解析。 Apache+Tomcat整合的好处是: 引用 1)如果客户端请求的是静态页面,则只需要Apache服务器响应请求;如果客户端请求的是动态页面,则让Tomcat服务器响应请求 2)Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。Apache成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。 几乎所有的Linux发布都安装Apache作为默认配置。SuSE7.1甚至预安装有包括各种高级模块选项的Apache,如PHP3,mod_perl和LDAP等等。用户会惊奇地发现系统安装成功就会有一个功能强大的Web服务器可供选择。虽然安装Apache并不是非常简单,但是如果有具有新的特性或安全补丁的Apache发布,则下载源代码包并编译新的Apache是值得的。 Apache不但具有庞大的用户群基础,并且有丰富的配置使用文档。Apache提供服务器端对脚本技术的支持,比如Perl、PHP等,Apache结合使用Apache JServ可以实现对Java servlets及JSP的支持。Apache的很多模块实现安全方面的防护:如mod_auth提供对对服务器上数据进行适当的保护,而SSL模块则用来保护服务器和客户端之间的通信安全。 下面我们再介绍一下Tomcat服务器软件,Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。笔者建议大家使用Tomcat,而且Tomcat未来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。 作为WEB服务器扩展的Tomcat服务器有一些问题需要说明:

PHP操作MongoDB【NoSQL】

一、MongoDB简介 MongoDB (名称来自”humongous”) 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点: •面向文档存储(类JSON数据模式简单而强大) •动态查询 •全索引支持,扩展到内部对象和内嵌数组 •查询记录分析 •快速,就地更新 •高效存储二进制大对象 (比如照片和视频) •复制和故障切换支持 •Auto-Sharding自动分片支持云级扩展性 •MapReduce 支持复杂聚合 •商业支持,培训和咨询 二、安装MongoDB 安装MongoDB非常的简单,仅需下载压缩包解压运行命令即可,下载地址:http://www.mongodb.org/downloads, 本文为windows平台,MongoDB运行命令:>bin/mongod。提示:首先要创建存储数据的文件夹,MongoDB 默认存储数据目录为 /data/db/ (或者 c:datadb),当然你也可以修改成不同目录,只需要指定 –dbpath 参数,eg: >bin/mongod –dbpath=d:mgdatadb 三、安装MongoDB PHP扩展 根据自己的PHP版本下载PHP扩展:http://github.com/mongodb/mongo-php-driver/downloads,提示: 1、VC6适合Apache、VC9适合IIS; 2、Thread safe适合PHP以模块运行方式、Non-thread safe适合CGI运行方式。 修改php.ini,加入:extension=php_mongo.dll,重启Web服务器。

初识struts

标题:初识struts 关键字:JSP struts MVC Apache Tomcat 内容: struts是男是女,是雌是雄,是什么花花草草,是什么东东就不多说了。 近日尝试做一Hello Struts,记录下遇到的些许问题,权且备忘。 如另对初学者有些许帮助,则善莫大焉,聊作一慰。[:D] BTW:“初恋struts” means “初练struts”(咳咳~~ 笔误笔误~~ [:D]) 如下这些文字仅适合初恋者。如果是热恋或已婚者,那么就没有读下去的必要了。 一、Win2k + JDK1.4 + Apache Tomcat 4.1.27 + jakarta-struts-1.1 环境 本例新建struts项目应用的存放路径为:TOMCAT_HOME/webapps/ROOT/StrutsWeb 。 (TOMCAT_HOME是Apache Tomcat 4.1.27在服务器的安装路径,根据具体情况而有所不同,StrutsWeb即是一个struts项目应用的保存路径)