在一个裸的Ubuntu server中我做了哪些

5,642 阅读4分钟

本文是记录笔者在一个裸的Ubuntu server系统中做了哪些东西。主要有安装node环境,nginx,到部署前端项目。

前期准备:瞎折腾系列之树莓派安装/登录

切换用户

添加root用户

sudo passwd root

image.png 切换root用户

su

image.png

切换普通用户

su ubuntu

看一下此时的目录结构

image.png 如果直接用root账户操作,会有误操作的风险。所以一般新建一个用户,并给其root权限。避免翻车~

创建一个新用户:
adduser [username]
添加root权限
usermod -aG sudo cwl

image.png

安装Nginx

我当前没有nginx

image.png

更新软件包 开始的时候用apt update居然被拒绝了,然后尝试加了个sudo才可以,并且还要让我输密码,我不是已经添加到sudo组里面了吗?不太清楚这里的关系

image.png 再尝试一遍,还是不得行

image.png

算了,直接用sudo apt update吧。更新完之后就可以安装nginx了。

sudo apt install nginx -y 

nginx安装完成 image.png

image.png

安装git

安装git之后,我们同步代码就比较方便,不然要用ftp的方式复制代码到线上去。如果用git,直接就可以拉取代码。

sudo apt install git -y

安装完成后,就可以使用git命令

image.png

配置ssh-key,生成公钥

image.png 使用cat命令查看公钥并复制到我们的git上去

image.png

image.png

安装node环境

sudo apt install node -y

image.png 发现它居然没有node这个包,噢!原来他叫nodejs,出现了相关的版本信息

image.png

sudo apt install nodejs -y

image.png

安装npm

sudo apt install npm -y

设置淘宝镜像

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

image.png

npm i -g nrm

咋换个源安装nrm管理node版本还不行呢,算了,还是不用淘宝的源了,还是换回去吧。哎,试试手动换源 清华源地址

image.png 然后

sudo apt-get update && apt-get upgrade

咋换个源还不行了呢,哎,留个坑! 换源后404

image.png

部署前端页面

用xftp这个软件来进行文件的上传,但是使用root账号时用户拒绝访问。

image.png

  1. 执行该命令,修改配置文件
    sudo vi /etc/ssh/sshd_config
    点击i切换至编辑模式,找到#Authentication,修改PermitRootLoginPasswordAuthentication参数
    这两个参数如果前面有#,则去除#;如果没有,则添加
    PermitRootLogin yes
    PasswordAuthentication yes
    点击esc,输入:wq,点击Enter
  2. 执行该命令,重启ssh服务
    sudo service ssh restart

登录成功,然后我们可以使用ftp上传文件了

image.png

image.png 我这里是直接将dist打包好的文件直接上传了,也可以通过git拉取代码然后直接打包,更厉害的还可以自动化拉取代码,只要我推到git上了,就可以同步更新。笔者以后再尝试。

然后我们修改nginx默认配置文件就好了

image.png

使用FTP工具登录到服务器之后可以看到 sites-enabled 文件夹下默认有一个default,但是上面有一个类似快捷方式的图标,实际上这是一个软链接,链接的文件在 sites-available中。 PS:当我们更改sites-available中的default文件后,会发现sites-enabled中的default文件也同步改变。 我们可以直接修改sites-available的default 来设置第一个站点,我们通过FTP工具把这个文件下载下来修改之后再上传。

这里笔者采用的是最最最简单的部署方式,直接使用的是nginx的默认80端口,只是把资源路径换了一下而已。

server {
	listen 80 default_server;
	listen [::]:80 default_server;
        
        # dist文件目录
	root /var/www/html/dist;
        
        # 先匹配index 再匹配index.html .......
	index index.html index.htm index.nginx-debian.html;

	server_name _;
        
        # 没有对应的路径就是404
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}
}

配置文件修改完成之后,运行下面三条指令

sudo /usr/sbin/nginx -t # 检查配置是否正确

sudo /usr/sbin/nginx  # 启动服务

sudo /usr/sbin/nginx -s reload # 重新载入配置

访问成功 image.png

问题遗留

  1. 使用清华源换源之后还是不太行,不知道为啥子
  2. nginx多个站点部署,怎么在部署大型项目时更加的规范

这周的瞎折腾就到此为止吧,溜了,要去复习计网和写实验报告了,不弄就来不及了(哭了!)