# 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文件能适配移动终端