_little-star_

学习的博客

0%

Linux上的软件安装的方式大体上说有四种:

  • 二进制发布包

    软件已经针对具体平台编译打包发布,只要解压,修改配置即可。

  • RPM包

    软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。

  • Yum在线安装

    软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。

  • 源码编译安装

    软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。

上传与下载工具介绍(三种):

  • xftp

xftp

可以去官网下载(顺手可以把Xshell也下载了)

  • lrzsz

    我们可以使用yum安装方式安装 yum install lrzsz

    注意:必须有网络

    可以在crt中设置上传与下载目录

    lrzsz

    上传:

    上传

    下载

    下载

  • sftp

    使用alt + p组合键打开sftp窗口

    sftp

    使用put 命令上传

    put

    使用get命令下载

    get

    默认下载位置在当前计算的的文档位置

    文档位置

教程分六个部分

  1. 第一部分:下载安装jdk

  2. 第二部分:下载安装mysql

  3. 第三部分:下载安装tomcat

  4. 第四部分:下载安装redis

  5. 第五部分:下载安装nginx

  6. 第六部分:下载安装rabbitmq(附:配置防火墙)

第一部分:下载安装jdk

1、在官网下载自己所需版本的jdk(linux版)

2、卸载linux可能自带的open-JDK

1
2
3
4
5
6
7
8
9
# 查看jdk版本
java –version
# 查看安装的jdk信息
rpm -qa | grep java
# 卸载jdk
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686
# 再次查看安装的jdk信息
rpm -qa | grep java

第一次查看安装的jdk信息或最后一次查看安装的jdk信息没有open-jdk后,可以上传下载的jdk

3、上传安装jdk

我们通常将软件安装到/usr/local,在该目录下新建一个jdk文件夹。用Xftp将下载的jdk上传到jdk文件夹中

1
2
3
4
#直接解压就可以
tar –zxvf jdk.*****.tar.gz
# 查看jdk版本
java –version

4、配置JDK的环境变量:

1
2
3
4
5
6
7
8
9
10
vim /etc/profile
#按i进行编写,在末尾行添加
#set java environment
JAVA_HOME=/usr/local/jdk/jdk1.7.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
#按Esc加:wq回车,保存退出
#使更改的配置立即生效
source /etc/profile

第二部分:下载安装mysql

本部分参考开心跳蚤的Linux下安装mysql-5.7.24这篇博客,加上遇到的坑和自己的一些补充。

正。

1、注意:

  • 注意1:本文档讲解安装版本为mysql-5.7.24,对于5.7.24之后的版本,不适用此说明文档,主要原因在于之后版本的mysql配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。

  • 注意2:安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。

2、安装前准备

1、检查是否已经安装过mysql,执行命令

1
[root@localhost /]# rpm -qa | grep mysql

检查

从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令

1
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,查看是否删除

1
[root@localhost /]# rpm -qa | grep mysql

检查

2、查询所有Mysql对应的文件夹

1
2
3
4
5
[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql

删除相关目录或文件

1
[root@localhost /]#  rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

验证是否删除完毕

1
2
3
4
[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]#

3、检查mysql用户组和用户是否存在,如果没有,则创建

1
2
3
4
5
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]#

4、从官网下载是用于Linux的Mysql安装包

1
[root@localhost /]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以直接到 mysql官网 选择对应版本进行下载。

mysql官网

3、安装Mysql

1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令

1
2
3
4
[root@localhost /]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到**/usr/local/下,并将文件夹名称修改为mysql**。

如果**/usr/local/下已经存在mysql**,请将已存在mysql文件修改为其他名称或删除,否则后续步骤可能无法正确进行。

1
2
3
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
[root@localhost /]# cd /usr/local/
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

如果**/usr/local/下不存在mysql**文件夹,直接执行如下命令

1
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

2、在**/usr/local/mysql**目录下创建data目录

1
[root@localhost /]# mkdir /usr/local/mysql/data

3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

1
2
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql

4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

1
2
[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

第四步可能出现问题:

问题

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

1
2
[root@localhost bin]# rpm -qa|grep libaio   
[root@localhost bin]#

运行命令后发现系统中无该链接库文件,用yum下载libaio-devel.x86_64

1
[root@localhost bin]#  yum install  libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:

问题

用yum下载numactl执行如下命令后

1
[root@localhost bin]#  yum -y install numactl

执行无误之后,再重新执行第4步初始化命令,无误之后再进行第5步操作!

5、运行初始化命令成功后,输出日志如下:

输出日志

记录日志最末尾位置**root@localhost:**后的字符串,此字符串为mysql管理员临时登录密码。

6、编辑配置文件my.cnf,添加配置如下:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost bin]#  vi /etc/my.cnf
# 用i进入编辑模式,按Esc加:wq回车,保存退出
[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;

7、测试启动mysql服务器

1
[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

显示如下结果,说明数据库安装并可以正常启动

正常启动

异常情况

如果出现如下提示信息

1
2
Starting MySQL.180306 16:26:49 mysqld_safe error: log-error set to '/var/lib/mysql/mysql.log', however file don't exists. Create writable for user 'mysql'. 
ERROR! The server quit without updating PID file

1、查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

1
2
3
4
5
6
7
8
9
#查询服务
ps -ef|grep mysql | grep -v grep
ps -ef|grep mysqld | grep -v grep

#结束进程
kill -9 PID

#启动服务
/usr/local/mysql/support-files/mysql.server start

端口

2、如果不存在,则是因为没有路径也没有权限,所以创建此路径并授权给mysql用户,执行如下命令:

1
2
3
4
5
6
7
# 创建此路径
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
# 用户组及用户
chown -R mysql:mysql /var/log/mariadb/
#启动服务
/usr/local/mysql/support-files/mysql.server start

3、此时可能会出现如下错误:

1
2
Starting MySQL.170331 10:18:30 mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file

启动MySQL服务时,会优先在/etc/目录下查找my.cnf,可以把/etc/my.cnf重命名,执行如下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@VMUest ~]# ll /etc/my.cnf
-rw-r--r--. 1 root root 251 Jan 27 05:41 /etc/my.cnf
[root@VMUest ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@VMUest ~]# ll /etc/ |grep my
-rw-r--r--. 1 root root 251 Jan 27 05:41 my.cnf
[root@VMUest ~]# mv /etc/my.cnf /etc/my.cnf.bak
#启动服务
/usr/local/mysql/support-files/mysql.server start

MySQL服务顺利启动。

8、添加软连接,并重启mysql服务

1
2
3
[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]# service mysql restart

9、登录mysql,修改密码(密码为步骤5生成的临时密码)

1
2
3
[root@localhost /]#  mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');

注意:输入密码时,Enter password 后面不会有任何显示,此时实际是输入成功的,输入完密码后直接回车即可。或使用:mysql -u root -p 密码 ,回车后,即可直接进入数据库

修改密码

10、开放远程连接

1
2
3
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

开放远程连接

11、设置开机自动启动

1
2
3
4
5
6
7
8
1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list

第三部分:下载安装tomcat

1、在官网下载tomcat

2、上传安装tomcat

将软件安装到/usr/local,在该目录下新建一个tomcat文件夹。用Xftp将下载的tomcat上传到tomcat文件夹中

将上传的tomcat解压

1
tar –zxvf *****

在tomcat/bin目录下执行 startup.sh(注意防火墙)

在浏览器访问主机对应ip加上8080端口可以访问到tomcat页面(那只猫)

也可以查看Tomcat进程:

1
ps aux | grep tomcat

第四部分:下载安装redis

1、安装gcc-c++

redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。

输入命令:

1
yum install gcc-c++

安装gcc-c++

输入y确认下载

确认下载

输入y确认安装

确认安装

安装 gcc 成功!

安装 gcc 成功

2、在官网下载所需的redis

3、上传编译安装tomcat

解压上传的tomcat

1
tar -xzvf redis-****.tar.gz

编译安装

切换至程序目录,并执行make命令编译:

1
2
3
ll
cd redis-***
make

执行安装命令

1
make PREFIX=/usr/local/redis install 

make install安装完成后,会在/usr/local/bin目录下生成下面几个可执行文件,它们的作用分别是:

redis-server:Redis服务器端启动程序

redis-cli:Redis客户端操作工具。也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具

redis-check-aof:数据修复工具

redis-check-dump:检查导出工具

4、配置redis

复制配置文件到/usr/local/redis/bin目录:

1
2
cd redis-***
cp redis.conf /usr/local/redis/bin

5、启动redis

进入redis/bin目录

1
cd redis/bin

启动redis服务端(注意命令前面有.

1
./redis-server redis.conf

克隆新窗口,启动redis客户端(注意命令前面有.

1
./redis-cli

第五部分:下载安装nginx

1、安装前的准备

需要安装 gcc 的环境【前面安装redis时安装过,此步省略】

第三方的开发包:

  • PCRE

    PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。

1
yum install -y pcre pcre-devel

注:pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。

  • zlib

zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。

1
yum install -y zlib zlib-devel  
  • OpenSSL

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。

1
yum install -y openssl openssl-devel

2、在官网下载Nginx

3、Nginx上传安装

把 nginx 的源码包上传到 linux 系统的/usr/local/nginx 目录下

解压缩

1
tar zxvf nginx-***.tar.gz

进入nginx-***目录 使用 configure 命令创建一 makeFile 文件(注意命令前面有.

1
2
3
4
5
6
7
8
9
10
11
12
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

执行后可以看到Makefile文件

Makefile文件

Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
configure参数
./configure \
--prefix=/usr \ 指向安装目录
--sbin-path=/usr/sbin/nginx \ 指向(执行)程序文件(nginx)
--conf-path=/etc/nginx/nginx.conf \ 指向配置文件
--error-log-path=/var/log/nginx/error.log \ 指向log
--http-log-path=/var/log/nginx/access.log \ 指向http-log
--pid-path=/var/run/nginx/nginx.pid \ 指向pid
--lock-path=/var/lock/nginx.lock \ (安装文件锁定,防止安装文件被别人利用,或自己误操作。)
--user=nginx \
--group=nginx \
--with-http_ssl_module \ 启用ngx_http_ssl_module支持(使支持https请求,需已安装
openssl)
--with-http_flv_module \ 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
--with-http_stub_status_module \ 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
--with-http_gzip_static_module \ 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
--http-client-body-temp-path=/var/tmp/nginx/client/ \ 设定http客户端请求临时文件路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 设定http代理临时文件路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 设定http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 设定http uwsgi临时文件路径
--http-scgi-temp-path=/var/tmp/nginx/scgi \ 设定http scgi临时文件路径
--with-pcre 启用pcre库openssl)
--with-http_flv_module \ 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
--with-http_stub_status_module \ 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
--with-http_gzip_static_module \ 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
--http-client-body-temp-path=/var/tmp/nginx/client/ \ 设定http客户端请求临时文件路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 设定http代理临时文件路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 设定http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 设定http uwsgi临时文件路径
--http-scgi-temp-path=/var/tmp/nginx/scgi \ 设定http scgi临时文件路径
--with-pcre 启用pcre库

4、编译

1
make

5、安装

1
make install

6、Nginx启动与访问

启动nginx 之前,上边将临时文件目录指定为/var/temp/nginx/client, 需要在/var 下创建此 目录

1
mkdir /var/temp/nginx/client -p

进入到Nginx目录下的sbin目录

1
cd /usr/local/ngiux/sbin

输入命令启动Nginx(注意命令前面有.)(注意防火墙)

1
./nginx

在浏览器访问主机对应ip(端口默认是80)可以访问到nginx页面

nginx页面

也可以查看nginx进程:

1
ps aux|grep nginx
  • 关闭 nginx:

    ./nginx -s stop

    或者

    ./nginx -s quit

  • 重启 nginx:

    1、先关闭后启动。

    2、刷新配置文件:

    ./nginx -s reload

第六部分:下载安装rabbitmq

1、在官网下载rabbitmq

注意要下载rabbitmq对应的Erlang、socat

2、安装依赖环境

在线安装依赖环境

1
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

3、上传(以下按照你们下载的版本为主)

erlang-18.3-1.el7.centos.x86_64.rpm
socat-1.7.3.2-5.el7.lux.x86_64.rpm
rabbitmq-server-3.6.5-1.noarch.rpm

1
2
# 安装
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm

如果出现如下错误

错误

说明gblic 版本太低。我们可以查看当前机器的gblic 版本

1
strings /lib64/libc.so.6 | grep GLIBC

gblic 版本

当前最高版本2.12,需要2.15.所以需要升级glibc

  • 使用yum更新安装依赖

    1
    sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
  • 下载rpm包

    1
    2
    3
    4
    5
    6
    7
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-utils-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-static-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm &
    wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/nscd-2.17-55.el6.x86_64.rpm &
  • 安装rpm包

    1
    sudo rpm -Uvh *-2.17-55.el6.x86_64.rpm --force --nodeps
  • 安装完毕后再查看glibc版本,发现glibc版本已经到2.17了

    1
    strings /lib64/libc.so.6 | grep GLIBC

查看glibc版本

4. 安装RabbitMQ

1
2
3
4
# 安装
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
# 安装
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

5. 开启管理界面及配置

1
2
3
4
5
# 开启管理界面
rabbitmq-plugins enable rabbitmq_management
# 修改默认配置信息
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
# 比如修改密码、配置等等,例如:loopback_users 中的 <<"guest">>,只保留guest

6. 启动(注意防火墙)

1
2
3
service rabbitmq-server start # 启动服务
service rabbitmq-server stop # 停止服务
service rabbitmq-server restart # 重启服务
  • 设置配置文件
1
2
cd /usr/share/doc/rabbitmq-server-3.6.5/
cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

在浏览器访问主机对应ip加上15672端口可以访问到RabbitMQ页面(用户名密码默认为guest)

RabbitMQ页面

出现访问不到RabbitMQ页面问题

在控制台输入:

1
ps -ef | grep rabbitmq

命令含义:从当前所有进程中查找是否含有rabbitmq进程

如果有内容显示,则说明 Rabbitmq启动成功

rabbitmq进程

否则,重新启动 Rabbitmq

2. 检查能否从 Linux 本地中访问到 Rabbitmq

从控制台输入命令:

1
wget http://localhost:15672

命令含义:访问 http://localhost:15672
linux访问

否则,检查 Rabbitmq端口号是否正确

3. 检查 Rabbitmq启动端口号

Rabbitmq 默认的启动端口号是 15672,如果你没有对 Rabbitmq 的配置文件做修改的话应该是没有问题的
输入命令:

1
ps -ef | grep rabbitmq

命令含义:查看 Rabbitmq进程信息

 Rabbitmq进程信息

查看进程号(图中红色框位置)

接着输入命令:(注:grep 后跟的就是上一步所查的进程号)
命令含义:查看 9810进程占用的端口号
端口号

图中红色框位置即是你的 Rabbitmq的启动端口号

4. 检查远程访问的 ip 地址是否正确

如果从 Linux 本地可以成功访问 Rabbitmq服务器,而从 Windows(主机) 上无法访问,那么首先检查远程访问的 ip 地址是否正确
在 Liunx 控制台上输入命令:

1
ifconfig

查看主机ip

图中位置即是 Linux 的 ip 地址,若此处没出现ens33的ip地址,可能是网络配置没配置好,解决方法具体请见https://www.cnblogs.com/zipxzf/p/11237269.html

5. 检查 Linux 防火墙是否开放 Rabbitmq端口号

参考的是zipxzf的在Centos7中,从主机 Windows 上无法远程访问 Linux 上rabbitmq的解决方法这篇博客,加上自己的一些补充

当window能够ping通linux的ip,而还是不能通过ip在windows上访问linux的一些服务,如tomcat、mysql、nginx、rabbitmq等服务,最可能的原因是linux的防火墙问题。

如果你没有修改过 Linux 防火墙配置的话,那么 Rabbitmq 端口号一定是被禁用了 ,因为 Linux 防火墙默认只开启 22 号端口。

你需要设置防火墙配置,开放 Rabbitmq的端口号 (注:网上有其他解决方法说直接关闭防火墙,这种方法很不可取

我的 Linux 版本是 CentOS 7 ,在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,如果要添加范围例外端口 如 1000-2000

语法命令如下:启用区域端口和协议组合

1
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

此举将启用端口和协议的组合。端口可以是一个单独的端口 或者是一个端口范围 - 。协议可以是 tcp 或 udp。

实际命令如下:

  添加

1
2
3
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent

  重新载入

1
firewall-cmd --reload

  查看

1
firewall-cmd --zone=public --query-port=80/tcp

  删除

1
firewall-cmd --zone=public --remove-port=80/tcp --permanent

此处的解决方案是开放 15672端口号只需输入命令:(注:若python无法连接Rabbitmq,同理,则需要开放5672端口号)

1
firewall-cmd --zone=public --add-port=15672/tcp --permanent

然后重启防火墙,即可解决:

1
firewall-cmd --reload

成功访问rabbitmq管理页面

rabbitmq管理页面

6、配置防火墙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 查看防火墙状态 
systemctl status firewalld.service

# 关闭防火墙
systemctl stop firewalld.service

# 启动防火墙
systemctl start firewalld.service

# 重启防火墙
systemctl restart firewalld.service

单独开放端口号:

firewall-cmd --permanent --zone=public --add-port=8080(端口号)/tcp

firewall-cmd --reload

firewall-cmd --zone=public --query-port=8080(端口号)/tcp

需要开放的端口号:

mysql:3306

tomcat:8080

redis:6379

nginx:80

RabbitMQ:15672,25672,5672

本人最近心血来潮,想要搭建一个属于自己的个人博客。参考的是Fangzh的hexo史上最全搭建教程这篇博客,加上自己的一些补充。

搭建博客的方式大体上说有三种:

  • 在CSDN,博客园,简书等平台,可以直接在上面发表,用户交互做的好,写的文章百度也能搜索的到。缺点是比较不自由,会受到平台的各种限制和恶心的广告。
  • 自己购买域名和服务器,搭建博客。这样做的成本实在是太高了,不光是说这些购买成本,单单是花力气去自己搭这么一个网站,还要定期的维护它,对于我们大多数人来说,实在是没有这样的精力和时间。
  • 直接在github page平台上托管我们的博客。这样就可以安心的来写作,又不需要定期维护,而且hexo作为一个快速简洁的博客框架,用它来搭建博客真的非常容易。

这里我采用的git-Node.js-Hexo的方式构建的博客。

这种方式写博客需要使用到Markdown语法,详情可查看本人的另外一篇博客markdown语法。里面有Markdown的基础语法。

注意:以下在配置.yml配置文件的时候注意yml的语法,yml是有严格的规则的。以免出现不必要的错误。

yml的语法

  • k:(空格)v:表示一对键值对(空格必须有)
  • 属性和值也是大小写敏感

教程分三个部分

  • 第一部分:hexo的初级搭建还有部署到github page上,以及个人域名的绑定。
  • 第二部分:hexo的基本配置,更换主题,实现多终端工作,以及在coding page部署实现国内外分流
  • 第三部分:hexo添加各种功能,包括搜索的SEO,阅读量统计,访问量统计和评论系统等。

第一部分

hexo的初级搭建还有部署到github page上,以及个人域名的绑定。

Hexo简介

Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。

Hexo搭建步骤

  1. 安装Git
  2. 安装Node.js
  3. 安装Hexo
  4. GitHub创建个人仓库
  5. 生成SSH添加到GitHub
  6. 将hexo部署到GitHub
  7. 设置个人域名
  8. 发布文章

1. 安装Git

Git是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。也就是用来管理你的hexo博客文章,上传到GitHub的工具。Git非常强大,我觉得建议每个人都去了解一下。廖雪峰老师的Git教程写的非常好,大家可以了解一下。Git教程

windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具,以后就用这个工具来使用git。

linux:对linux来说实在是太简单了,因为最早的git就是在linux上编写的,只需要一行代码

1
sudo apt-get install git

安装好后,用git --version 来查看一下版本

2. 安装nodejs

Hexo是基于nodeJS编写的,所以需要安装一下nodeJs和里面的npm工具。

windows:nodejs选择LTS版本就行了。

linux:

1
2
sudo apt-get install nodejs
sudo apt-get install npm

安装完后,打开命令行

1
2
node -v
npm -v

检查一下有没有安装成功

顺便说一下,windows在git安装完后,就可以直接使用git bash来敲命令行了,不用自带的cmd,cmd有点难用。

3. 安装hexo

前面git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹blog,然后cd到这个文件夹下(或者在这个文件夹下直接右键git bash打开)。

输入命令

1
npm install -g hexo-cli

依旧用hexo -v查看一下版本

至此就全部安装完了。

接下来初始化一下hexo

1
hexo init myblog

这个myblog可以自己取什么名字都行,然后

1
2
cd myblog //进入这个myblog文件夹
npm install

新建完成后,指定文件夹目录下有:

  • node_modules: 依赖包
  • public:存放生成的页面
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题
  • ** _config.yml: 博客的配置文件**
1
2
hexo g
hexo server

打开hexo的服务,在浏览器输入localhost:4000就可以看到你生成的博客了。

大概长这样:

Hexo主页
使用ctrl+c可以把服务关掉。

4.GitHub创建个人仓库

首先,你先要有一个GitHub账户,去注册一个吧。

注册完登录后,在GitHub.com中看到一个New repository,新建仓库

New repository

创建一个和你用户名相同的仓库,后面加.github.io,只有这样,将来要部署到GitHub page的时候,才会被识别,也就是xxxx.github.io,其中xxx就是你注册GitHub的用户名。我这里是已经建过了。

repository name

点击create repository。

5. 生成SSH添加到GitHub

回到你的git bash中,

1
2
git config --global user.name "yourname"
git config --global user.email "youremail"

这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。

可以用以下两条,检查一下你有没有输对

1
2
git config user.name
git config user.email

然后创建SSH,一路回车

1
ssh-keygen -t rsa -C "youremail"

创建SSH是会提示你输入保存路径,用默认即可,你只需要指定一个保存文件的名字,比如/c/Users/Amarao/.ssh/0729XGHGitHub(可以不设置,回车就行)

还会提示你输入SSH登陆密码,可以不设置

SSH

补充:在新生成密钥的时候,经常会报这样的错误

1
2
The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

这是因为少了一个known_hosts文件,本来密钥文件应该是三个,现在是两个,便报了这样的错误,此时选择yes回车之后,便可,同时生成了缺少了的known_hosts文件:

1
Are you sure you want to continue connecting (yes/no)? //输入yes,回车

这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。

.ssh

ssh,简单来讲,就是一个秘钥,其中,id_rsa是你这台电脑的私人秘钥,不能给别人看的,id_rsa.pub是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。

打开公钥文件id_rsa.pub

  • win+r打开电脑的控制面板

    cmd

  • 使用cd命令进入id_rsa.pub目录

  • 使用more id_rsa.pub命令查看公钥的内容

  • 复制公钥的内容

    id_rsa.pub

而后在GitHub的setting中,找到SSH keys的设置选项,点击New SSH key
把你的id_rsa.pub里面的信息复制进去。

add ssh key

在gitbash中,查看是否成功

1
ssh -T git@github.com

6.将hexo部署到GitHub

这一步,我们就可以将hexo和GitHub关联起来,也就是将hexo生成的文章部署到GitHub上,打开站点配置文件 _config.yml,翻到最后在deploy那里,修改为
YourgithubName就是你的GitHub账户

1
2
3
4
deploy:
type: git
repo: https://github.com/YourgithubName/YourgithubName.github.io.git
branch: master

这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。

1
npm install hexo-deployer-git --save

然后

1
2
3
hexo clean
hexo generate
hexo deploy

其中 hexo clean清除了你之前生成的东西,也可以不加。
hexo generate 顾名思义,生成静态文章,可以用 hexo g缩写
hexo deploy 部署文章,可以用hexo d缩写

注意deploy时可能要你输入username和password。

得到下图就说明部署成功了,过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了!!
上传部署

7. 设置个人域名

现在你的个人网站的地址是 yourname.github.io,如果觉得这个网址逼格不太够,这就需要你设置个人域名了。但是需要花钱。

注册一个阿里云账户,在阿里云上买一个域名,我买的是 fangzh.top,各个后缀的价格不太一样,比如最广泛的.com就比较贵,看个人喜好咯。

你需要先去进行实名认证,然后在域名控制台中,看到你购买的域名。

解析进去,添加解析。

解析

其中,192.30.252.153 和 192.30.252.154 是GitHub的服务器地址。
注意,解析线路选择默认,不要像我一样选境外。这个境外是后面来做国内外分流用的,在后面的博客中会讲到。记得现在选择默认!!

解析线路

登录GitHub,进入之前创建的仓库,点击settings,设置Custom domain,输入你的域名fangzh.top

域名

然后在你的博客文件source中创建一个名为CNAME文件,不要后缀。写上你的域名。

CNAME

最后,在gitbash中,输入

1
2
3
hexo clean
hexo g
hexo d

过不了多久,再打开你的浏览器,输入你自己的域名,就可以看到搭建的网站啦!

接下来你就可以正式开始写文章了。

1
hexo new newpapername

然后在source/_post中打开markdown文件,就可以开始编辑了。

当你写完的时候,再

1
2
3
hexo clean
hexo g
hexo d

就可以看到更新了。

第二部分

hexo的基本配置,更换主题,实现多终端工作,以及在coding page部署实现国内外分流。

1. hexo基本配置

在文件根目录下的_config.yml,就是整个hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。

网站

参数 描述
title 网站标题
subtitle 网站副标题
description 网站描述
author 您的名字
language 网站使用的语言
timezone 网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说:America/New_York, Japan, 和 UTC

其中,description主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。

网址

参数 描述
url 网址
root 网站根目录
permalink 文章的 永久链接 格式
permalink_defaults 永久链接中各部分的默认值

在这里,你需要把url改成你的网站域名。

permalink,也就是你生成某个文章时的那个链接格式。

比如我新建一个文章叫temp.md,那么这个时候他自动生成的地址就是http://yoursite.com/2018/09/05/temp

以下是官方给出的示例,关于链接的变量还有很多,需要的可以去官网上查找 永久链接

参数 结果
:year/:month/:day/:title/ 2013/07/14/hello-world
:year-:month-:day-:title.html 2013-07-14-hello-world.html
:category/:title foo/bar/hello-world

再往下翻,中间这些都默认就好了。

1
2
3
4
5
6
7
8
theme: landscape

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: <repository url>
branch: [branch]

theme就是选择什么主题,也就是在theme这个文件夹下,在官网上有很多个主题,默认给你安装的是lanscape这个主题。当你需要更换主题时,在官网上下载,把主题的文件放在theme文件夹下,再修改这个参数就可以了。

接下来这个deploy就是网站的部署的,repo就是仓库(Repository)的简写。branch选择仓库的哪个分支。这个在之前进行github page部署的时候已经修改过了,不再赘述。而这个在后面进行双平台部署的时候会再次用到。

Front-matter

Front-matter 是你要书写的blog的Markdown文件的最上方以 --- 分隔的区域,用于指定个别文件的变量,举例来说:

1
2
3
title: Hello World
date: 2013/7/13 20:46:25
---

下是预先定义的参数,您可在模板中使用这些参数值并加以利用。

参数 描述
layout 布局
title 标题
date 建立日期
updated 更新日期
comments 开启文章的评论功能
tags 标签(不适用于分页)
categories 分类(不适用于分页)
permalink 覆盖文章网址

其中,分类和标签需要区别一下,分类具有顺序性和层次性,也就是说 Foo, Bar 不等于 Bar, Foo;而标签没有顺序和层次。

1
2
3
4
5
categories:
- Diary
tags:
- PS3
- Games

layout(布局)

当你每一次使用代码

1
hexo new paper

它其实默认使用的是post这个布局,也就是在source文件夹下的_post里面。

Hexo 有三种默认布局:postpagedraft,它们分别对应不同的路径,而您自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。

布局 路径
post source/_posts
page source
draft source/_drafts

而new这个命令其实是:

1
hexo new [layout] <title>

只不过这个layout默认是post罢了。

page

如果你想另起一页,那么可以使用

1
hexo new page board

系统会自动给你在source文件夹下创建一个board文件夹,以及board文件夹中的index.md,这样你访问的board对应的链接就是http://xxx.xxx/board

draft

draft是草稿的意思,也就是你如果想写文章,又不希望被看到,那么可以

1
hexo new draft newpage

这样会在source/_draft中新建一个newpage.md文件,如果你的草稿文件写的过程中,想要预览一下,那么可以使用

1
hexo server --draft

在本地端口中开启服务预览。

如果你的草稿文件写完了,想要发表到post中,

1
hexo publish draft newpage

就会自动把newpage.md发送到post中。


2. 更换主题

到这一步,如果你觉得默认的landscape主题不好看,那么可以在官网的主题中,选择你喜欢的一个主题进行修改就可以啦。点这里

theme

这里有200多个主题可以选。不过最受欢迎的就是那么几个,比如NexT主题,非常的简洁好看,大多数人都选择这个,关于这个的教程也比较多。不过我选择的是hueman这个主题,好像是从WordPress移植过来的,展示效果如下:

hueman

不管怎么样,至少是符合我个人的审美。

直接在github链接上下载下来,然后放到theme文件夹下就行了,然后再在刚才说的配置文件中把theme换成那个主题文件夹的名字,它就会自动在theme文件夹中搜索你配置的主题。

而后进入hueman这个文件夹,可以看到里面也有一个配置文件_config.yml,貌似它默认是_config.yml.example,把它复制一份,重命名为_config.yml就可以了。这个配置文件是修改你整个主题的配置文件。

在hueman的_config.yml里面,有:

也就是上面菜单栏上的这些东西。

menu

其中,About这个你是找不到网页的,因为你的文章中没有about这个东西。如果你想要的话,可以执行命令

1
hexo new page about

它就会在根目录下source文件夹中新建了一个about文件夹,以及index.md,在index.md中写上你想要写的东西,就可以在网站上展示出来了。

如果你想要自己再自定义一个菜单栏的选项,那么就

1
hexo new page yourdiy

然后在主题配置文件的menu菜单栏添加一个 Yourdiy : /yourdiy,注意冒号后面要有空格,以及前面的空格要和menu中默认的保持整齐。然后在languages文件夹中,找到zh-CN.yml,在index中添加yourdiy: '中文意思'就可以显示中文了。

customize(定制)

在这里可以修改你的个人logo,默认是那个hueman,在source/css/images文件夹中放入自己要的logo,再改一下url的链接名字就可以了。

favicon是网站中出现的那个小图标的icon,找一张你喜欢的logo,然后转换成ico格式,放在images文件夹下,配置一下路径就行。

social_links ,可以显示你的社交链接,而且是有logo的。

tips:

在这里可以添加一个rss功能,也就是那个符号像wifi一样的东西。

添加RSS

1. 什么是RSS?

RSS也就是订阅功能,你可以理解为类似与订阅公众号的功能,来订阅各种博客,杂志等等。

2. 为什么要用RSS?

就如同订阅公众号一样,你对某个公众号感兴趣,你总不可能一直时不时搜索这个公众号来看它的文章吧。博客也是一样,如果你喜欢某个博主,或者某个平台的内容,你可以通过RSS订阅它们,然后在RSS阅读器上可以实时推送这些消息。现在网上的垃圾消息太多了,如果你每一天都在看这些消息中度过,漫无目的的浏览,只会让你的时间一点一点的流逝,太不值得了。如果你关注的博主每次都发的消息都是精华,而且不是每一天十几条几十条的轰炸你,那么这个博主就值得你的关注,你就可以通过RSS订阅他。

在我的理解中,如果你不想每天都被那些没有质量的消息轰炸,只想安安静静的关注几个博主,每天看一些有质量的内容也不用太多,那么RSS订阅值得你的拥有。

3. 添加RSS功能

先安装RSS插件

1
npm i hexo-generator-feed

而后在你整个项目的_config.yml中找到Extensions,添加:

1
2
3
4
5
6
7
8
9
10
# Extensions
## Plugins: https://hexo.io/plugins/
#RSS订阅
plugin:
- hexo-generator-feed
#Feed Atom
feed:
type: atom
path: atom.xml
limit: 20

这个时候你的RSS链接就是 域名/atom.xml了。

所以,在主题配置文件中的这个social links,开启RSS的页面功能,这样你网站上就有那个像wifi一样符号的RSS logo了,注意空格。

1
rss: /atom.xml

4. 如何关注RSS?

首先,你需要一个RSS阅读器,在这里我推荐inoreader,宇宙第一RSS阅读器,而且中文支持的挺好。不过它没有PC端的程序,只有网页版,chrome上有插件。在官网上用google账号或者自己注册账号登录,就可以开始你的关注之旅了。

每次需要关注某个博主时,就点开他的RSS链接,把链接复制到inoreader上,就能关注了,当然,如果是比较大众化的很厉害的博主,你直接搜名字也可以的,比如每个人都非常佩服的阮一峰大师,直接在阅读器上搜索阮一峰,应该就能出来了。

我关注的比如,阮一峰的网络日志,月光博客,知乎精选等,都很不错。当然,还有我!!赶快关注我吧!你值得拥有:http://fangzh.top/atom.xml

在安卓端,inoreader也有下载,不过因为国内google是登录不了的,你需要在inoreader官网上把你的密码修改了,然后就可以用账户名和密码登录了。

在IOS端,没用过,好像是reader 3可以支持inoreader账户,还有个readon也不错,可以去试试。

widgets(侧边栏)

侧边栏的小标签,如果你想自己增加一个,比如我增加了一个联系方式,那么我把communication写在上面,在zh-CN.yml中的sidebar,添加communication: '中文'

然后在hueman/layout/widget中添加一个communicaiton.ejs,填入模板:

1
2
3
4
5
6
7
8
<% if (site.posts.length) { %>
<div class="widget-wrap widget-list">
<h3 class="widget-title"><%= __('sidebar.communiation') %></h3>
<div class="widget">
<!--这里添加你要写的内容-->
</div>
</div>
<% } %>

search(搜索框)

默认搜索框是不能够用的,

you need to install hexo-generator-json-content before using Insight Search

它已经告诉你了,如果想要使用,就安装这个插件。

  • 1、在git bash中输入:
1
npm i hexo-generator-json-content --save

如果这个包已经存在,会报错。

但是你需要在你博客的根目录下,找到node_modules文件夹。如果hexo-generator-json-content 这个包是存在的就OK。

hexo-generator-json-content

  • 2、在博客根目录下,找到_config.yml,打开找一个空白地方复制一下配置信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true

comment(评论系统)

这里的多数都是国外的,基本用不了。这个valine好像不错,还能统计文章阅读量,可以自己试一试,链接

miscellaneous(其他)

这里我就改了一个links,可以添加友链。注意空格要对!不然会报错!

总结:

整个主题看起来好像很复杂的样子,但是仔细捋一捋其实也比较流畅,

  • languages: 顾名思义
  • layout:布局文件,其实后期想要修改自定义网站上的东西,添加各种各样的信息,主要是在这里修改,其中comment是评论系统,common是常规的布局,最常修改的在这里面,比如修改页面headfooter的内容。
  • scripts:js脚本,暂时没什么用
  • source:里面放了一些css的样式,以及图片

3. git分支进行多终端工作

问题来了,如果你现在在自己的笔记本上写的博客,部署在了网站上,那么你在家里用台式机,或者实验室的台式机,发现你电脑里面没有博客的文件,或者要换电脑了,最后不知道怎么移动文件,怎么办?

在这里我们就可以利用git的分支系统进行多终端工作了,这样每次打开不一样的电脑,只需要进行简单的配置和在github上把文件同步下来,就可以无缝操作了。

机制

机制是这样的,由于hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件。

也就是上传的是在本地目录里自动生成的.deploy_git里面。

其他文件 ,包括我们写在source 里面的,和配置文件,主题文件,都没有上传到github

所以可以利用git的分支管理,将源文件上传到github的另一个分支即可。

上传分支

首先,先在github上新建一个hexo分支,如图:

hexo分支

然后在这个仓库的settings中,选择默认分支为hexo分支(这样每次同步的时候就不用指定分支,比较方便)。

default

然后在本地的任意目录下,打开git bash,

1
git clone git@github.com:ZJUFangzh/ZJUFangzh.github.io.git

将其克隆到本地,因为默认分支已经设成了hexo,所以clone时只clone了hexo。

接下来在克隆到本地的ZJUFangzh.github.io中,把除了.git 文件夹外的所有文件都删掉

把之前我们写的博客源文件全部复制过来,除了.deploy_git。这里应该说一句,复制过来的源文件应该有一个.gitignore,用来忽略一些不需要的文件,如果没有的话,自己新建一个,在里面写上如下,表示这些类型文件不需要git:

1
2
3
4
5
6
7
8
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
1234567

注意,如果你之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。

而后

1
2
3
git add .
git commit –m "add branch"
git push

这样就上传完了,可以去你的github上看一看hexo分支有没有上传上去,其中node_modulespublicdb.json已经被忽略掉了,没有关系,不需要上传的,因为在别的电脑上需要重新输入命令安装 。

这样就上传完了。

更换电脑操作

一样的,跟之前的环境搭建一样,

  • 安装git
1
sudo apt-get install git
  • 设置git全局邮箱和用户名
1
2
git config --global user.name "yourgithubname"
git config --global user.email "yourgithubemail"
  • 设置ssh key
1
2
3
4
5
ssh-keygen -t rsa -C "youremail"
#生成后填到github和coding上(有coding平台的话)
#验证是否成功
ssh -T git@github.com
ssh -T git@git.coding.net #(有coding平台的话)
  • 安装nodejs
1
2
sudo apt-get install nodejs
sudo apt-get install npm
  • 安装hexo
1
sudo npm install hexo-cli -g

但是已经不需要初始化了,

直接在任意文件夹下,

1
git clone git@………………

然后进入克隆到的文件夹:

1
2
3
cd xxx.github.io
npm install
npm install hexo-deployer-git --save

生成,部署:

1
2
hexo g
hexo d

然后就可以开始写你的新博客了

1
hexo new newpage

Tips:

  1. 不要忘了,每次写完最好都把源文件上传一下
1
2
3
git add .
git commit –m "xxxx"
git push
  1. 如果是在已经编辑过的电脑上,已经有clone文件夹了,那么,每次只要和远端同步一下就行了
1
git pull

关于第四步在coding page部署实现国内外分流与第三部分hexo添加各种功能,包括搜索的SEO,阅读量统计,访问量统计和评论系统等。本人没有操作,详情可查看Fangzh的hexo史上最全搭建教程这篇博客。

标题

markdown支持如下的6级标题

1
2
3
4
# 一级标题
## 二级标题
...
###### 六级标题

字体加粗

1
**加粗**

字体倾斜

1
*倾斜*

字体加粗并倾斜

1
***加粗倾斜***

删除线

1
~~~删除线~~~

引用

1
> 引用的文字

分割线

1
---

无序列表

1
2
* 列表项1
* 列表项2

有序列表

1
2
1. 列表项1
2. 列表项2

对于无序列表和有序列表来说都是可以嵌套使用的。

行内代码块

1
`行内代码` 

对于行内代码块来说,是非常方便的,在写技术博客的时候如果提到某个方法或者是某个类,可以直接使用行内代码块,提高可读性。

多行代码块

1
```多行代码块 多行代码块```

修改文字的颜色

我在使用富文本的时候经常有一些重点内容会让我标记成特殊的格式,在markdown中支持标签,我们可以直接使用标签来改变文字的一些样式

1
2
3
4
5
6
7
8
<font face="黑体">我是黑体字</font>
<font face="微软雅黑">我是微软雅黑</font>
<font face="STCAIYUN">我是华文彩云</font>
<font color=red>我是红色</font>
<font color=#008000>我是绿色</font>
<font color=Blue>我是蓝色</font>
<font size=5>我是尺寸</font>
<font face="黑体" color=green size=5>我是黑体,绿色,尺寸为5</font>