临近 618 年中大促,各大云服务商也会提供一些优惠。正好我三年前在腾讯云上买的一台 2 核 4G 的虚拟机到期了,看了一下腾讯云的优惠活动,下单了一台 2 核 4G 的的轻量应用服务器(一年期,288 元)。
轻量应用服务器一般都会提供一些常见的镜像(Wordpress
,LAMP
等),我的目的不是建站,所以还是选了朴素的 Ubuntu18.04
的基础镜像。
下面大致介绍一下我配置服务器的过程(安装及配置方法基本来源于对应工具官网)。
轻量应用服务器默认是从腾讯云控制台直接登录到终端,可以将自己的公钥加到 ssh
配置里。
# Remote
cat PUBLIC_KEY >> ~/.ssh/authorized_keys
为了方便登录,可以配置自己主机的ssh config
文件,随后就可以通过ssh light
命令登录到服务器。
# ~/.ssh/config
Host light
HostName 1.2.3.5
Port 22
User lighthouse
<!-- more -->
事实上我可以直接通过命令更新到 20.04,不过根据历史经验服务器直接升级系统不是很稳定,我还是只进行了基本的系统软件更新。
sudo apt update
ssh apt dist-upgrade
oh my zsh!
oh my zsh!
比起默认的bash
还是要好用一点,并且可以很方便地进行配置。
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
基础的gcc
,g++
,make
等构建工具链可以通过安装build-essential
来获得。
sudo apt install build-essential
ubuntu 18.04 自带的 Python 版本还是老了一点。我个人还是非常依赖Python 3.8
及以上版本的新语言特性的。在 Linux 平台上安装多版本的 Python,最方便的就是使用pyenv
工具了。
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
pyenv
curl https://pyenv.run | bash
安装好 pyenv
后需要按照提示设置一下.zshrc
。
pyenv
pyenv install 3.9.5
pyenv install 3.10.0b2
pyenv gloabl 3.9.5
python -m pip install -U pip # 升级pip
pip install pipenv poetry iredis httpie prm -i https://mirrors.cloud.tencent.com/pypi/simple
pipenv
,poetry
用于项目和虚拟环境理(我个人不喜欢用virtualenv-wrapper
)。
httpie
是一个很好用的 curl
替代工具。
iredis
是一个交互友好的 redis-client
替代工具。
prm
是一个管理默认pypi
源的工具(作者是我本人)。
docker
和 docker-compose
docker
本身或许不是必要的,但我现在习惯使用容器部署 redis
和 mongodb
实例,并使用 docker-compose
管理。
docker
# 安装依赖
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# 引入官方GPG-KEY
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 配置apt源
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 配置非root用户管理docker
sudo usermod -aG docker light
docker-compose
# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改权限
sudo chmod +x /usr/local/bin/docker-compose
rust
及相关工具身为一个 rust
爱好者,我在大部分的环境下都安装了 rust
工具链和一些列使用 rust
编写的命令行工具。
rust
工具链curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
实际上下面有些工具是可以直接下载二进制文件的,使用cargo install
会花费大量的编译时间。
python -m http.server
)我个人还是比较喜欢 deno
的一些理念的,希望这台服务器上可以不用安装node.js
。
curl -fsSL https://deno.land/x/install/install.sh | sh
安装方式可以通过官网和搜索引擎获取,只是部署相关服务的话建议使用容器。
配置一台开发服务器还是比较麻烦的,以后有空的话或许可以研究一下ansible
。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。