Gin-vue-Admin项目部署安装到linux或群辉所需知识

查看当前git的仓库地址

git remote show origin
复制代码

127.0.0.1查看charles代理请求时 用下面的地址

http://localhost.charlesproxy.com
复制代码

node js是什么?

一个基于Chrome V8引擎的[JavaScript]运行环境,使用了一个[事件驱动]、非阻塞式I/O模型,
让JavaScript 运行在[服务端]的开发平台,它让JavaScript成为与[PHP]、[Python]、[Perl]、[Ruby]
等服务端语言平起平坐的[脚本语言]
复制代码

npm是什么

NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。
复制代码

查看npm版本号

npm -v
复制代码

查看node版本号

node -v
复制代码

vite是什么?

vite是下一代[前端]开发与构建工具。 [1][ ]() Vite意在提供开箱即用的配置,同时它的[插件]
API和[JavaScript ]API 带来了高度的可扩展性,并有完整的类型支持。
复制代码

Viper是什么?

Viper 是 Go 应用程序现代化的、完整的解决方案,能够处理不同格式的配置文件,
让我们在构建现代应用程序时,不必担心配置文件格式。
几乎所有的后端服务,都需要一些配置项来配置我们的服务,一些小型的项目,配置不是很多,
可以选择只通过命令行参数来传递配置。但是大型项目配置很多,通过命令行参数传递就变得很麻烦,
不好维护。标准的解决方案是将这些配置信息保存在配置文件中,由程序启动时加载和解析。
Go 生态中有很多包可以加载并解析配置文件,目前最受欢迎的是 Viper 包。
复制代码

什么是Express

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
复制代码

查看nginx版本号

nginx -v
复制代码

查看nginx版本(管理员权限)

sudo nginx -v
复制代码

群辉启动nginx

nginx
//加sudo是用管理员权限启动
sudo nginx
复制代码

linux文件权限修改详细教程

常用方法

chmod 777 文件夹或文件名
//带sudo是以管理员权限运行
sudo chmod 777 error_default.log
复制代码

点击浏览

访问群辉ddns网络地址 xxx.synology.me自动跳转到dsm网页的原因

/etc/nginx/nginx.conf文件中。

nginx 服务器server节点下80端口配置了如下代码
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        gzip on;
        location ~ ^/volume(?:X|USB|SATA|Gluster)?\d+/ {
            internal;
            root /;
            open_file_cache off;
            include conf.d/x-accel.*.conf;
        }
        include conf.d/alias.*.conf;
        include /usr/syno/share/nginx/conf.d/www.*.conf;
        include conf.d/www.*.conf;
        location = /webdefault/images/logo.jpg {
            alias /usr/syno/share/nginx/logo.jpg;
        }
        error_page 403 404 500 502 503 504 /dsm_error_page;
        location /dsm_error_page {
            internal;
            root /usr/syno/share/nginx;
            rewrite (.*) /error.html break;
            allow all;
        }
        location ^~ /.well-known/acme-challenge {
            root /var/lib/letsencrypt;
            default_type text/plain;
        }
        include conf.d/.location.webstation.conf*;
        location / {
            etag off;
            root /var/tmp/nginx/html;
            rewrite (.*) /redirect.html break;

        }
    }
复制代码

其中/var/tmp/nginx/html/redirect.html中做了如下操作,所以能自动跳转到DSM网页

<!DOCTYPE html>
<html>
    <body>
        <input type="hidden" id="http" name="http" value="10086">
        <input type="hidden" id="https" name="https" value="10010">
        <input type="hidden" id="prefer_https" name="prefer_https" value="false">
    </body>
    <script type="text/javascript">
        var protocol=location.protocol;
        var port=location.protocol === "https:" ? 10010 : 10086;
        var URL=protocol+"//"+location.hostname+":"+port+"/";
        location.replace(URL);
    </script>
</html>
复制代码

启动vi编辑器编辑文件

sudo vi nginx.conf
//增加你自己的配置
/volume1/homes/634534398/ginVueAdmin/dist
复制代码

nginx修改配置文件后重载

sudo nginx -s reload
复制代码

MAC电脑查看端口号被占用并杀死相应的进程

通过终端命令
命令 lsof -i tcp:port (port替换成端口号,比如6379)可以查看该端口被什么程序占用,
并显示PID,方便KILL(kill pid)

1.查看端口被哪个程序占用
sudo lsof -i tcp:port
如: sudo lsof -i tcp:8082
2.看到进程的PID,可以将进程杀死。
sudo kill -9 PID
如:sudo kill -9 3210
复制代码

利用ssh上传下载文件到linux服务器

在linux下一般用scp这个命令来通过[ssh]传输文件。
1、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
例如scp [email protected]:/var/www/test.txt  
#把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)
2、上传本地文件到服务器
scp /path/filename username@servername:/path   
例如scp /var/www/test.php [email protected]:/var/www/  
#把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中
3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
例如:scp -r [email protected]:/var/www/test  /var/www/  
4、上传目录到服务器
scp  -r local_dir username@servername:remote_dir
例如:scp -r test  [email protected]:/var/www/   
#把当前目录下的test目录上传到服务器的/var/www/ 目录
注:目标服务器要开启写入权限。
复制代码

MAC电脑用FileZilla进行与linux电脑之间的文件传输

复制代码

go-gin下配置vueweb目录

package main

import (
  "github.com/gin-gonic/gin"
)

func main(){
  r := gin.Default()

  //下行image是前端显示路径,后面的参数是相对于服务器的具体文件夹。
  r.StaticFS("/image", http.Dir("./static/image"))
  r.StaticFS("/assets", http.Dir("./dist/assets"))
  r.StaticFS("/gva", http.Dir("./dist/gva"))
  r.StaticFS("/js", http.Dir("./dist/js"))
  r.StaticFile("/", "./dist/index.html")
  
  r.Run(":8080")
}
复制代码

gin静态资源加载

Static只能展示文件,比如展示图片等
StaticFS可以连目录也一起展示
-   `router.Static` 指定某个目录为静态资源目录,可直接访问这个目录下的资源,url 要具体到资源名称。
-   `router.StaticFS` 比前面一个多了个功能,当目录下不存 index.html 文件时,会列出该目录下的所有文件。
-   `router.StaticFile` 指定某个具体的文件作为静态资源访问。
func main() {
    router := gin.Default()
    router.Static("/assets", "./assets")
    router.StaticFS("/more_static", http.Dir("my_file_system"))
    router.StaticFile("/favicon.ico", "./resources/favicon.ico")

    // 监听并在 0.0.0.0:8080 上启动服务
    router.Run(":8080")
}
复制代码

在 Mac、Linux、Windows 下Go交叉编译

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。

Mac 下编译 Linux 和 Windows 64位可执行程序

                GOOS=linux GOARCH=amd64 go build -o test main.go//这个执行成功了,可能是运气把?
1 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

3 go build -o server main.go //编译带输出文件文件名
复制代码

Linux 下编译 Mac 和 Windows 64位可执行程序

1 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
2 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
复制代码

Windows 下编译 Mac 和 Linux 64位可执行程序

1 SET CGO_ENABLED=0
2 SET GOOS=darwin
3 SET GOARCH=amd64
4 go build main.go
5 
6 SET CGO_ENABLED=0
7 SET GOOS=linux
8 SET GOARCH=amd64
9 go build main.go
复制代码
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它

上面的命令编译 64 位可执行程序,你当然应该也会使用 386 编译 32 位可执行程序
很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,
且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的 Go 版本已默认支持所有平台。
复制代码

查看MAC端口占用及关闭

  • 查看端口被哪个程序占用
sudo lsof -i tcp:port\
如: sudo lsof -i tcp:8082
复制代码
  • 2.根据进程的PID,将进程杀死。
sudo kill -9 PID\
如:sudo kill -9 3210
复制代码

查看linuxcpu信息

cat /proc/cpuinfo
复制代码

cpu信息解读

processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于[多核]处理器则可以是物理核、
或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商
cpu family :CPU产品系列代号
model:CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频
stepping   :CPU属于制作更新版本
cpu MHz   :CPU的实际使用主频
cache size   :CPU二级缓存大小
physical id   :单个CPU的标号
siblings       :单个CPU逻辑物理核数
core id        :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores    :该逻辑核所处CPU的物理核数apicid          :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu             :是否具有浮点运算单元(Floating Point Unit)
fpu_exception  :是否支持浮点计算异常
cpuid level   :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp             :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags          :当前CPU支持的功能
bogomips   :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size  :每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes     :可访问地址空间位数
复制代码

查看cpu架构

//执行一下命令,查看cpu架构
arch
uname -m
uname -a
dpkg --print-architecture
复制代码

x86_64就是amd64

linux sudo -i 命令

**sudo -i**
sudo -i是Linux终端命令下改变用户对命令使用权限的命令,例如,在Linux命令终端中,开始为“user@ubuntu:~$”,当使用该命令后,会出现输入密码的提示,之后输入密码,就会变为“root@ubuntu:~#”,这样就是改变了用户对一些命令的权限。
复制代码

获取群晖ROOT权限+可视化管理群晖主机全部文件

linux如何启用root并修改密码?

  1. 在下面文件中,找到PermitRootLogin prohibit-password并将后面的参数改为yes,保存退出。
/etc/ssh/sshd_config 
sudo vim /etc/ssh/sshd_config
找到并用#注释掉这行:PermitRootLogin prohibit-password
新建一行 添加:PermitRootLogin yes
重启服务
#sudo service ssh restart
解读一下这两句话吧!
PermitRootLogin yes
允许root登录,设为yes。
PermitRootLogin prohibit-password 
允许root登录,但是禁止root用密码登录
很明显这行是需要被注释掉的!!!
复制代码
  1. 修改root密码
输入下面命令修改root默认密码:
synouser --setpw root xxxxxx 后面的xxxxx 更换成你自己的密码。
输入 reboot 重启群晖
复制代码

群辉ftp root登录配置

# vi /etc/ftpusers
将文件里面的root去掉,重启群辉即可。
复制代码

linux查看某个服务是否存在

ps -ef |grep vsftpd
复制代码

群辉检查端口占用情况并关闭

检查端口占用情况
netstat -anp |grep 8888
关闭
kill -9 pid(上一步查出来的进程号)
复制代码

nohup命令详解

  1. 介绍
nohup英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到  $HOME/nohup.out 文件中。
复制代码
  1. 语法格式
nohup Command [ Arg … ] [ & ]
复制代码
  1. 示例
nohup /root/runoob.sh &
复制代码

nohup详解

群辉nginx配置

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        gzip on;
        location / {
            etag off;
            root /volume1/homes/634534398/ginVueAdmin/dist;
            rewrite (.*) /index.html break;
        }
        location /assets/ {
            root /volume1/homes/634534398/ginVueAdmin/dist/;
        }
        location /gva/ {
            root /volume1/homes/634534398/ginVueAdmin/dist/;
        }
        location /js/ {
            root /volume1/homes/634534398/ginVueAdmin/dist/;
        }
        location  /api {
            proxy_set_header Host $http_host;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            rewrite ^/api/(.*)$ /$1 break;  #重写
            proxy_pass http://127.0.0.1:8888;
        }
    }
复制代码

自动覆盖群辉nginx命令

由于群辉重启后,nginx配置会被重置,所以我们重启后可以手动执行以下命令,使群辉nginx配置用我们自己的。

//地址填写你自己的群辉地址
cp /var/services/homes/634534398/ginVueAdmin/nginx.conf /etc/nginx/
nginx -s reload
复制代码

猜你喜欢

转载自juejin.im/post/7109302813611524109