当前位置: 首页 > 工具软件 > CppCMS > 使用案例 >

在Docker容器中安装CppCMS

强阳曜
2023-12-01

CppCMS是一个基于C++语言的高性能web开发框架,旨在处理极高负荷的web应用。更多介绍可参考:http://cppcms.com/wikipp/en/page/main

在一个Docker基础镜像中编译CppCMS,踩了一点点小坑,记录下来,以备后来查阅。

下载cppcms源码,下载地址:https://sourceforge.net/projects/cppcms/files/latest/download

我用的版本是cppcms-1.2.1,源码包放在Linux服务器自己的目录下(比如/home/users/delia),不建议将安装包放在镜像中,会导致最终构建出来的镜像特别大,只需要保证编译安装后的库文件在容器中即可。

以交互模式运行一个基础镜像的容器,启动容器时将主机$HOME目录映射到容器$HOME目录,在容器中访问自己的目录,cd /home/users/delia。

1. 安装依赖项

apt-get install build-essential libpcre3-dev libicu-dev libgcrypt11-dev zlib1g-dev

这一步不能少,不然后面cmake时会出现各种依赖缺失的报错。

2. 安装cppcms

解压源码包:

tar zjvf cppcms-1.2.1.tar.bz2

编译,依次执行:

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

注意,以上安装目录/usr/local是容器目录,安装后,只在容器环境中存在cppcms,而宿主机如果没有安装的话,是没有cppcms库的。

在执行以上cmake命令时,出现报错:Can't build without Python interpreter

在命令行执行python命令,提示找不到命令。不死心,输入python3,这个存在,版本号是python3.6.9。推断是python命令没有链接到python3.6.9,而是默认链接的python2.7。试了两种解决方法,都奏效:

(1) 重新安装python,apt-get install python,这次默认安装的是python2.7,安装完成后再次执行python,OK;

(2) 断开python到python2.7的软链接,重新链接到python3.6.9,也OK。

sudo rm /usr/bin/python

sudo ln -s /usr/bin/python3.6 /usr/bin/python

解决以上python问题后,再次执行cmake命令,通过。

接下来 make & make install,完成编译。

 类似资料: