# nginx-blog
**Repository Path**: iamdsy/nginx-blog
## Basic Information
- **Project Name**: nginx-blog
- **Description**: a blog module based on nginx which can be written with markdown
- **Primary Language**: C++
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2017-11-23
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# nginx-blog
english version readme click here
点击此处看实际效果
这是基于nginx开发的http模块,该模块配置好了后可以直接写markdown文件
写好上传到指定目录,博客就自动生成了。
这个模块只能在linux上使用,因为使用了inotify功能,该模块已在ubuntu 16.04
、deepin 15.5操作系统上测试,也和nginx1.12.2、nginx-1.9.9一起测试过,
可以正常使用。
## 1.安装
### 1.1 创建文件: ~/nginx-1.12.2/objs/Makefile
命令如下:
```
cd
git clone https://www.gitee.com/iamdsy/nginx-blog
tar xvfz nginx-1.12.2.tar.gz
sudo apt-get install libpcre3-dev \
libssl-dev perl make build-essential curl
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --add-module=../nginx-blog
```
### 1.2 更改~/nginx-1.12.2/objs/Makefile文件
由于本模块是基于c++编写的,所以有些地方需要修改
1.在"CC = cc"这一行下增加一行:"CXX = g++"
2.在"CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g"
这一行下增加一行:"CXXFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -std=c++11"
3.将 "LINK = $(CC)" 改为 "LINK = $(CXX)"
4.搜索 nginx-blog 编译选项,将 nginx-blog后面的 $(CC) 改为 $(CXX),$(CFLAGS) 改为 $(CXXFLAGS)
5.修改完成后的Makefile看起来像这样:
```
CC = cc
CXX = g++
CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g
CXXFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -std=c++11
CPP = cc -E
LINK = $(CXX)
其他省略。。。
objs/addon/nginx-blog/ngx_blog.o: $(ADDON_DEPS) \
../nginx-blog/ngx_blog.cpp
$(CXX) -c $(CXXFLAGS) $(ALL_INCS) \
-o objs/addon/nginx-blog/ngx_blog.o \
../nginx-blog/ngx_blog.cpp
objs/addon/nginx-blog/blog_home_page.o: $(ADDON_DEPS) \
../nginx-blog/blog_home_page.cpp
$(CXX) -c $(CXXFLAGS) $(ALL_INCS) \
-o objs/addon/nginx-blog/blog_home_page.o \
../nginx-blog/blog_home_page.cpp
objs/addon/nginx-blog/lib_markdown_parse.o: $(ADDON_DEPS) \
../nginx-blog/lib_markdown_parse.cpp
$(CXX) -c $(CXXFLAGS) $(ALL_INCS) \
-o objs/addon/nginx-blog/lib_markdown_parse.o \
../nginx-blog/lib_markdown_parse.cpp
后面省略。。。
```
### 1.3编译和安装
命令如下
```
cd
cd nginx-1.12.2
make
sudo make install
```
## 2.配置 nginx.conf
只要在http模块下增加几行配置即可,增加后的
看起来如下:
```
user iamdsy;
省略。。。
http {
src_root_dir /home/iamdsy/my_blog/;
dst_root_dir /usr/local/nginx/html/;
html_title 我的博客;
blog_name 潼潼;
blog_subname 文房;
max_item_per_page 10;
省略。。。
```
## 3.放置md博客文件的目录结构
根据上面的配置,根目录就是/home/iamdsy/my_blog/
这个目录下只有1个文件和1个文件夹,文件叫about_me.md
,文件夹叫blog
## 3.其他需要做的工作
### 3.1 建立目录
根据前述配置,放置html文件的根目录是/usr/local/nginx/html,
创建目录的命令如下:
```
cd /usr/local/nginx/html
sudo mkdir blog archive tags
```
### 3.2 复制 style.css到相关目录下面
```
cd
sudo cp -rv nginx-blog/style.css /usr/local/nginx/html
cd /usr/local/nginx/html
sudo cp -rv style.css blog
sudo cp -rv style.css tags
sudo cp -rv style.css archive
```
### 3.3运行nginx
```
cd /usr/local/nginx
sudo ./sbin/nginx
```
敲了上述命令运行正常后,应该已经能访问已经写好的博客了。
### 3.4 更改目录所有者chown
为了在md文件目录下放一个md文件就能动态生成博客,需要
nginx的worker进程能把生成的博客文件放置到html目录下,
所以把html及其子目录全更改为iamdsy,就是前面nginx.conf
文件里面的user iamdsy;的值
```
cd /usr/local/nginx
sudo chown -R iamdsy html/*
```
## 4.后期会做的事情
1.将tag标签下的所有文章按时间进行排序
2.修改css文件能适配移动终端