hexogit搭建个人网站


1. nodejs安装

使用Node Version Manager(nvm工具)

install stable`是使用Node Version Manager(nvm)安装Node.js的命令。nvm是一个用于管理多个Node.js版本的工具,可以轻松地在同一台机器上安装、切换和管理不同版本的Node.js。

nvm install stable指令表示安装最新的稳定版本的Node.js。执行此命令后,nvm会从Node.js官方仓库下载并自动安装最新的稳定版Node.js。安装过程可能需要一些时间,具体取决于您的网络速度。

在centOS上安装Node.js,您可以按照以下步骤进行操作:

1). 使用以下命令更新系统软件包:

sudo yum update

2). 安装Node.js依赖项。使用以下命令执行:

sudo yum install -y gcc-c++ make

相关库

3). 更新系统:

sudo yum update
(2). 安装EPEL存储库(Extra Packages for Enterprise Linux,附加软件包):

sudo yum install epel-release
(3). 安装devtoolset-7工具集:

sudo yum install centos-release-scl

sudo yum install devtoolset-7
(4). 启用devtoolset-7工具集:

scl enable devtoolset-7 bash

sudo yum install centos-release-scl

sudo yum install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-libstdc++-devel

ps. 在CentOS上,您可以使用Node Version Manager(NVM)来安装和管理多个Node.js版本。首先,在CentOS上安装NVM。使用以下命令从NVM的GitHub仓库获取安装脚本:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash国内:

curl -o- https://gitee.com/mirrors/nvm/raw/v0.39.0/install.sh | bash

注意:这是安装最新版本的NVM。您可以在NVM的GitHub页面https://github.com/nvm-sh/nvm
上查看最新版本并使用相应的URL。

4). 安装完成后,关闭并重新打开终端,或者使用以下命令重新加载终端以使NVM生效:

source ~/.bashrc

5). 使用NVM安装想要的Node.js版本。例如,运行以下命令安装最新的稳定版本:

nvm install stable

或者,您可以指定其他Node.js版本,例如:

nvm install 14.17.6

nvm install 16.20.2

这将下载并安装指定版本的Node.js。

6). 检查Node.js的安装是否成功。运行以下命令检查Node.js版本:

[root@localhost /data/myblog]$npm -v
8.19.4
[root@localhost /data/myblog]$node -v
v16.20.2

[root@mytest2 tools]# node -v

node: /lib64/libm.so.6: version `GLIBC_2.27’ not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found (required by node)

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.27’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.28’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.25’ not found (required by node)

[root@mytest2 tools]# npm -v

node: /lib64/libm.so.6: version `GLIBC_2.27’ not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found (required by node)

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.27’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.28’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.25’ not found (required by node)

[root@mytest2 tools]# ldd –version

ldd (GNU libc) 2.17

版本太高换回nvm install 16.20.2
source ~/.bashrc
Please see nvm --help or https://github.com/nvm-sh/nvm#nvmrc for more information.
nvm list
v16.20.2
v21.1.0
default -> stable (-> v21.1.0)

nvm use 16.20.2
Now using node v16.20.2 (npm v8.19.4)
[root@test /root]$nvm -v
0.39.0
[root@test /root]$npm -v
8.19.4
[root@test /root]$node -v
v16.20.2
[root@test /root]$source ~/.bashrc

2. git repo仓库安装

github也可以注册账号,Github Pages可以直接生成页面,不过国外的网速实在是龟速,gitee也有这个功能,实名认证太麻烦,索性在自己测试机上直接建立git仓库,直接推送建立站点而已,后续国内服务器需要网站备案。

1).安装git
ubuntu/debian:
sudo apt-get install git

centos:
sudo yum install git

2).创建一个git用户,用来运行git服务:

$ sudo adduser git
3).创建证书登录实现git免密推送:

收集所有需要登录的用户的公钥id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

4).初始化Git仓库:

先选定一个目录作为Git仓库,假定git是/data/blog/blog.git,工作目录:/data/myblog 在/data/blog目录下输入命令:

sudo git init —bare blog.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

$ sudo chown -R git:git blog.git

cd blog.git/hooks

vim post-receive

#!/bin/sh
git --work-tree=/data/myblog --git-dir=/data/blog/blog.git checkout -f

chmod +x post-receive

5).禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

gitx:1001:1001:,,,:/home/git:/bin/bash
改为:

gitx:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

6).克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

git clone ssh://git@ip:port/data/blog/blog.git
Cloning into ‘blog’…

几个问题:

a.git目录路径要看清楚,不在当前目录会报:does not appear to be a git repository
fatal: Could not read from remote repository.类似的错误 ;

git@ip:port/data/blog/blog.git

b. git ssh 连接 : ssh://git@ip:port/data/blog/blog.git

3. hexo安装及推送

3.1 hexo安装

npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo g # 或者hexo generate
hexo s # 或者hexo server,可以在http://localhost:4000/ 查看

也可以hexo server -p 80 -l

hexo generate (hexo g) 生成静态文件,会在当前目录下生成一个新的叫做public的文件夹

hexo server (hexo s) 启动本地web服务,用于博客的预览

hexo deploy (hexo d) 部署播客到远端(比如github, heroku等平台)

hexo new “postName” #新建文章
hexo new page “pageName” #新建页面

简写:

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

hexo d -g #生成部署
hexo s -g #生成预览

经常用到:

hexo clean

hexo g

hexo d

3.2使用hexo deploy部署

安装一个扩展:

$ npm install hexo-deployer-git –save

hexo deploy可以部署到很多平台,具体可以参考这个链接. 如果部署到github,需要在根目录/data/blog/配置文件_config.xml中作如下修改:

deploy:
type: git
repo: ssh://git@ip:port/data/blog/blog.git
branch: master
然后在命令行中执行

hexo d
即可完成部署。

hexo主题很多选择一个喜欢的去修改吧

比如:

git clone https://github.com/next-theme/hexo-theme-next themes/next

下载到themes 的next 主题,或者matery大佬的主题,下载以后自己修改成自己喜欢的样式即可。

4. web站点搭建

首先有一台自己的服务器,比如centos或者ubuntu,debian,安装nginx或者tengine,对于个人静态站点基本上nginx可以满足,tengine需要手动安装,喜欢的可以尝试一下。

简单的yum install nginx

cd /etc/nginx/

vim nginx.conf

server_tokens off; 隐藏版本号;

也可以做好多优化;这里只说实现web功能

nginx一般在/etc/nginx/conf.d/ 配置站点conf文件,tengine在/etc/nginx/sites-enabled/配置,看个人喜好。

vim mybog.conf 基本配置如下:

server {
    listen 80;
    server_name blog.icmpy.net;
    return 301 blog.icmpy.net$request_uri;
}
server {
    listen 443 ssl;
    server_name blog.icmpy.net;
    root /data/myblog; # 根目录为web
    index index.php index index.html index.htm;
    ssl_certificate /etc/nginx/ssl/blog.icmpy.net.pem;
    ssl_certificate_key /etc/nginx/ssl/blog.icmpy.net.key;
   ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers  on;
    # Log files for Debug
    error_log  /var/log/nginx/blog_error.log;
    access_log /var/log/nginx/blog_access.log;

}

由于做了ssl证书,80做了个跳转到443上面,域名需要到平台做解析,A记录到自己的服务器,如果流量大的话可以做cdn,Cname到平台给的记录值,ssl证书申请,主流云平台都可以免费申请,填写一些资料以后很快就可以签发证书,选择对应的证书上传即可。

hexo主题优化网上有好多:
https://godweiyang.com/2018/04/13/hexo-blog/


文章作者: 云上的小雨滴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 云上的小雨滴 !
评论
  目录