Ubuntu 16.04 系统基础开发环境搭建

1.安装 Git

sudo apt-get update
sudo apt-get install git

Do you want to continue? [Y/n] Y

git --version

2. 安装 UFW

sudo apt-get install ufw

sudo ufw enable
sudo ufw default deny

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 3306/tcp
sudo ufw allow 27017/tcp
sudo ufw allow 6379/tcp
sudo ufw allow 8000:9000/tcp

3.安装 Nginx

sudo apt-get install build-essential
sudo apt-get install libtool
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install openssl

wget http://nginx.org/download/nginx-1.14.2.tar.gz

tar -zxvf nginx-1.14.2.tar.gz

cd nginx-1.14.2

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

make

sudo make install

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 

ps -ef|grep nginx

curl -L http://127.0.0.1/index.html

vi ~/.profile

INSERT >>>>>>>

export PATH=$PATH:/usr/local/nginx/sbin

source ~/.profile

vi /etc/init.d/nginx.server

COPY INSERT >>>>>>> 

sudo chmod +x /etc/init.d/nginx.server

sudo sysv-rc-conf nginx.server on
  • unable to resolve host iZs3y2byjpi9oxZ 解决方案:
vi /etc/hosts

INSERT >>>>>>>

127.0.0.1       iZs3y2byjpi9oxZ
  • /etc/init.d/nginx.server
#!/bin/sh
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME.server

# If the daemon file is not found, terminate the script.
test -x $DAEMON || exit 0

d_start() {
        $DAEMON || echo -n " already running"
}

d_stop() {
        $DAEMON –s quit || echo -n " not running"
}

d_reload() {
        $DAEMON –s reload || echo -n " could not reload"
}

case "$1" in
    start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
reload)
    echo -n "Reloading $DESC configuration..."
    d_reload
    echo "reloaded."
    ;;
restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
# Sleep for two seconds before starting again, this should give the
# Nginx daemon some time to perform a graceful stop.
    sleep 2
    d_start
    echo "."
    ;;
*)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
    exit 3
    ;;
esac

exit 0

4.安装 NetCore

wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-3.1
  
dotnet --info

5.安装 MySQL

# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

sudo mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

vi /etc/my.cnf

COPY INSERT >>>>>>>

cd /usr/local/mysql

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql ./

sudo bin/mysqld --initialize --user=mysql  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# copy initial password

[Note] A temporary password is generated for root@localhost: kiZI&a&kk6SQ

sudo ./support-files/mysql.server start

ps -ef|grep mysql

./bin/mysql -u root -p
Enter password: kiZI&a&kk6SQ

ALTER USER 'root' @'localhost' IDENTIFIED BY '123456';

CREATE USER 'root' @'%' IDENTIFIED BY '123456';

GRANT ALL ON *.* TO 'root' @'%';

FLUSH privileges;

sudo cp ./support-files/mysql.server /etc/init.d/mysql.server

sudo sysv-rc-conf mysql.server on

vi ~/.profile

INSERT >>>>>>>

export PATH=$PATH:/usr/local/mysql/bin

source ~/.profile
  • /etc/my.cnf
[mysqld]
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password

[mysql]
default-character-set=utf8mb4

[client]
port=3306
default-character-set=utf8mb4

6.安装 NodeJs

wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz

tar xf node-v14.15.1-linux-x64.tar.xz

sudo mv node-v14.15.1-linux-x64 /usr/local/nodejs

cd /usr/local/nodejs

ln -s /usr/local/nodejs/bin/node  /usr/local/bin/
node -v

ln -s /usr/local/nodejs/bin/npm   /usr/local/bin/
npm -v

npm config set registry https://registry.npm.taobao.org

# install pm2
npm install pm2@latest -g
ln -s /usr/local/nodejs/bin/pm2   /usr/local/bin/

sudo pm2 status

7.安装 MongoDB

wget -qO - https://www.mongodb.org/static/pgp/server-3.4.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt-get update

sudo apt-get install -y mongodb-org

sudo service mongod start

sudo service mongod status

sudo service mongod stop

vi /etc/mongod.conf

EDIT >>>>>>>

# network interfaces
net:
  port: 27017
  #bindIp: 127.0.0.1
  bindIp: 0.0.0.0

#security:
security:
  authorization: enabled

sudo service mongod restart

ps -ef | grep mongod

# 进入数据库
mongo
# 用admin身份
use admin
# 创建超级管理员账号
db.createUser( {user: "admin",pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
# 测试授权
db.auth("admin","admin")
# 建库授权
use testdb
# 创建数据库管理账号
db.createUser( {user: "root",pwd: "123456",roles: [ { role: "readWrite", db: "testdb" } ]})
# 授权用户
db.auth("root","123456")
# 数据测试
db.log.insert({"created":"db","name":"testdb"})
db.log.insert({"created":"user","name":"root"})
exit

# 开机自启
sudo systemctl enable mongod
  • /etc/mongod.conf
# mongod.conf

# for documentation of all options, see:
#   https://docs.mongodb.com/v3.4/reference/configuration-options/

# systemLog Options:
systemLog:
  destination: file
  path: "/usr/local/mongodb/log/mongod.log"
  logAppend: true

# processManagement Options:
processManagement:
   fork: true

# net Options:
net:
   port: 27017
   #bindIp: 127.0.0.1
   bindIp: 0.0.0.0

# security Options:
#security:
security:
  authorization: enabled

# setParameter Options:
setParameter:
   enableLocalhostAuthBypass: false

# storage Options:
storage:
   dbPath: "/usr/local/mongodb/data"
   journal:
      enabled: true

# operationProfiling Options:

# replication Options:

# sharding Options:

# auditLog Options:

# snmp Options:

MongDB数据库角色对应如下:

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级账号,超级权限

7.安装 Redis

sudo apt-get install redis-server

Do you want to continue? [Y/n] Y

ps -ef|grep redis

vi /ect/redis/redis.conf

EDIT >>>>>>>

#bind 127.0.0.1
requirepass 123456

service redis-server restart

服务自启配置

sudo apt-get install sysv-rc-conf

# redis-server
sudo sysv-rc-conf redis-server on

# nginx.server
sudo sysv-rc-conf nginx.server on

# mysql.server
sudo sysv-rc-conf mysql.server on

# mongo
sudo systemctl enable mongod

实例软件的版本:

  • nginx-1.14.2.tar.gz

  • packages-microsoft-prod.deb

  • mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

  • node-v14.15.1-linux-x64.tar.xz

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容