hexo,git搭建个人网站
  Ogzy9ibNXM9w 2023年11月19日 18 0

1. nodejs安装

1.1使用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

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

sudo yum install -y gcc-c++ make

相关库

  1. 更新系统:

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

sudo yum install epel-release3. 安装devtoolset-7工具集:

sudo yum install centos-release-scl

sudo yum install devtoolset-74. 启用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

  1. 在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。

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

source ~/.bashrc

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

nvm install stable

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

nvm install 14.17.6

nvm install 16.20.2

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

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

[root@localhost /data/myblog]hexo,git搭建个人网站_nginxnode -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

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每次一登录就自动退出。

第六步,克隆远程仓库:

现在,可以通过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 站点域名;
    return 301 域名$request_uri;
}
server {
   #ssl on;
    listen 443 ssl;
    server_name 站点域名;
    root /data/myblog; # 根目录为web
    index index.php index index.html index.htm;
    ssl_certificate /etc/nginx/ssl/站点域名.pem;
    ssl_certificate_key /etc/nginx/ssl/站点域名.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证书申请,主流云平台都可以免费申请,填写一些资料以后很快就可以签发证书,选择对应的证书上传即可。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
  jnZtF7Co41Wg   2023年12月11日   27   0   0 nginx客户端服务端
  stLBpDewCLT1   2023年12月08日   27   0   0 nginx
  48fXx4UfWSFg   2023年12月06日   54   0   0 bcIPbundle
  jnZtF7Co41Wg   2023年12月10日   20   0   0 nginx客户端服务端NFS
  eHipUjOuzYYH   2023年12月06日   26   0   0 nginxHTTP
  eHipUjOuzYYH   2023年12月06日   22   0   0 nginx加载IPV6