zoukankan      html  css  js  c++  java
  • 【Vue+DRF 生鲜电商】远程调试(八)

    1. ssh 连接远程服务器

    服务器终端安装 openssh-server,再使用 xshell 连接服务器:

    yum install openssh-server -y
    
    service sshd restart
    
    #xshell连不上,SSH服务端不允许密码验证。
    #服务端开启密码验证的方法:
    
    # 把PasswordAuthentication项为yes
    vim /etc/ssh/sshd_config
    
    # 重启服务
    service sshd restart
    

    xshell 连接不了服务器(公网服务器),可参考第四节。

    拷贝代码到服务器

    Windows 上找到项目目录,命令行执行 scp 命令,将项目文件上传到远程服务器:

    # root:用户名,:/home/hj 为远程服务器路径,回车输入密码
    scp -r MxShop root@192.168.131.131:/home/hj
    

    也可以使用其他工具上传,如:winscp

    2. 搭建服务器环境

    2.1 安装 Python3.6 和 pip

    # 提前安装好系统依赖包:
    centos: 
        yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel libffi-devel python-devel mariadb-devel
    ubuntu:
       sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev default-libmysqlclient-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
    
    1. 获取
    
    wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
    tar -xzvf Python-3.6.2.tgz -C  /tmp
    cd  /tmp/Python-3.6.2/
    
    2. 把Python3.6安装到 /usr/local 目录
    
    ./configure --prefix=/usr/local
    make
    make altinstall
    
    3. 更改/usr/bin/python链接
    
    ln -s /usr/local/bin/python3.6 /usr/bin/python3
    

    安装 pip 和 pipenv

    wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate
    
    sudo python get-pip.py
    
    # 安装 pipenv
    pip install pipenv -i https://pypi.douban.com/simple
    

    2.2 安装 MySQL

    #1.安装
    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum install mysql-community-server
    
    #2.重启服务
    service mysqld restart
    
    #3. 设置bind-ip
    
        vim /etc/my.cnf
        在 [mysqld]:
            下面加一行
            bind-address = 0.0.0.0
    
    #4.登录mysql
    mysql -u root
    
    #5. 设置外部ip可以访问
    #mysql中输入命令:
    #后面用navicat连接远程服务器mysql的用户名和密码
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
    
    #6.设置mysql密码
    进入mysql:
    set password =password('123456');     #密码123456
    flush privileges;
    

    2.3 安装 Python 虚拟环境

    yum install python-setuptools python-devel
    pip install virtualenvwrapper
    
    #编辑.bashrc文件
    vim ~/.bashrc
    
    #添加进去
    export WORKON_HOME=$HOME/.virtualenvs
    source /usr/bin/virtualenvwrapper.sh
    
    #sudo find / -name virtualenvwrapper.sh      查看你的virtualenvwrapper.sh在什么地方
    
    #重新加载.bashrc文件
    source ~/.bashrc
    
    #虚拟环境保存的路径
    cd ~/.virtualenvs/      (创建的虚拟环境都会保存在这个目录,前面设置的)
    
    #创建指定python版本的虚拟环境方法
    mkvirtualenv MxShop --python=python3.6
    workon MxShop
    #进虚拟环境安装依赖包首先 pip freeze > requirements.txt 将本地的虚拟环境安装包导出来,上传到服务器
    pip install -r requirements.txt
    
    #安装mysqlclient出问题
    
        centos 7:
            yum install python-devel mariadb-devel -y
    
        ubuntu:
            sudo apt-get install libmysqlclient-dev
    
        然后:
            pip install mysqlclient
    

    也可以采用 pipenv 管理虚拟环境,不用进行上述操作:

    # xshell 连接远程服务器
    
    # 切换到项目目录中
    cd /home/hj/Projects/MxShop
    
    # 因为之前在 Windows 上便已经用 pipenv 管理虚拟环境,因此远程服务器上只需 pipenv install 就能安装虚拟环境和依赖包
    
    # 注意:要在项目中与 Pipfile 同级目录执行
    pipenv install --skip-lock
    
    # 查看 Python 解释器路径
    pipenv --py
    

    2.4 可视化管理数据库

    Windows 上使用 navicat 连接远程服务器 MySQL 数据库,创建新的数据库,并将本地数据同步到远程数据库:

    3. Pycharm 远程调试代码

    目的:

    • Windows 上使用 Pycharm 进行开发,使用环境为远程服务器上 Python 虚拟环境
    • 自动上传代码到远程服务器

    这样做的好处就是能够同时利用 Windows 和 Linux 两种环境,充分利用两者的优势(Windows 应用软件丰富,便利,Linux 开发环境可以避开很多坑,接近真实线上环境)

    Pycharm ---Tools--Deployment--Configuration

    左上角点击 +,选择 SFTP,右侧配置栏 Connection 参数如下:

    Type: SFTP
    Host: 192.168.131.131
    User name: root		# 此处必须是 root,否则配置 Python 解释器时,对 root 目录无权限
    Password:# 密码
    Root path:/	
    Web server URL:http://192.168.131.131
    

    Mappings 映射配置如下:

    Local path:F:/pycharm resource/MxShop		# 本地项目目录
    Deployment path:/MxShop		# 远程服务器项目相对路径
    Web path:/
    

    配置远程 Python 虚拟环境

    Pycharm --> settings --> Project MxShp --> Project Interpreter,右侧点击 + ,添加新的 Python 解释器。

    解释器类型选择 SSH Interpretr 即远程服务器的 Python 解释器,右侧选择 Existing server configuration,已存在的服务配置 MxShp,选择 Next,进入到具体的配置界面:

    Interpreter 配置远程服务器的 Python 解释器(虚拟环境地址),可用 pipenv --py 查看,也可使用输入框后的 文件夹图标选择

    Sync folders 为同步目录,选择远程服务器中项目目录,此处应该为 /MxShop,然后勾选 Automatically upload project files to the server 及自动同步代码。

    运行支持

    Pycharm 右上角,点击 Edit Configurations,左上角 +,添加 Django server

    4. 服务器安全组策略配置

    Django 服务运行以 8000 端口运行,MySQL 以 3306 端口运行,若项目在公有服务器上运行,还需配置安全组策略,开通这两个端口,以下以阿里云 ECS 服务器为例:

    登录阿里云 ---> 控制台 ---> 云服务器 ECS ---> 网络安全 ---> 安全组

    配置 Django settings

    配置 ALLOWED_HOSTS 为 *,或者服务器 IP,另外将数据库改为远程服务器 MySQL

    ALLOWED_HOSTS = ['*']
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'mxshop',
            'USER': 'root',
            'PASSWORD': 'xxx',
            'HOST': '192.168.131.131',
            'PORT': '3306',
            'OPTIONS': {
                # 这里引擎用innodb(默认myisam)
                # 因为后面第三方登录时,要求引擎为INNODB
                'init_command': 'SET default_storage_engine=INNODB;'
            }
        }
    }
    

    至此配置完毕,用 Pycharm 运行项目,访问:http://192.168.131.131:8000

    参考文章

    centos7 下通过nginx+uwsgi部署django应用

  • 相关阅读:
    1592:【例 1】国王
    状态压缩类动态规划笔记
    1300:鸡蛋的硬度
    1263:【例9.7】友好城市
    第四部分-并发编程案例分析4:高性能数据库连接池HikariCP
    容器基础3:容器镜像
    第四部分-并发编程案例分析3:高性能队列Disruptor
    容器基础2:隔离与限制
    第四部分-并发编程案例分析1:限流Guava RateLimiter
    容器基础1:进程
  • 原文地址:https://www.cnblogs.com/midworld/p/13629747.html
Copyright © 2011-2022 走看看