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,您可以按照以下步骤进行操作:
- 使用以下命令更新系统软件包:
sudo yum update
- 安装Node.js依赖项。使用以下命令执行:
sudo yum install -y gcc-c++ make
相关库
- 更新系统:
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
- 在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。
- 安装完成后,关闭并重新打开终端,或者使用以下命令重新加载终端以使NVM生效:
source ~/.bashrc
- 使用NVM安装想要的Node.js版本。例如,运行以下命令安装最新的稳定版本:
nvm install stable
或者,您可以指定其他Node.js版本,例如:
nvm install 14.17.6
nvm install 16.20.2
这将下载并安装指定版本的Node.js。
- 检查Node.js的安装是否成功。运行以下命令检查Node.js版本:
[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
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证书申请,主流云平台都可以免费申请,填写一些资料以后很快就可以签发证书,选择对应的证书上传即可。