使用Apache + knewcode,用传统C++构建Web网站

本文介绍了如何在Ubuntu环境下,利用Apache和knewcode模块来构建C++ Web网站和Web Service服务器端。首先,讲解了安装gcc、Code::Blocks、Apache和knewcode的步骤。接着,通过hello_world的例子展示了如何编写C++动态库并将其与knewcode结合。最后,探讨了如何构建Web Service服务器端,并提供了C#客户端的示例代码。knewcode使C++开发者能够利用传统C++开发Web程序,实现了页面与业务的分离。
摘要由CSDN通过智能技术生成

一、准备工作

1、编译器gcc

    Linux(建议Ubuntu 14.04 32位版)下,最新版本需下载源代码自行编译,地址如下,
    http://gcc.gnu.org/
    Windows下,可以直接下载编译版本Mingw,下载地址如下,
    http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/
    Ubuntu下,如不需要最新版本,可用如下命令安装,
    sudo apt-get install gcc g++

2、集成开发环境Code::Blocks

    跨平台的开发环境,Windows下和Linux下都可使用,方便调试,下载地址如下,
    http://www.codeblocks.org/downloads/26
    Ubuntu下,可用如下命令安装,
    sudo apt-get install codeblocks

3、网站平台Apache

    下载地址,http://www.apache.org/
    Ubuntu下,可用如下命令安装
    sudo apt-get install apache2

4、支持C++的Apache模块knewcode

    最新版本0.93a版,下载地址如下,
    http://download.csdn.net/detail/zogyzen/9260621
    (在debug目录下,附带了适用Windows的Apache2.2.25版)
    非常适用于最低配置的阿里云或腾讯云,预装32位的Ubuntu 14.04版的服务器。

二、构建Web网站

1、hello world的例子

(1)、页面hello_world.kc

代码如下,

<!-- interface语句 -->
<!--<%
    #interface<IHelloWorld>;
    #string HelloWorld(#string);
%>-->
<!-- load语句 -->
<!--<%
    #load $mod = "/bin/hello_world_cpp";
    #interface<IHelloWorld> CreateInf();
    #void FreeInf(#interface);
%>-->
<!-- 定义 -->
<!--<%
    #string $name = "tom";
    #interface $in = $mod.CreateInf();
%>-->

<html>
<head>
<title><% #print $name; %></title>
</head>

<body>

<!-- 输出 -->
<!--<% #print $in.HelloWorld($name); %>-->

</body>
支持传统C++开发及运行的跨平台的Web网站服务器端环境,建立在Apache平台上,knewcode0.93a版。 测试运行:(测试环境,Windows7) 1、将本目录拷贝到D盘根目录;(如果需要拷贝到其他目录,请自行修改Apache的配置文件“debug\httpd-2.2.25-win32\Apache22\conf\httpd.conf”) 2、运行“D:\knewcode0.93a\StartDebug.bat”启动Apache及knewcode运行环境; 3、在浏览器中,输入“http://127.0.0.1:8090/hello_world.kc”,测试“hello_world_cpp”例子; 4、在浏览器中,输入“http://127.0.0.1:8090/”,测试“exam_blog”例子; 5、“D:\knewcode0.93a\sample\src\webservice_client(c#)”是C#的Webservice客户端例子,可直接运行“webservice_client.exe”测试。 Linux下安装:(测试环境,Ubuntu14.04 32位版) 1、将本目录拷贝到“/home”目录下;(如果需要拷贝到其他目录,请自行修改“kc_apache_mod.conf”和“kc_apache_mod.load”文件) 2、使用超级管理员权限,运行“/home/knewcode0.93a/debug/linux_apache_setup/setup.sh”脚本,拷贝2个配置文件到Apache环境下; 3、修改Apache的相关配置文件,将“/home/knewcode0.93a/sample”目录设置为Apache的主页目录,并设置权限; 4、修改目录权限,设置“/home/knewcode0.93a”目录为可运行和可读写,“/home/knewcode0.93a/sample”目录的所有者改为“www-data”; 5、目前只在Ubuntu14.04 32位版下测试过,其他版本Linux请自行验证,并反馈问题给我,谢谢;目前只支持32位版的Linux。 系统目前尚处于测试阶段,如遇任何问题,请反馈到如下邮箱,谢谢! zogy@163.com ******************************************************************************************** 2015-11-11:knewcode0.93a版 1、增加print的简化关键字“p”; 2、增加“exec”关键字,用于执行自定义脚本; 3、字符串中增加用2个双引号表示1个双引号的转义字符; 4、增加变量定义的“--ref--”选项,用于定义同名外部变量的引用(如无对应的外部变量,则重新定义一个); 5、增加“delay”关键字,用于延迟脚本在特定的位置执行; 6、增加变量定义的“--static--”选项,防止重复定义的变量被覆盖; 7、修复了一些,在负载测试中,因高并发的进程或线程,引起的系统崩溃的bug; 8、修复了db_action和so_session应用中的一些内存泄漏等的bug。 2015-09-21:knewcode0.92a版 增加信号处理,降低因段错误,浮点错误,除0错误等异常,引起的系统崩溃。 2015-09-14:knewcode0.91a版 初始版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值