進過上一篇《樹莓派搭建私人服務器》,咱們已經有一個私人服務器了,如今須要作點什麼實際事情了,先搭一個博客分享本身的經驗吧。javascript
相關文章:
1.《樹莓派搭建私人服務器》
(http://www.uthinks.xyz/2017/01/23/RaspberryPi-init/)css
首先在樹莓派上安裝Git,同時確保ssh已經正確安裝而且默認開啓html
sudo apt-get install wget git-core
添加git用戶和組,其實就是Linux普通用戶就行java
adduser git passwd git
切換到git用戶,增長一個新的Git倉庫node
cd /home/git mkdir blog cd blog git init --bare
本地把blog項目遷移下來, 剛剛初始化的倉庫是沒有任何分支的,後面提交代碼的時候會自動生成一個master分支。後面hexo直接在該目錄下搭建python
git clone git@[域名 | IP]:/home/git/blog
至此,一個本身的git服務器已經搭建完成nginx
首先安裝nginxgit
sudo apt-get install nginx
修改nginx配置文件 /etc/nginx/nginx.confjson
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { server { listen 8081; # 這個目錄是hexo生成的頁面路徑,後面提交到git的頁面同步到這個目錄下 location / { root /home/bill/blog/public; index index.html; } # 這個配置是靜態文件:圖片、文件下載路徑,有另一個git倉庫管理,同樣同步到對應目錄下 location ~ ^/resource/picture/(.*)? { alias /home/bill/resource/picture/$1 ; add_header Cache-control max-age=7200,s-maxage=3600; } } ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
啓動nginx服務器
sudo /etc/init.d/nginx start | restart | stop
環境已經搭建完成了,如何實現把文件提交到Git自動同步到nginx目錄下完成發佈呢?
1.若是你使用的GitHud的話這個問題很簡單,這裏就不在贅述。參考我朋友的hexo教程
(http://luckykun.com/work/2016-04-23/heoll-hexo.html)
2.如今說說個人方法,其實也很簡單
編寫一個簡單的git pull腳本
import os
if name == ‘main‘:
#blog分支同步 os.chdir('/home/bill/blog/') os.system('git pull origin master') #靜態文件同步 os.chdir('/home/bill/resource/') os.system('git pull origin master')
定時任務配置 crontab -e
*/1 * * * * /usr/bin/python /home/bill/deploy/deploy.py