阿里雲ECS雲服務器CentOS部署個人網站


ping了一下coding pages和阿里雲服務器的速度,意外感覺coding的速度反而更快。不過為了折騰,還是把博客遷移到阿里雲,跌跌撞撞遇到很多坑,大多是由於對指令不熟悉以及部分教程省略了部分步驟,最后不斷谷歌終於成功了!

購買學生機

一開始糾結了好久的問題是:阿里雲學生機要買輕量應用服務器還是雲服務器ECS?最后看着教程買了半年的雲服務器ECS&Centos,因為參考的教程也是用的這種配置。但是我后悔了,前者的帶寬峰值是后者的五倍啊啊啊啊!!!果然人一窮就想着要追求性價比,流下了窮人的淚水嗚嗚嗚

阿里雲配置:

找到雲主機實例(這個實例就是你購買的ECS服務器)

找到服務器主機實例

找到服務器主機實例

  1. 在雲服務器ECS列表中選擇實例。
  2. 然后選擇你在購買服務器時選擇的服務器區域。
  3. 就是你自己的服務器實例了。

添加安全組規則

如果要使用CentOS鏡像系統這個安全組規則是必須要添加的。
簡單明了,下面用四張圖來演示添加安全組規則。

進入實例管理

進入實例管理進入實例管理

進入安全組配置規則

進入安全組配置規則進入安全組配置規則

打開添加安全組規則

打開添加安全組規則打開添加安全組規則

添加安全組規則

添加安全組規則

添加安全組規則

好的,配置完成,很簡單對不對,不過這還只是熱身哦,接下來就要進入主題開始我們的搭建博客之旅。


服務器環境搭建

選擇實例的遠程連接

選擇遠程連接

選擇遠程連接

輸入遠程密碼

輸入遠程密碼

輸入遠程密碼

注意:這里的遠程密碼,只有在第一次連接的時候會提示,只有在第一次連接的時候會提示,只有在第一次連接的時候會提示,重要的事情說三遍。一定要牢記。

登錄服務器

輸入密碼后就會進到服務器頁面,是一個黑色的shell小窗口,之后根據提示登錄就可以。
shell窗口中的登錄操作就不截圖演示了,直接使用文本方式根據步驟來就可以了。
  1.login后面輸入用戶名。
  2.password后面輸入密碼。(注意:這里在輸入密碼的時候為了安全是不會在界面上顯示出來的,所以如果你在輸入密碼的時候沒有看到你輸入的結果是正常現象,直接輸入就可以)

安裝git和nodejs

yum install git

#安裝Nodejs
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers

到這里之后會打開一個文本文件,然后找到以下內容

Allow root to run any commands anywhere
root    ALL=(ALL)    ALL

按一下 I 鍵 進入插入模式然后使用方向鍵在以上內容的下面添加一行

git ALL=(ALL) ALL

添加完成后按下ESC鍵退出插入模式,然后輸入

:wq

這個命令的意思是保存並退出vim
保存退出后改回權限

chmod 400 /etc/sudoers

隨后設置Git用戶的密碼,

sudo passwd git

然后輸入git用戶的密碼 輸入完成之后一路回車等待設置完成之后
切換至git用戶,創建 ~/.ssh 文件夾和 ~/.ssh/authorized_keys 文件,並賦予相應的權限

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys
然后進入電腦中(你自己的電腦)C:\Users\Administrator\.ssh文件夾下看一下有沒有id_rsa.pub文件
如果沒有則通過Git Bash新建一個
創建.ssh命令為:ssh-keygen -t rsa -C "your_email@example.com"
創建好后在C:\Users\Administrator\.ssh文件夾下使用筆記本方式打開id_rsa.pub文件,打開后就能看到公鑰了。
然后將公鑰復制粘貼到authorized_keys 寫入方式和上面在sudoers插入方式一樣,完成之后執行下面命令
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh

然后在客戶端(電腦上),通過Git Bash執行ssh -v root@ip地址(就是你阿里雲的外網地址) ,應該就能免密登陸了。

安裝Nginx和配置

安裝

yum install nginx

啟動 直接輸入nginx然后回車就可以啟動nginx

nginx

然后把服務器的公網地址輸入瀏覽器, 出現下面的圖片就對了,沒出來就有問題
nginx啟動成功

nginx啟動成功

配置Nginx

vim /etc/nginx/conf.d/default.conf

依照下圖進行修改,插入方式往下就不做介紹了,就那幾步,如果有不會的可以去百度一下。
img
listen:端口號。
server_name:你自己的域名,如果沒有域名可以不填寫,然后在訪問博客的時候使用你服務器的外網IP地址就可以。
location:地址內容。
root:指向的博客文件夾目錄。
index:指定博客Index文件。

配置完成以后保存退出開始執行接下來的內容

sudo mkdir -p /usr/share/nginx/html/blog
sudo chown -R git:git /usr/share/nginx/html/blog

nginx的配置到這里已經完成,接下來就要創建我們自己的私有git倉庫了哦

在服務器上初始化一個git倉庫

切換到git用戶,然后切換到git用戶目錄,接着初始化裸庫,代碼如下:

su git
cd ~
git init --bare blog.git

接着新建一個post-receive文件

vim ~/blog.git/hooks/post-receive

然后在該文件中輸入以下內容:

#!/bin/sh
git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f

這里的 #!/bin/sh 也是要加進去的,不要當成注釋從而遺漏掉了哦。

保存退出之后,再輸入以下代碼,賦予該文件可執行權限。

chmod +x ~/blog.git/hooks/post-receive

好了,到這里我們的服務器配置已經完成。我們先喘一口氣休息一下,回過頭檢查一下有沒有遺漏或者出現錯誤的地方,出現差錯到時候可能會導致配置不成功的,要仔細一點哦。

本地Hexo初始化

首先要安裝 hexo-cli,安裝hexo-cli 需要 root 權限,使用 sudo 運行

sudo npm install -g hexo-cli

然后初始化Hexo程序

cd E:\hexo
hexo init blog

等執行成功以后安裝兩個插件, hexo-deployer-git 和 hexo-server ,這倆插件的作用分別是使用Git自動部署,和本地簡單的服務器。

hexo-deployer-git幫助文檔
hexo-server幫助文檔
安裝hexo-deployer-git 和 hexo-server

cd blog
npm install hexo-deployer-git --save
npm install hero-server

初始化Nodejs

install nodejs

生成自己的第一篇文章 hello world !

hexo new "hello Hexo"

使用 hexo new <文章名稱> 來新建文章,該命令會成成一個 .md文件放置在hexo根目錄 source/_posts文件夾。
使用hexo g將 .md文件渲染成靜態文件,然后啟動hexo-server

hexo g
hexo server

現在便可以打開瀏覽器訪問 http://localhost:4000 來查看我們的博客了!

然后停掉

配置_config.yml,完成自動化部署

然后打開E:/hexo/_config.yml 找到 deploy

deploy:
    type: git
    repo: root@YOUR_SERVER_IP:/home/git/blog.git       #此處的YOUR_SERVER_IP需改為你自己服務器的ip
    branch: master                                     #這里填寫分支
    message:                                           #提交的信息

hexo_config配置

hexo_config配置

保存后,嘗試將我們剛才寫的”hello hexo”部署到服務器

hexo clean
hexo g
hexo s
hexo generate --deploy

訪問服務器地址,就可以看到我們寫的文章”Hello hexo”,以后寫文章只需要:

hexo new "Blog article name"
···寫文章
hexo clean
hexo g
hexo s
hexo generate --deploy

到這里我們的博客就已經可以使用了。現在快去體驗一下自己的勞動成果寫博客部署上去吧。

配置域名

阿里雲域名解析處-新手引導-添加主機地址,就可以自動創建兩條記錄。

OVER


遇到的問題:

CentOs下nginx的配置文件

是放在/etc/nginx/nginx.conf,而不是nginx.default。

mark


Nginx啟動失敗,原因是80端口被占用。

使用命令關閉占用80端口的程序

sudo fuser -k 80/tcp

或者是

遇到這種問題我先用中文搜索了一下答案,發現大家都在裝逼地說要殺nginx重復的進程。我試了下發現是扯淡,於是看了谷歌搜到的第一個英文頁面,老外說是nginx先監聽了ipv4的80端口之后又監聽了ipv6的80端口,於是就重復占用了。更加坑人的是你去看了端口占用它又把80端口釋放了,是不是很囧。

解決方案是編輯nginx的配置文件

hankcs@ubuntu:~$ sudo gedit /etc/nginx/sites-available/default

修改這一段:

listen 80;listen [::]:80 default_server;

listen 80;listen [::]:80 ipv6only=on default_server;

然后啟動nginx,完美解決!


ssh登錄失敗

大部分原因是由於.ssh目錄下的known_hosts中

47.98.147.134 ecdsa-sha2-nistp256 

出錯,刪除這一段代碼即可。


參考教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM