FastCPP -- C++ Web Development Environment

FastCPP -- C++ Web Development Environment
          Powered By Apache2

 Jsp,Asp,Asp.net,Php,Perl,Python,Ruby on Rails,FastCGI, and FastCPP.

 FastCPP是一个甚于Apache(现在只支持Apache2)的C++ Web开发环境,利用FastCPP可以快速的开发出高性能的Web应用,提供了Cookie,session还有动态开发以及混嵌HTML的功能。
 和其他Web开发语言的对比.
   优势:
       1).基于C++,拥有STL,Boost以及Loki等强大开发库的支持。
          FastCPP并不是一个新的脚本语言,只是一个支持混嵌HTML的C++伪代码,通过FastCPP的翻译功能,将FastCPP的代码翻译成c++的 源文件,并调用g++编译成动态链接库。所以,你可以直接使用你熟悉的C++语法,使用强大的STL以及直接使用系统调用,拥有比任何一个WEB开发语言 更强大的程序库 icon_wink.gif.
       2).可以提供高性能的WEB服务能力。
          FastCPP是基于Apache2的Module开发的,由FastCPP的伪文件编译成的动态链接库直接由进程直接使用,在性能上和写module是 一样的。理论上性能会远在jsp,php,perl以及fastcgi之上,因为jsp,php,perl是脚本引擎来执行,而FastCGI是通过 FastCGID来维护cgi,将cgi的运行结果通过管道来传给 apache2,所以尽管FastCGI可以使用C语言来增加语言本身的性能,但通过管道的传输也会成为FastCGI的瓶颈之一.
          FastCPP没有明显的性能瓶颈,因为FastCPP的最终的程序都是Apache2进程的一部分,不经过管道之类的传输数据,而是在进程内直接传递,所以比FastCGI有更多的优势。
       3).快速的开发过程。
          只要配置好Apache2,写好FastCPP的伪代码放在web目录下就可以直接访问,并得到结果,FastCPP第一次访问时需要编译,所以在速度上会很明显的慢,在第二次访问之后就不需要编译,已经和Apache2的主进程结合成一个进程。
          FastCPP支持HTML混嵌,可以像编辑HTML一样的编辑FastCPP的页面。而且提供了编译参数的设定,完成可以按照MVC的理念来开发程序,
       4).完整的功能支持.
          FastCPP支持cookie和session这两个强大的功能,你可以把你需要的变量存在session里,在两个不同的页面中共享。
    缺点:
        1).不支持其他的开发语言,只支持C++语言,默认的编译器是g++. ^^
        2).受到进程概念的影响。只支持Apache2的Single-Process Multi-Thread的Worker的单进程多线程的工作方式。
           因为FastCPP依赖的两个全局变量,pages 和 sessions分别是fastcpp的页面缓存和session管理器,如果使用 Multi-Process的话,一但Apache2根据负载情况fork出新的进程,两个进程间的pages和sessions就是两个不同的单元,对 sessions的唯一性的破坏是可想而知的,所以就只能选择Single-Process,不过很幸运的是,Worker是apache2推荐的高性能 的MPM。
           或许FastCPP在将来会提供一个功能更强,性能也比较优秀的MPM。
        3).暂时不支持FastCPP的集群,不过在以后的开发中,会加入这个功能。
        4).暂时不支持apache1.x,会支持的 icon_smile.gif
        5).暂时不支持除Linux之外的操作系统,也会支持的。
        6).现在FastCPP和Apache2是绑定在同一个进程的,所以如果page的内存访问错误会直接导致Apache2的崩溃, icon_sad.gif 这是挺严重的,风险也很大.所以在选择FastCPP,你要自己小心。不过,充分利用C++语言的强大功能,我想很容易避免这些问题的。

   如何获得和安装FastCPP?
   FastCPP在将来是支持跨平台的,只不过只支持Linux,所以现在,你只能用Linux来使用FastCPP.
   1.获得源码.
     FastCPP是遵守GPL的要求而发布的代码。
     apache2.你需要一份apache2的源码,你可以在httpd.apache.org中下载,我使用的httpd-2.0.54
     fastcpp.在http://dragon.linux-vs.org/~jinti/fastcpp-0.0.1.tar.gz 中获得。
   2.安装
     1).apache2的安装
        jinti@heaven:~$tar jxf httpd-2.0.54.tar.bz2
        jinti@heaven:~$cd httpd-2.0.54
        jinti@heaven:~/httpd-2.0.54$ ./configure --with-mpm=worker
        jinti@heaven:~/httpd-2.0.54$ make && make install
     2).fastcpp的安装
        jinti@heaven:~$tar jxf fastcpp-0.0.1.tar.gz
        jinti@heaven:~$cd fastcpp-0.0.1
        jinti@heaven:~/fastcpp-0.0.1$./configure && make && make install
        fastcpp安装之后你需要在httpd.conf加上
 LoadModule fastcpp_module modules/mod_fastcpp.so
 AddHandler fastcpp-script .fc
        这样,就可以调用扩展名为.fc的fastcpp脚本了.
   3.运行
        首先你要运行apache2.
        ./apachectl -DONE_PROCESS -k start
        #一定要加上-DONE_PROCESS 否则有可能会产生两个sessionmaps影像,这是错误的。
        在apache2/htdocs 下建一个hello.fc

jinti@heaven:~$ cat apache2/htdocs/hello.fc
       <%@inc   "-I/usr/include/"%>
<%@link  "-L/usr/lib/" %>
<%@comp  "-O2" %>
<%!
    #include <iostream>
    using namespace std;
    static int i = 0;
 %>
 <html>
 <head>
       <title>Thank you for choicing FastCPP</title>
        </head>
        <body>
 <%
  page<<"<B>Hello,FastCPP "<<i++<<"<BR></B>"<<endl;
  %>
        </body>
        </html>
       打开你的浏览器访问http://127.0.0.1/hello.fc就可以看到运行结果了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Centos7上安装mysql-connector-c++的步骤如下: 1. 首先,你需要下载mysql-connector-c++的安装包。你可以从MySQL官方网站上下载最新版本的mysql-connector-c++。 2. 下载完成后,解压安装包。你可以使用以下命令解压: ``` tar -zxvf mysql-connector-c++-<version>.tar.gz ``` 3. 进入解压后的目录: ``` cd mysql-connector-c++-<version> ``` 4. 接下来,你需要安装必要的依赖项。你可以使用以下命令安装: ``` sudo yum install mysql-connector-c++-devel ``` 5. 安装完成后,你可以开始编译和安装mysql-connector-c++。你可以使用以下命令: ``` ./configure make sudo make install ``` 6. 编译和安装完成后,你可以在你的代码中引入mysql-connector-c++的头文件,并使用相应的命名空间。例如: ``` #include <jdbc/mysql_connection.h> #include <jdbc/cppconn/driver.h> #include <jdbc/cppconn/exception.h> #include <jdbc/cppconn/resultset.h> #include <jdbc/cppconn/statement.h> #include <jdbc/cppconn/prepared_statement.h> ``` 7. 现在,你可以在你的代码中使用mysql-connector-c++来连接和操作MySQL数据库了。你可以参考mysql-connector-c++的官方文档和示例代码来学习如何使用它。 请注意,以上步骤仅适用于Centos7系统。如果你使用的是其他操作系统,请参考相应的文档来进行安装。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Centos7 安装测试MySQL Connector/C++](https://blog.csdn.net/xqs51163/article/details/123690731)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux CentOS 7 安装mysql的两种方式](https://blog.csdn.net/Escorts/article/details/118941623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值