linux 源码包安装

  1. wget http://xxxx 获取源码包
  2. 解压,tar zxvf xxx.tar.gz
  3. ./configure –prefix=/usr/local/xxx 指定安装路径
  4. make 编译
  5. make install 安装
  6. 配置环境变量
    1
    vim /etc/profile

然后在文件的最后一行,添加下面的内容,然后保存退出。

1
export PATH=$PATH:/usr/local/git/bin

使用 source 命令生效。

1
source /etc/profile

环境依赖

  1. 安装 git、nodejs 环境,安装 pyenv,安装 python 环境,安装 nginx
  2. npm 安装 hexo 脚手架,把 hexo 博客放到服务器上,启动 hexo server -p 1011 分配端口号
  3. 配置 nginx,路径配置为 hexo 的 public 静态文件目录。配置域名等信息。
  4. 可以通过域名访问博客,通过ip+端口访问后台管理的博客页面 hexo-admin

git 安装

git 依赖库

1
2
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

git 源码包地址

https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz

nodejs 安装

先安装 git,yum 安装 nodejs,再安装 nvm

安装 nvm

nvm 是 node 包管理工具,使用 nvm 我们可以访问 node 的所有可用版本,还可以使用 nvm 安装多个版本的 node

1
2
3
4
5
6
7
8
9
10
1、添加NodeSource官方存储库,选择添加资源库版本,执行以下任意一个命令
##node version 4.x 以上
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -

##node version 6.x 以上
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

##node version 0.12.x 以上
curl --silent --location https://rpm.nodesource.com/setup | bash -

  1. 要安装 nvm,需要安装构建源包所需的工具,CentOS 上安装,用这些命令来安装构建工具:

    1
    2
    3
    sudo yum update
    yum -y install nodejs
    sudo yum groupinstall 'Development Tools'
  2. 现在当安装构建工具时,需要从 nvm 的官方 github 存储库获取并执行安装脚本

    1
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
  3. 这将在您的机器上安装 nvm。关闭或者重新打开您的终端,运行以下命令检查 nvm 是否已成功安装,这个命令简单的终输出 nvm

    1
    command -v nvm
  4. 要找出可以通过 nvm 安装的 Node.js 的可用版本,运行以下命令,这个命令的输出将提供一个庞大的 node 版本列表

    1
    nvm ls-remote

nginx 安装

nginx 源码包地址

https://nginx.org/download/nginx-1.15.7.tar.gz

下载后解压,进入目录,
执行

1
./configure --prefix=/usr/local/webserver/nginx

如果报错,根据提示解决

1
2
make 
make install

nginx配置

创建 Nginx 运行使用的用户 www:

1
2
/usr/sbin/groupadd www 
/usr/sbin/useradd -g www www

配置/conf/nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
user www www;
worker_processes 1; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
http
{
#下面是server虚拟主机的配置
server
{
listen 80;#监听端口
server_name localhost;#域名
root /usr/local/hexo-blog/public/;
location / {
index index.html index.htm;
}
}
}

检查配置是否正确

1
/usr/local/webserver/nginx/sbin/nginx -t

启动nginx

1
/usr/local/webserver/nginx/sbin/nginx

查看启动的nginx

1
ps -ef|grep nginx

nginx其他命令

1
2
3
/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx

后台运行hexo server

安装pm2

1
npm install -g pm2

在博客根目录下创建一个文件 run.js

1
2
3
4
5
6
7
8
9
10
//run.js 
const { exec } = require('child_process')
exec('hexo server',(error, stdout, stderr) => {
if(error){
console.log(`exec error: ${error}`)
return
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
})

运行脚本

1
pm2 start run.js

nginx 重写配置url

进入nginx源码包目录,重新执行:

1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

完成之后 make

备份之前的nginx 包

1
cp /usr/local/webserver/nginx/sbin/nginx /usr/local/webserver/nginx/sbin/nginx.bak

将刚刚编译好的nginx覆盖掉原有的nginx(nginx服务处于停止状态)

1
cp ./objs/nginx /usr/local/webserver/nginx/sbin/

http 强制跳转 https (nginx 再配置一个 server)

1
2
3
4
5
server {
listen 80;
server_name lvfan.xyz;
rewrite ^(.*)$ https://www.$host$1 permanent;
}