From 6995c18e6e90eec8a2562bdc7dc47abd86bb8705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E5=A2=A8?= <2291200076@qq.com> Date: Sun, 3 Apr 2022 14:53:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0README.md=EF=BC=9B=E6=9B=B4?= =?UTF-8?q?=E6=96=B0favicon.ico=EF=BC=9B=E4=BF=AE=E6=94=B9=E4=B8=80?= =?UTF-8?q?=E5=A4=84=E6=8B=BC=E5=86=99=E9=94=99=E8=AF=AF=EF=BC=9B=E5=B0=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 201 +++++++++++++++++++++- bookshelfplus-frontend/package.json | 1 + bookshelfplus-frontend/public/favicon.ico | Bin 1176 -> 6019 bytes server/nginx/conf/nginx.conf | 4 +- server/nginx/html/50x.html | 2 +- 5 files changed, 196 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a093af2..dd9dff9 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ## 开始使用 -> 所需环境:Java JDK 8+,Maven,MySQL 5.7+,nodejs等 +> 所需环境:Java JDK 8,Maven,MySQL 5.7+,nodejs,Redis等 ### 安装环境 @@ -29,28 +29,208 @@ # 下载地址:https://nodejs.org/dist/v16.14.0/node-v16.14.0-x64.msi # 安装 JDK 8 +# TODO # 安装 Maven +# TODO -# 安装 MySQL 5.7 +# 安装 MySQL (5.7 以上版本) +# TODO -# 导入数据库SQL脚本 +# 安装 Redis +# TODO -# nodemon(可选) -# 开发使用 nodemon,代码变动后自动重启。 +# pm2 +npm i pm2 -g + +# nodemon (可选) +# 开发使用 nodemon (代码变动后自动重启) # 使用以下代码安装 nodemon npm i nodemon -g ``` +### 环境配置 + +#### 配置国内镜像源 + +##### 配置 npm 国内镜像源 + +```bash +# 查看当前配置的镜像源 默认为: https://registry.npmjs.org/ +npm config get registry + +# 修改为国内镜像源 这里使用淘宝镜像源: https://registry.npm.taobao.org/ +npm config set registry https://registry.npm.taobao.org/ +``` + + + +##### 配置 Maven 国内镜像源 + +编辑 Maven 安装目录下 `conf/settings.xml` 文件,如下 + +```xml + + + + + alimaven + aliyun maven + https://maven.aliyun.com/repository/public + central + + + +``` + + + +### 项目配置 + +```bash +# 配置 nginx.conf +# TODO + +# [前端] +# 配置后台 Api 地址 +# TODO +# 配置前端网站名称 +# TODO + +# [后端] +# TODO +``` + +配置好后,需要重启 nginx + +```bash +# 重启 nginx +nginx -s reload +# 或者使用其他重启命令 +# 例如 Ubuntu 系统下使用 systemctl restart nginx +``` + + + +### 处理依赖 + +```bash +# [前端] +npm install + +# [后端] +mvn clean install +``` + + + +### 数据导入 + +```bash +# [数据库] +# 导入数据库 SQL 脚本 +# TODO +``` + + + +### 编译后端项目 + +```bash +mvn clean install + +# 如果提示: Cannot create resource output directory: xxx +# 那么说明权限不够,在前面加上 sudo +# sudo mvn clean install +``` + +编译成功后,可以看到如下输出(其中有 `BUILD SUCCESS`): + +```bash +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 12:17 min +[INFO] Finished at: 2022-04-03T14:22:18+08:00 +[INFO] ------------------------------------------------------------------------ +``` + + + +### 启动项目 + +```bash +# [前端] +# 启动前端服务 (默认监听 3000 端口) +npm run prod + + +# [后端] +# 启动后端服务 (默认监听 8090 端口) +mvn install -Djar.forceCreation spring-boot:run +# 如果提示: Cannot create resource output directory: xxx +# 那么说明权限不够,在前面加上 sudo +# sudo mvn install -Djar.forceCreation spring-boot:run + +# 启动 nginx +# TODO +``` + +若启动时提示以下 `WARNING`,是因为 `JDK` 版本过高,一般不影响使用。 + +```bash +WARNING: An illegal reflective access operation has occurred +WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) +WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1 +WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations +WARNING: All illegal access operations will be denied in a future release +``` + + + + + +### 停止项目 + +```bash +# 停止 nginx +# 有如下几种停止方式 +nginx -s quit # 从容停止 +nginx -s stop # 立即停止 +systemctl stop nginx # 使用 systemctl 停止 +# 也可直接杀掉 nginx 进程 + +# 停止前端服务 +npm run prod-stop + +# 停止后端服务 +# TODO +``` + + + ## 功能展示 ### 功能列表 - [x] 首页。简约(说白了其实就是懒),一个搜索框就够了。后期考虑添加热门搜索功能。 -- [ ] 书籍列表页,也是搜索结果页。就是一个书单列表,带分页功能。 -- [ ] 书籍详情页。主要是显示书籍的各种详细信息(书名,简介,缩略图等),还有下载方式,同时还有反馈功能(连接失效反馈,版权问题申诉下架等) +- [x] 书籍列表页,也是搜索结果页。就是一个书单列表,带分页功能。 +- [x] 书籍详情页。主要是显示书籍的各种详细信息(书名,简介,缩略图等),还有下载方式,同时还有反馈功能(连接失效反馈,版权问题申诉下架等) +- [x] 分类列表页 +- [x] 分类详情页 - [ ] 管理员后台。 - [ ] 用户登录后台。 @@ -74,15 +254,18 @@ npm i nodemon -g **对象存储**对接腾讯云COS存储(`cos_api`)。 +**第三方登录**使用 `JustAuth` 开源项目(配合 `okhttp3`) + ## 开发工具 -前端:VS Code,后端:idea,数据库:MySQL +前端:VS Code,后端:idea,数据库:Navicat + +> 以上为项目开发时所使用的开发工具,也可以使用其他的开发工具打开,但建议使用以上工具打开本项目,避免产生一些莫名错误。 ## 注意事项 - nginx启动目录不能包含中文,否则无法启动 - diff --git a/bookshelfplus-frontend/package.json b/bookshelfplus-frontend/package.json index dd0dd35..ffda4a2 100644 --- a/bookshelfplus-frontend/package.json +++ b/bookshelfplus-frontend/package.json @@ -7,6 +7,7 @@ "dev": "nodemon", "test": "set NODE_ENV=production & nodemon", "prod": "set NODE_ENV=production & pm2 start app.js --name bookshelfplus-frontend", + "prod-stop": "pm2 stop bookshelfplus-frontend", "clean": "node cleanup.js" }, "description": "书栖网", diff --git a/bookshelfplus-frontend/public/favicon.ico b/bookshelfplus-frontend/public/favicon.ico index 9416778635c929493365aafed8fddc2be7e9b88d..993419edd0e222886f2d457c288e59486acb8a6a 100644 GIT binary patch literal 6019 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 literal 1176 zcmZQzU<5)11qKkw(8R*PAjZJJ&>7(8&dVjm1!VGidbk7uX`l)Q1rBB)>9VBj7?5Ht z4sv&5ym?Zm9?0P=@Q5sCVBi)8VMc~ob0mNYjt2OIxB?}ApCJXEMN#|vWh_xa%ef4~2I+VkhS`M;05|GioC|M#muHy!`Jp85At!T*0h|6Diy z`!Ew?@1JXi|Nnmf_xDre*SY+2V}y#Rezt>{(V~a@9knB_s-}?=}&vAkTFUkCSGymV~*}pGJK@|T!!}RA)z@OW`K<>{| zpiugARr~LgvVR}9{r~st|Gyu9AD8@u1lL)n|37a3|90v3S!Rgd|37a1|8@~(4oV2a z1^-_{5r=E}f1W{c-A-*_L{2XW@(X6*v7dbW!D~k*jfr>v{QowVHE&*(Y*@Rh4qy%=vk3Q7c~xy_y~jv*CuYA2^g zGdYU1uGf8JYUr?$JGvnE=%KJTesA9Sy%Ae;|Mi(oo4u>-&fKwlUs;x>&frp6`TNJO zpTB?q{KZny*v*vc_$fg|M2UZDtL3K;9UdhCOO#H{b3eYIJ86-s-0G629j79Wg%-ZE zNSbr%*yF43EEicd@~c!m>hPSRzPy5OiP~g`S?PT<*e1OD#y?}q%Lx;I#w!>zZ~FJR zgX_WsGi!Bo{riGX#6_NoOpIfWa)~uOUZ}b>^=Z$v@Q`T&tGlK|tx(J5bzi!E?d8BV zt5;wB>}D$&^0|@i+%h+2UJ0qzL}7V_;DpT&3Ut?YtkuoA;uc_CGGW{1?#g5D@|0Is zS8={#W{oYfH{RLkxKUOh No! 服务器要炸啦!

对不起,当前网站访问量过大,已超出服务器的最大处理能力,已触发自动保护机制。也请您不要频繁刷新,让服务器喝口水、喘口气儿吧~

我们还是一如既往完全免费的书栖网,在网站不可用期间,大家可以前往Git仓库下载电子书。

-

本站不接受打赏,由程序员小墨开发并开源,如果您想支持本站,可以去开源仓库或去B站为我点个Star,如果您有能力的话,也欢迎前往项目开源仓库为项目提交Pr。

+

本站由程序员小墨开发并开源,不接受打赏。如果您想支持本站,可以去开源仓库或去B站为我点个Star,如果您有能力的话,也欢迎前往项目开源仓库为项目提交Pr。

感谢大家的支持。

书栖网