前端工程师怎么从0开始配置一个服务器

  • Post author:
  • Post category:其他




前言

昨天在服务器搭建

vpn

的时候,不负众望的又爆掉了,作为一个纯前端工程师,搭建服务器这条路走的果然异常艰辛,前前后后因为各种问题已经挂掉两次了。究其原因,不外乎对运维知识毫无了解,自己摸索然后踩了无数的坑。然而自己也在不断地错误中对知识掌握的更加深刻。这次服务器初始化实例,也终于有机会从0开始记录一下自己搭建网站的全过程,这么想来居然也是一个不错的机会。好了废话就到这里,下面正文开始。



搭建步骤

本篇博客我们会从下面几个步骤去搭建服务器


  • wget

    :安装一些系统常用的软件

  • zsh

    :首先就是配置

    shell

    了,系统自带的

    shell

    实在是太难用。

  • ssh

    :接下来配置

    ssh

    、方便我们使用自己的电脑管理服务器。

  • vim



    python3

    : 这里升级

    vim8

    ,需要用到

    python3

    的环境
  • 开一个普通用户,下面的操作我们都在普通用户中进行。

  • ftp

    :用于传输文件等

  • Docker

    :这里配置

    Docker

    及项目服务



基础配置

  • 首先更新一下

    yum
$ yum update

在这里插入图片描述

  • 然后安装一些常用的系统软件,这里我的系统里预装过了
$ yum install curl wget

在这里插入图片描述

安装

git

$ yum install git
  • 配置

    yum

    国内源

我们首先备份原配置

$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载网易的源然后改名放到

/etc/yum.repos.d/

目录

对应系统需要下载对应的文件

CentOS5:

http://mirrors.163.com/.help/CentOS5-Base-163.repo


CentOS6:

http://mirrors.163.com/.help/CentOS6-Base-163.repo


CentOS7:

http://mirrors.163.com/.help/CentOS7-Base-163.repo

$ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

$ mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
  • 安装

    zsh


    我们刚连接的服务器是灰色的,界面简直 low 到爆,为了更高的效率和更好的心情,我们配置一个好看的

    shell
$ yum install zsh

查看本机中的

shell

$ cat /etc/shells

在这里插入图片描述

没有问题的话继续安装

on-my-zsh

// 下面都可以安装,选择其一即可
$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

$ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

出现下面标志性的界面就成功了

在这里插入图片描述

更改默认的 shell

// 查看当前的 shell
$ echo $SHELL

// 更改默认的 shell 
$ sudo chsh -s /bin/zsh

在这里插入图片描述

重启服务器,然后连接,可以看到界面已经变了,瞬间舒服很多

在这里插入图片描述

然后挑一款自己喜欢的主题修改就好了,我这里使用的是

cloud



主题列表

修改方法如下

$ vim ~/.zshrc

修改字段

ZSH_THEME="cloud"

,然后保存更新配置

$ source ~/.zshrc
  • 配置

    ssh

    连接

    我们首先去阿里云的控制台查看,

    22

    端口是配置过安全组,可以对外访问的

    在这里插入图片描述

    根据不同系统,配置连接就。


windows

用户需要下载

Xshell

,安装时选择学习使用不需要激活,然后新建一个连接就可以使用了

在这里插入图片描述

在这里插入图片描述


Mac

下直接使用终端就可以连接,输入

ssh <用户 root>@<主机 ip 地址>

然后输入密码就可以,例如

ssh root@0.0.0.0

在这里插入图片描述

注意的是,终端连接服务器长时间不操作会中断连接。

Xshell

的话,我目前还没有遇到,长时间不操作也是连接着的。

  • 添加一个普通用户
$ adduser test
$ passwd test

在这里插入图片描述

然后设置用户权限,使用户可以使用

root

命令

这里

/etc/sudoers

是默认只读的,切换到

root

用户先去把权限修改了

// 提示 cmooand not found
$ sudoers

// 查找文件位置
$ whereis sudoers

// 查看权限
$ ls -l /etc/sudoers

// 修改权限
$ chmod -v u+w /etc/sudoers

在这里插入图片描述

添加你的新用户

$ vim /etc/sudoers

在这里插入图片描述

然后把权限写回

$ chmod -v u-w /etc/sudoers

在这里插入图片描述

这时我们的普通用户就已经有

sudo

的权限了

然后我们

su

进入用户后,发现

shell

还是使用自带的,非

root

用户每次安装的目录都是

/root/.oh-my-zsh

导致非 root 用户

oh-my-zsh

没有效果,这里需要手动安装,步骤如下

下载代码到指定位置

$ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

更新配置文件(

重要

$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

修改默认

shell

// 查看当前的 shell
$ echo $SHELL

// 更改默认的 shell 
$ sudo chsh -s /bin/zsh

如果修改失败使用下面的命令修改,

test

修改为你的用户名

$ sudo usermod -s /bin/zsh test

在这里插入图片描述

然后重新进入用户,这里默认的

shell

已经修改了

在这里插入图片描述

这里每个系统用户的配置是不一样的,按照上面的修改方法自行修改主题配置就可以了

  • 升级

    vim

    到版本 8

先简单介绍下,

yum

只可以使用

python2.7

的版本,而

vim8

需要

python3

的版本,这里配置坑很多,要多多注意

首先我们查看 跑

python

安装在什么地方

$ whereis python

在这里插入图片描述

查看信息,可以看到

python

默认是指向

2.7

版本的

$ ll /usr/bin/python*

在这里插入图片描述

这里我们配置

python

指向

3



python3

指向

3



python2

指向

2

首先安装

python3

的编译环境

$ yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 

下载

python3

的包

$ wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz

添加

epel

扩展源

$ yum -y install epel-release

安装pip

$ yum install python-pip

变异

python3

的源码包

// 解压
$ xz -d Python-3.6.4.tar.xz
$ tar -xf Python-3.6.4.tar

// 进入解压后的目录
// 依次执行下面命令进行手动编译
$ cd Python-3.6.4
$ ./configure prefix=/usr/local/python3
$ make && make install

添加软链接

// 将原来的链接备份
$ mv /usr/bin/python /usr/bin/python.bak

// 添加 python3 的软链接
$ ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

// 测试,如果出现 3 点多的版本则成功
$ python -V

更改

yum

的配置,

yum

需要

python2

的依赖

把下面文件中第一行的

python

改为

python2

$ vi /usr/bin/yum
$ vi /usr/libexec/urlgrabber-ext-down

下面就可以升级

vim

下载源码

$ git clone https://github.com/vim/vim.git

编译

$ cd vim
$ ./configure  --enable-pythoninterp=yes
$ make -j 8
$ make install
$ cp src/vim /usr/bin

都跑完以后查看一下版本

在这里插入图片描述

看到已经是

8.1

安装一些必要的系统工具

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

安装

Docker

$ yum -y install docker

启动

Docker

服务

$ service docker start

// 开机自启动
$ systemctl enable docker

安装镜像加速,加快获取官方镜像的速度

$ vim /etc/docker/daemon.json

添加如下配置

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

镜像地址去找阿里云或者网易的都可以,阿里云的主机还有独自的镜像地址,如下图,有服务器的可以去查找

上面的示例代码使用网易的镜像地址

在这里插入图片描述

查看服务启动情况

$ systemctl list-units --type=service

在这里插入图片描述

如果有错误的话,按照下面日志排查错误

// 查看日志
$ cat /var/log/nginx/error.log

// 查看启动错误信息,可以查询到 Systemd 的启动日志
$ journalctl -xe



错误处理

  • yum 损坏重新安装

    我在配置

    python

    的时候把

    yum

    损坏了,这里先贴出

    yum

    的安装方法

删除原来的旧包

$ rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
$ whereis yum |xargs rm -frv

去这里的地址找到下面四个包,版本号会更新所以需要自己去页面中找,

地址传送门


1、

yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm


2、

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm


3、

yum-3.2.29-81.el6.centos.noarch.rpm


4、

python-iniparse-0.3.1-2.1.el6.noarch.rpm


下载命令

$ wget url

例如下载第一个包,如下

$ wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm

把上面的包下载到服务器的随便一个文件夹

在这里插入图片描述

然后使用

rpm

安装对应的包

$ rpm -ivh yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm

这里如果有依赖错误的话,加

--nodeps

执行命令,如下

$ rpm --nodeps -ivh yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm



yum-plugin-fastestmirror-1.1.30-41.el6.noarch.rpm



yum-3.2.29-81.el6.centos.noarch.rpm

需要同时安装

进入

/etc/yum.repos.d

文件夹下更新配置

$ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

删除原来的配置文件

$ rm -rf CentOS-Base.repo

修改新配置文件名

$ mv CentOS7-Base-163.repo  CentOS7-Base.repo

然后就可以了

  • Postfix 服务启动失败

    执行 journalctl -xe 命令后发现如下报错
parameter inet——interfaces: no local interface found for :: 1

修改方法

$ vim /etc/postfix/main.cf

修改文件配置

inet_interfaces: all
inet_protocol: all

重启服务,然后就没问题了



版权声明:本文为qq_25243451原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。