最近闲来无事,趁着腾讯云搞活动,整了台服务器,正好复习一下之前的知识,搬砖归搬砖,也要开开心心的搬。
环境安装
作为一名前端开发,接触服务器比较少,下面这些安装环境的方法可能不正规,但是对于自己学习来说,可以熟悉整个流程,还请大家多多指教。下面是以centos 8 为基础安装的
1. docker
为什么装docker呢,我也不知道,但是就是觉得想试着用下,顺便学习下docker的基本用法
安装呢我是按着docker官网的教程来的,由于是新服务器,基本一次就下来了
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
就是按着顺序装下来就ok了
常用的docker命令
docker images // 查看镜像
docker container ls //查看容器
docker pull xxx // 拉取镜像
docker image rm xxx // 删除镜像
docker rm xxx //删除容器
docker run // 启动
2. 安装node
前端嘛,node肯定是需要的,下面记录下怎么在centos上装node,简单但是我怕忘了,记录下
对了,我是先装的nvm,用nvm安装的node
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
3. 搭建npm私库
为什么要搭建私库呢,试问哪个前端不想拥有一个私库,开个玩笑,其实在公司使用npm私库,可以把重用的业务代码发成npm包,提高代码复用,etc...好处很多就不一一列举了,下面看看怎么装
安装
私库的搭建有很多种方式,我们采用verdaccio来搭建,有两种方式,
- 使用npm全局安装
npm i verdaccio -g
安装完verdaccio我们需要改下配置文件conf.yaml,将listen监听的地址改为0.0.0.0:${prot},端口随意,之前的localhost启动服务之后外网是访问不到的
全局安装完我们需要一个守护程序,要不进程一关私库服务就停了,这里我们使用的pm2
npm i -g pm2
安装完pm2后,我们可以使用下面命令来启动
pm2 start verdaccio
注意: 启动之后如果外网访问不到,看下服务器是否开放对应的端口
- 使用docker安装 npm的方式安装很简单,但是docker装了不能不用不是
docker pull verdaccio/verdaccio
用docker搭建要注意数据持久化
首先新建文件来存储配置信息以及缓存安装过的包,我们将文件建到/data下
mkdir verdaccio && cd verdaccio
mkdir conf && mkdir storage
cd conf
touch htpasswd
touch config.yaml
vim config.yaml
在config.yaml中增加下面👇的配置
# path to a directory with all packages
storage: ./storage
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
max_users: -1
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npm.taobao.org
packages:
'@*/*':
# scoped packages
access: $authenticated
publish: $authenticated
proxy: npmjs
'*':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $authenticated
# allow all known users to publish packages
# (anyone can register by default, remember?)
publish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
# log settings
logs:
- {type: stdout, format: pretty, level: http}
#- {type: file, path: sinopia.log, level: info}
listen:
- 0.0.0.0:4873
这套配置是只有登陆的用户才能访问,并且不允许注册,那怎么用?别急下面我们会有增加用户的方法
然后启动
docker run --name verdaccio -d -v /data/verdaccio/conf:/verdaccio/conf -v /data/verdaccio/storage:/verdaccio/storage -p 4873:4873 verdaccio/verdaccio
如果发现配置不生效或其他问题看看建的verdaccio文件权限是否正确
此时打开浏览器,访问http:xx.xx.xx.xx:4873,看到下面的截图就算成功搭建了
权限
上面我们把配置文件设置成不允许注册,下面我们用其他方式来做注册用户
注册方式提供了两种
- 可以通过官方提供的在线工具生成字符串,放到我们之前创建的verdaccio/conf/htpasswd文件中即可
- 可以通过
htpasswd-for-sinopia包来注册用户
npm i -g htpasswd-for-sinopia
安装完包后,在之前的htpasswd目录下执行下面命令,一步步按着提示进行即可
sinopia-adduser
至此我们的verdaccio一件搭建完成,现在这种权限控制略显笨拙,到后面我们再想办法优化
4.mysql
前端还要用mysql?玩玩而已,不必认真。面试的时候问职业规划,谁还没说过想做全栈。
我们使用docker来安装mysql
docker pull mysql:8
和verdaccio一样,mysql也必须做数据持久化,要不服务器一挂,数据全丢了,这就尴尬了
我们在/data文件下新建几个文件
mkdir mysql && cd mysql
mkdir config && mkdir data
cd config
vi my.conf
配置以下内容
[mysqld]
user=root
character-set-server=utf8
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
启动容器
docker run -d -p 3306:3306 --restart always --privileged=true --name test_mysql -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/config/my.conf:/etc/my.cof -v=/data/mysql/data:/var/lib/mysql mysql:8
在电脑上装一个可视化工具,连接一下试试,不出意外应该没问题了
5. nginx
安装nginx为了之后能方便我们部署一些服务
安装
在centos上安装nginx很简单,也很方便,只需要输入下面的命令
yum -y install nginx
常用命令
systemctl enable nginx // 设置开机启动
service nginx start // 启动 nginx
service nginx stop // 停止 nginx
service nginx restart // 重启 nginx
service nginx reload // 重新加载配置
小结
我们已经安装这些环境,但是还没具体用起来,后续的计划是
- 脚手架开发
- js类库搭建
- 组件库搭建
- ci/cd自动发布
- 基于egg.js以及vue3开发一个低代码玩具 以后会一点一点更新,算是记录一下过程。