1. 可以直接下载vbox FreeBSD11.2镜像:
    1
    https://download.freebsd.org/ftp/releases/VM-IMAGES/11.2-RELEASE/amd64/Latest/FreeBSD-11.2-RELEASE-amd64.vhd.xz

解压缩:

1
xz -d FreeBSD-11.2-RELEASE-amd64.vhd.xz

从vbox创建虚拟机指定此vhd文件
在vbox设置网络网卡1中,连接方式选择“网络地址转换NAT”, 高级-> 端口转发: 本机8822端口 映射到 子系统 22 端口

  1. 配置ssh服务, 使用vi
    编辑/etc/inetd.conf,去掉ssh前的#,保存退出.
    编辑/etc/rc.conf,最后加入:
1
2
3
4
sshd_enable="yes"

#启动sshd服务:
/etc/rc.d/sshd start

netstat -an 检查服务是否启动,22端口有无sshd服务监听。
编辑/etc/ssh/sshd_config,在末尾加上如下内容:

1
2
3
4
5
PermitRootLogin yes #允许root通过sshd登陆

PermitEmptyPasswords no  #不允许空密码

PasswordAuthentication yes

重新启动sshd服务:

1
/etc/rc.d/sshd restart
  1. 给root加上密码
    passwd

  2. ssh 登录

    1
    ssh -p 8822 root@localhost
  3. 设置IP地址、网关

    1
    2
    3
    4
    vi  /etc/rc.conf   #编辑
    ifconfig_em0="inet 192.168.1.173  netmask 255.255.255.0"  #设置IP地址,子网掩码
    defaultrouter="192.168.1.1"   #设置网关
    hostname="FreeBSD"   #设置主机名字

设置DNS

1
2
3
4
5
6
vi /etc/resolv.conf  #编辑
nameserver 8.8.8.8
nameserver 114.114.114.114
# 保存退出
sh /etc/rc   #重启网络
/etc/netstart  #重启网络

现在FreeBSD已经可以上网了!

  1. 安装 vim等软件包
    pkg 二进制软件包管理工具,
    pkg upgrade : 升级pkg到最新版本
    pkg update : 更新软件包信息库
    pkg help [package]
    pkg search [package]
    pkg info [package]
    pkg install [package]
    pkg delete [package]

  2. 使用国内pkg源

    1
    vim /etc/pkg/FreeBSD.conf

修改为:

1
url: "pkg+https://mirrors.ustc.edu.cn/freebsd-pkg/FreeBSD:11:amd64/quarterly",

  1. 安装bash

    1
    pkg install bash
  2. 安装 nvm, node.js

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
    source .profile
    #安装编译环境:
    pkg gcc gmake

    nvm install v10.16.0 #编译安装,花费较长时间
    pkg install node-11.13.0
    pkg install npm
    npm install -g pm2 coffeescript
  3. 安装nginx

    1
    pkg install nginx

配置文件目录:/usr/local/etc/nginx/nginx.conf

  1. 修改用户默认的shell

默认为 /bin/csh

1
# chsh       # 进入编辑环境,修改Shell 为 /usr/local/bin/bash 即可,保存退出,重新登录生效

  1. 安装 mongodb

    1
    2
    3
    4
    5
    6
    7
    8
    9
    sudo pkg update -f  # 更新源库
    sudo pkg install mongodb # 安装
    sudo vi /etc/rc.conf # 配置自启动
    # 加入 mongod_enable="YES"

    # /usr/local/etc/mongodb.conf # 配置文件路径
    sudo service mongod start # 启动
    sudo service mongod restart # 重启
    sudo service mongod stop # 停止
  2. 安装redis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar zxvf redis-5.0.5.tar.gz
cd redis-5.0.5
gmake
gmake install clean
cp redis.conf /usr/local/etc/redis.conf

vim /usr/local/etc/redis.conf
# 修改为:
damemonize yes
logfile /var/log/redis/redis.log
dir /var/lib/redis

#创建启动脚本:
cd /usr/local/etc/rc.d/
vim redis

输入:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/sh

#

# $FreeBSD: branches/2018Q4/databases/redis/files/redis.in 401020 2015-11-07 20:08:18Z osa $

#

# PROVIDE: redis

# REQUIRE: LOGIN

# BEFORE: securelevel

# KEYWORD: shutdown

# Add the following line to /etc/rc.conf to enable `redis':

#

#redis_enable="YES"

#

# Define profiles here to run separate redis instances:

#

#redis_profiles="foo bar" # Script uses /usr/local/etc/redis-NAME.conf respectively.

# For correct script working please update pidfile entries in

# redis-NAME.conf files.

. /etc/rc.subr

name="redis"

rcvar="${name}_enable"

extra_commands="reload"

command="/usr/local/bin/redis-server"

pidfile="/var/run/redis/$name.pid"

# read configuration and set defaults

load_rc_config "$name"

: ${redis_enable="NO"}

: ${redis_user="root"} # can custom other user after create new user

: ${redis_config="/usr/local/etc/$name.conf"}

command_args="${redis_config}"

required_files="${redis_config}"

_profile_exists() {

for _p in ${redis_profiles}; do

[ "${_p}" = "$1" ] && return 1;

done

return 0

}

if [ $# -eq 2 ]; then

_profile=$2

_profile_exists $_profile

_exists=$?

[ ${_exists} -ne 1 ] && {
echo "`basename /usr/local/etc/rc.d/redis`: no '$2' in 'redis_profiles'"
exit 1
};

echo "-- Profile: ${_profile} --"

config_file="/usr/local/etc/${name}-${_profile}.conf"

command_args="${config_file}"

pidfile="/var/run/redis/${_profile}.pid"

required_files="${config_file}"

elif [ -n "${redis_profiles}" ]; then

_swap=$*; shift; _profiles=$*

_profiles=${_profiles:-${redis_profiles}}

set -- ${_swap}

for _profile in ${_profiles}; do

/usr/local/etc/rc.d/redis $1 ${_profile}

done

exit 0

fi

run_rc_command "$1"

1
2
3
4
5
6
7
8
chmod +x redis # 加执行权限
mkdir /var/log/redis # 创建日志目录
mkdir /var/lib/redis # 创建db目录

# 加入自启动
vim /etc/rc.conf
#加入:
redis_enable="YES"
  1. pm2 支持很好,包括pm2 startup

  2. 安装的软件配置文件路径: /usr/local/etc
    服务启动脚本文件路径: /usr/local/etc/rc.d/