看到这个项目,想学学 https://github.com/qinguoyi/TinyWebServer(旧版项目的readme:https://github.com/qinguoyi/TinyWebServer/tree/raw_version)
但是配环境搞了一天,才启动成功,所以记录一下
本人只有windows笔记本,不想用笨重的vmware来启动,那就用个docker吧
准备一个装好了mysql-server的docker容器
个人用的镜像,包含了比较多的东西,想的是减少开容器后的apt install过程
用nvidia/cuda完全是没必要的,这个项目又用不到cuda,也可以用其他的容器
之所以用dockerfile给镜像装好mysql-server,是因为我在实验的时候,在容器内执行apt-get install mysql-server 会报错说无法创建符号链接的问题,而用dockerfile提前把它装进镜像就不会有这个报错……
把以下代码(可以删掉一些,编译会快一点,否则apt-get install 会耗大概二十分钟吧)写入一个空文件夹的一个新建文件Dockerfile中
然后执行 docker build -t my-cuda-ubuntu:v0 .
启动容器
docker run --name mycuda -it --gpus=all -p 127.0.0.1:32123:12321 my-cuda-ubuntu:v0
把容器的12321端口,绑定的宿主机的32123端口。因此项目的server的端口就应该改为12321端口
进入docker容器,可以用vscode的docker扩展,右键附加到vscode
把项目文件夹复制到容器内
GitHub - qinguoyi/TinyWebServer: :fire: Linux下C++轻量级WebServer服务器
自己下载,然后拖到容器内
启动mysql服务
终端执行 service mysql start (这个容器没有sudo命令,没有sudo也可以执行)
// 刚刚学到了,可以在终端执行 mysql_secure_installation,来修改一些配置
查看mysql密码
终端输入 cat /etc/mysql/debian.cnf
修改项目配置
就是照着项目的readme修改对应值
- 重构版项目
-
main.cpp 修改 user, passwd, databasename
-
config.cpp 修改 PORT为12321
-
- 旧版项目
-
main.c 修改这里 connPool->init(...,修改用户名、密码、数据库名。具体看旧版项目的readme
-
http/http_conn.cpp 修改这里const char *doc_root = 具体看旧版项目的readme
-
进入mysql创建数据库和表,插入web服务的用户密码
照着readme执行。终端输入 mysql进入mysql的控制终端,然后进入以下内容
启动server
- 新版:
- https://blog.csdn.net/weixin_45084217/article/details/server
- 旧版
- https://blog.csdn.net/weixin_45084217/article/details/server 12321
浏览器进入该web服务
在宿主机的浏览器中,键入 localhost:32123 即可
此时也可以在启动了的项目里面找到log信息