# MyTinyWebServer **Repository Path**: Vikyanite/my-tiny-web-server ## Basic Information - **Project Name**: MyTinyWebServer - **Description**: toy级的webserver,只是用来理解webserver的工作原理以及编写一个服务器所采用的各种技术,echoServer follow CSAPP, WebServer follow https://github.com/qinguoyi/TinyWebServer - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-02-21 - **Last Updated**: 2023-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 Toy级的webserver,只是用来理解Webserver的工作原理以及编写一个服务器所采用的各种技术 echoServer参考《CSAPP》 WebServer参考https://github.com/qinguoyi/TinyWebServer 的raw version # 运行 服务器代码中用到了许多Linux特有的库与函数,所以**只能在Linux**上运行哦(WSL也应该可以) 测试前确认已安装MySQL与MySQL Adaptor ```sql # 建立yourdb库 create database yourdb; # 创建user表 USE yourdb; CREATE TABLE user( username char(50) NULL, passwd char(50) NULL )ENGINE=InnoDB; # 添加数据 INSERT INTO user(username, passwd) VALUES('vic', '123456'); ``` 修改`main.cpp`中的数据库初始化信息 ``` //数据库登录名,密码,库名 string user = "root"; string passwd = "root"; string databasename = "yourdb"; ``` 启动时需要带上Port,因为我是用**Clion**运行的,所以在`Run/Debug Configuration`里面设置就好啦(在此狠狠推荐JB家的所有IDE,JB天下第一!!!) 之后在本地的浏览器里输入`localhost:yourport`就可以访问了~ # 一些问题 ### 运行提示: weserver ip_address port 发现是因为忘记加启动的端口参数了,在Clion的Run Configuration里设置一下就好了 ### mysql_real_connect()函数的时候,返回值一直是NULL > https://blog.csdn.net/weixin_45003868/article/details/123264658 修改配置文件,在配置文件中添加 skip-grant-tables ```bash sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf #在配置文件最后一行添加: skip-grant-tables ``` ### 服务器老是返回NO_RESOURCE 最后发现是因为一个常量`doc_root`没设置好, ```cpp //当浏览器出现连接重置时,可能是网站根目录出错或http响应格式出错或者访问的文件中内容完全为空 const char *doc_root = "/home/qgy/github/TinyWebServer/root"; // --->这里应改成你项目地址 //因为我是Clion跑Cmake,所以要变成下面这样 const char *doc_root = "../my-tiny-server/root"; ``` # 联系 个人博客:https://www.cnblogs.com/Vikyanite/