WSL的安装,与环境的配置

一、安装WSL

  1. 打开控制面板 -> 程序和功能 -> 启用或关闭Windows功能 -> 勾选 适用于Linux的Windows子系统+虚拟机平台(windows 11的可以使用管理员权限的windows终端 运行 wsl --install 等到 出现卡死不动的时候,强制退出 执行第2步)。

    image.png

  2. 重启电脑。

  3. 下载Linux内核安装。 下载链接:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 下载成功后双击运行,系统将提示你提供提升的权限,选择“是”以批准此安装。

  4. 将WSL2设置为默认版本 终端指令 wsl --set-default-version 2

  5. 然后去windows的应用商店下载Ubuntu系统

  6.  若不想登录自己的windows账号可选着使用Microsoft Store - Generation Project (v1.2.3) [by @rgadguard & mkuba50]网址下载。

            使用方案:

                    1.去windows商店 网页版 选中自己想要下载的应用 复制下载链接

                    2.点击

    image.png

                    3.弹出下载框点击下载

  7. 双击安装

  8. 若安装完成后未出现 终端控制台,则点击安装完成的 图标。

  9. 设置账号密码,注:密码设置时 输入没有东西,不用在意,是密码保护机制。输入完成后直接Enter键

  10. 使用windows终端查询wsl版本号:输入wsl --list --verbose 指令

    image.png

  11. 使用windows终端进入WSL系统,在终端中输入wsl进入系统,若需要密码输入密码即可。

  12. 更改源文件,因为Ubuntu默认的apt是国外的源,下载东西很慢,需要换成国内的镜像

  13. 首先复制源文件 备份,便于后期出现意外 从而恢复:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 查看版本信息

    lsb_release -c

    image.png

  2. 编辑源文件: sudo vim /etc/apt/sources.list

    1. 根据Ubuntu版本号,添加相应的内容

      image.png

       修改的内容如下:

      deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      ​
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      ​
      deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      ​
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      ​
      deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      ​
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      ​
      deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      ​
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      ​
      deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      ​
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

    2. 然后保存退出,指令是按esc键 输入 :wq!

    3. 更新与升级

      sudo apt-get update
      ​
      sudo apt-get upgrade

二、安装SSH环境,方便使用远程连接工具查看虚拟机的文件内容。

        我采用的是xftp工具连接虚拟机。下载xftp工具(免费版)地址:       

        https://www.netsarang.com/en/free-for-home-school/

  1. 使用管理员权限进入系统,或使用

    #切换到 root 用户,然后输入当前用户的密码
    sudo -i

  2. 卸载原来的ssh sudo apt-get remove openssh-server

  3. 重新安装ssh sudo apt-get install openssh-server

  4. 配置ssh_config文件

    1. 打开ssh_config文件 sudo vim /etc/ssh/sshd_config

    2. 配置文件中修改如下的内容:

      Port 36000  #默认的是22,但是windows有自己的ssh服务,也是监听的22端口,这里最好改成大于 1024 的端口
      PasswordAuthentication yes #使用密码登录
      AllowUsers youusername # 这里改成你登陆WSL用的用户名,密码也是这个用户的密码
  5. 重启ssh服务 sudo service ssh restart

  6. 使用xftp连接虚拟机,账号和密码都为虚拟机的账号密码,端口为上面修改的端口号

    image.png

  7. 点击连接,可能需要的点时间,等出现弹出一个框,是要你保存一个密钥的框 直接点击保存 就连接上了。

  8. 至此ssh算是安装完成。

三、安装MySQL数据库

  1. 安装mysql数据库:

    sudo apt install mysql-server-5.7
  2. 测试MySQL是否安装好:

    #启动MySQL服务
    sudo service mysql start
    停止mysql服务
    sudo service mysql stop
  3. 修改mysql的配置文件

    1. 使用指令 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 修改文件

    2. 将文件修改为如下图所示: 添加 skip-grant-tables 实现无密码登录,方便后面的配置

      image.png

    3. 修改mysqld.cnf文件,方便使用navicat连接数据库,修改为如下所示 避免端口冲突

      image.png

  4. 重启MySQL服务: sudo service mysql restart

  5. 登录mysql数据库: mysql -u root -p 直接回车 当前无密码

  6. 执行如下三条指令 设置自己的密码:

    use mysql;
    update user set authentication_string=password("你的密码") where user="root";
    flush privileges;
  7. 查看当前状态:select user,plugin from user;

  8. root用户的密码并为成功修改,于是我们再次修改表单:

    update user set authentication_string=password("你的密码"),plugin='mysql_native_password' where user='root';
  9. 查看修改成功: select user,plugin from user;

  10. 配置远程连接账户:

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    FLUSH   PRIVILEGES;
  11. 退出 :quit

  12. 随后去掉我们之前设置的无密码登陆语句,或者注释掉

    1. sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

    2. image.png

  13. 重启mysql服务,尝试登陆:
    sudo service mysql start 
    mysql -u root -p   
    (密码)
  14. 映射MySQL数据的端口到windows系统

    具体见第十节

四、安装Java环境

  1. 使用远程Xftp工具链接虚拟机。推荐选择/etc/opt目录存放JDK安装包。

  2. 将从官网下载的Linux压缩包上传到指定目录下。

  3. 使用命令解压压缩包 tar xvf jdk-8u202-linux-x64.tar.gz -C

  4. 将解压的文件夹改名为 jdk1.8.0

  5. 配置Java环境变量

    1. 修改环境变量存放的文件 sudo vim /etc/profile

    2. 在末尾添加

      # set java development
      export JAVA_HOME=/etc/opt/java/jdk1.8.0   #Java解压路径
      export JRE_HOME=$JAVA_HOME/jre
      export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    3. 刷新环境变量 source /etc/profile

  6. 测试Java环境 java -version

五、安装Tomcat环境

  1. 将tomcat 9 的Linux压缩包上传到指定目录下

  2. 使用命令解压 tar xvf apache-tomcat-9.0.56.tar.gz -C /tomcat

  3. 进入到 /tomcat/apache-tomcat-9.0.56/bin 下 执行 ./startup.sh 启动tomcat服务

  4. 使用浏览器访问ip+端口访问,

  5. 使用ip addr 查询虚拟机ip

    image.png

  6. 浏览器出现熟悉的tomcat页面 说明tomcat环境安装完成

六、安装nginx

  1. 使用命令行安装 输入以下命令

    sudo apt-get install nginx -y # 安装最新版nginx
  2. 使用 sudo service nginx start 命令检测nginx安装是否完成。

  3. nginx常用的命令

    # 执行nginx配置文件的检测(此命令还有一个用法是当不知道nginx主配置在什么路径下时执行会输出配置文件路径)
    sudo nginx -t 
    
    # 重载nginx配置文件,一般用于修改配置文件后让配置生效
    sudo nginx -s reload 
    
    # WSL下可能需要这种形式重启/重载/启动/关闭
    sudo service ngixn restart|stop|start|reload 

七、使用nginx部署前端Vue项目

  1. 将vue项目中的 vue.config.js 文件中添加

    publicPath: process.env.NODE_ENV === "production" ? '/EmergencyCommandOne' : '/',
  2. 在vue项目中的router\index.js 文件中修改

    constcreateRouter = () =>newVueRouter({
      mode:'history',
      //base: process.env.BASE_URL,
      base:'/EmergencyCommandOne/',
      routes,
      path:'/'
    })
  3. 打包vue项目 生成dis文件夹,将dis文件夹上传到虚拟机的nginx_vue文件夹下(nginx_vue文件夹是我自己创建的)

  4. 修改ngiinx的配置文件,

    1. 配置文件一般放置在 /etc/nginx/sites-available 目录下

    2. 使用sudo vim /etc/nginx/sites-available/default 编辑配置文件

    3. 将配置文件修改为

      server {
        		#nginx的端口配置
              listen 1229 default_server;   
              listen [::]:1229 default_server;
      
        		#项目所在路径全路径
              root /etc/nginx_vue/dist; 
              index index.html index.htm index.nginx-debian.html;
      
              # 这是你部署的ip或是域名
              server_name  localhost;
      
              # 这里配置你前段打包文件的映射路径
              #root /etc/nginx_vue/dist;
              #index index.html index.htm;
      
              #charset koi8-r;
      
              #access_log  logs/host.access.log  main;
      
              location /EmergencyCommand{
                		#将请求连接中有 /EmergencyCommand 匹配到项目文件中去找
                      alias /etc/nginx_vue/dist; 
                      #try_files $uri $uri/ /EmergencyCommand/index.html;
              }
      
              location / {
                  # root   html;
                  try_files $uri $uri/ /etc/nginx_vue/dist;
                  #index  index.html index.htm;
              }
      
              # 6、这里是解决跨域问题,将你后端的地址写在proxy_pass 后面就可以了
              #location /api {
                  # 下面这行也要改为api
                  #rewrite ^.+api/?(.*)$ /$1 break;
                  #proxy_pass http://localhost:8001/;
                  #proxy_redirect off;
                  #proxy_set_header Host $host;
                  #proxy_set_header X-Real-IP $remote_addr;
                  #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              #}
      
              #error_page  404              /404.html;
      
              # redirect server error pages to the static page /50x.html
              #
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
      
              # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  5. 使用** sudo nginx -t **检测配置文件,如下是没问题的配置

    image.png

  6. 重载配置文件 sudo nginx -s reload

  7. 使用虚拟机的ip+nginx端口访问 eg: http://172.31.44.106:1229/EmergencyCommand/

八、使用tomcat服务器部署vue项目

  1. 修改vue项目中的** \router\index.js **文件

    const createRouter = () => new VueRouter({
     mode: 'history',
     base: "EmergencyCommand",//部署的子路径
     routes
    })
  2. 在config文件夹下创建index.js文件,编辑如下

    var path = require('path')
     
    module.exports = {
      build: {
        index: path.resolve(__dirname, '../dist/index.html'),
        assetsRoot: path.resolve(__dirname, '../dist'),
        assetsSubDirectory: 'static',
        assetsPublicPath: '/EmergencyCommand/',
        //productionSourceMap: true
      },
      dev: {
        port: 8089,
        proxyTable: {}
      }
    }
  3. 修改vue.config.js文件:

    image.png

  4. 打包vue项目将生成的dis文件下的文件及文件夹拷贝到tomcat的/webapps/EmergencyCommand 下 EmergencyCommand文件夹是自己创建的项目文件夹,与前面配置的 assetsPublicPath 、 base 的值是一样的。

  5. 重启tomcat服务器,

  6. 使用虚拟机IP+tomcat端口/EmergencyCommand访问项目,若访问出来则成功

九、在使用上述方法部署项目时产生的问题

  1. 静态资源中的css和js文件访问不到:

    1. 参考上述的项目配置就可以解决。

  2. 项目中的图片访问不了(中文名称的图片):

    1. 产生的原因:

      1. 对不同的系统默认编码不是很清楚,不知道Linux系统的编码默认为UTF-8,而windows的是GBK

      2. 对于使用ssh连接的XFTP工具太过依赖,以至于查看文件存放

    2. 解决方案

      1. 使用Linux自带的查看文件命令,去查看文件的名称。确定问题。

      2. 使用convmv工具对文件名的编码进行修改。

    3. sudo apt-get install convmv    #安装convmv
      convmv -r -f cp936 -t utf8 --notest --nosmart *     #进入文件目录,执行转换命令
  3. 重启tomcat(注 nginx不需要重启)。

十、将虚拟机端口映射到本机上

  1. 使用指令如下 使用管理员权限的Windows PowerShell窗口

    #添加端口映射 listenport  window系统的端口    connectport虚拟机的端口    connectaddress虚拟机的ip地址
    netsh interface portproxy add v4tov4 listenport=8089 listenaddress=0.0.0.0 connectport=8089 connectaddress=192.168.78.227
    
    #查询所有的端口映射   window
    netsh interface portproxy show all

十一、固定虚拟机的IP地址

        因电脑每次重启后 会将ip地址进行重新分配,就导致之前映射出去的端口都失效了,重新映射有很麻烦,故采用将虚拟机IP地址修改。

        添加IP地址的指令如下        

#修改wsl虚拟机的ip地址   172.31.44.106/24是自己设定的ip    192.168.50.255是子网掩码
ip addr add 192.168.50.28/24 broadcast 192.168.50.255 dev eth0 label eth0:1

        需要在虚拟机中以管理员权限运行。

十二、常用指令

  1. 重启wsl系统

    #重启WSL系统
    #停止LxssManager服务
    net stop LxssManager  
     
    #启动LxssManager服务
    net start LxssManager  
  2. 查询端口

    #查询端口
    netstat -tunpl | grep 端口号
  3. 查询wsl的IP地址

    #查询虚拟机的IP地址
    ip addr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值