lighttpd+fastcgi搭建一个server如何保存server的状态

需求:服务器端有许多静态文件,还有许多用c++编写的业务组件,需要对这些功能进行包装对外发布服务,server端需要保存客户端状态(类似session的功能)和一些server端的状态,并且server的功能可能会增强如添加web管理界面等等;

 

 

初步设想的解决方案是:用lighttpd+fastcgi来搭建服务器,fastcgi程序可以直接用c++来编写,这样可以直接调用c++编写的业务组件,但是比较麻烦的是server要添加状态维护的功能,因为fastcgi是多进程的实现,要共享状态的话就要进行进程间的通信,初步的想法是引入一个内存数据库,把状态的信息都放到这个里面,如果要添加web管理界面则用php来写,但是整体感觉这种方式实现起来不是很简便,尤其是用c++写的fastcgi程序的后期维护及升级。

 

还有一种想法是server用java写,用jni调用c++组件,状态管理就不用操心了,但是把c++组件改成jni也是一个不小的工作量,所以都比较麻烦

 

基本情况大概这样,希望能听听大家建议,多谢

 

 

另:lighttpd/Fastcgi方式可以用来部署RoR,不知道这种部署方式的fastcgi是怎么实现的,在server端是如何维护状态的,是否可以借鉴?因为我从来没有用过RoR,所以想问问大家

交叉编译 lighttpd 和 php_fpm 需要进行以下步骤: 1. 安装交叉编译工具链:根据目标平台选择合适的交叉编译工具链,例如 arm-linux-gnueabi-gcc 或者 aarch64-linux-gnu-gcc 等,并将其添加到 PATH 环境变量中。 2. 下载 lighttpd 和 php 源码:从官网下载 lighttpd 和 php 的源码包,例如 lighttpd-1.4.54.tar.gz 和 php-7.4.16.tar.gz。 3. 解压源码包:使用 tar 命令解压源码包,例如: ``` tar zxvf lighttpd-1.4.54.tar.gz tar zxvf php-7.4.16.tar.gz ``` 4. 进入 lighttpd 源码目录:进入解压后的 lighttpd 源码目录,例如: ``` cd lighttpd-1.4.54 ``` 5. 配置编译选项:使用交叉编译工具链配置编译选项,例如: ``` ./configure --host=arm-linux-gnueabi ``` 6. 编译 lighttpd:使用 make 命令编译 lighttpd,例如: ``` make ``` 7. 进入 php 源码目录:返回上级目录,进入解压后的 php 源码目录,例如: ``` cd ../php-7.4.16 ``` 8. 配置编译选项:使用交叉编译工具链配置编译选项,例如: ``` ./configure --host=arm-linux-gnueabi --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --disable-short-tags --disable-phpdbg ``` 其中,--with-pdo-mysql 和 --with-mysqli 用于支持 MySQL 数据库,--with-openssl 用于支持 SSL/TLS 加密,--enable-fpm 和 --with-fpm-user、--with-fpm-group 用于编译 php_fpm。 9. 编译 php_fpm:使用 make 命令编译 php_fpm,例如: ``` make ``` 10. 将编译完成的 lighttpd 和 php_fpm 拷贝到目标平台上。 以上就是交叉编译 lighttpd 和 php_fpm 的步骤,需要注意的是,编译选项需要根据实际情况进行调整,例如根据目标平台选择合适的交叉编译工具链、选择需要支持的模块等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值