(form:http://www.cnblogs.com/derek1184405959/p/8862569.html)
十一、pycharm 远程代码调试
第三方登录和支付,都需要有服务器才行(回调url),我们可以用pycharm去远程调试服务器代码
服务器环境搭建
以全新阿里云centos7系统为例:
11.1.阿里云安全组配置
快速创建规则,选好常用端口,授权对象,确定就可以了
还要添加一个安全组规则,设置端口范围,授权对象,点确定
ssh连接
yum install openssh-server -y
service sshd restart
#xshell连不上,SSH服务端不允许密码验证。
#服务端开启密码验证的方法:
vim /etc/ssh/sshd_config
把PasswordAuthentication项为yes
重启服务
service sshd restart
11.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;
11.3.pip和python3.6的安装
#安装pip
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
sudo python get-pip.py
#安装python3.6
首先安装这两个
yum -y install zlib*
yum install openssl-devel -y
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
11.4.虚拟环境安装
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
11.5.navicat远程连接传输数据
用navicat远程连接到数据库
- ip:你的服务器ip
- 用户名:root
- passwd:123456
然后新建数据库
数据库建好后开始把本地数据库中的数据传到远程服务器
11.6.pycharm远程调试代码
(1)Tools-->>Deployment-->>Configuration
(2)Connect和Mappings设置
设置好后点“Test SFTP connection”,连接到数据库,然后把项目代码上次到远程数据库
Tools-->>Deployment-->>Configuration-->>Upload to MxShop
(3)服务器运行项目
python manage.py runserver 0.0.0.0:8000
发现报错
settings里面必须设置允许的HOST,数据库里面HOST也要设置为服务器的ip
ALLOWED_HOSTS = ['*']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mxshop', #数据库名字
'USER': 'root', #账号
'PASSWORD': '123456', #密码
'HOST': '47.93.198.159', #IP
'PORT': '3306', #端口
#这里引擎用innodb(默认myisam)
#因为后面第三方登录时,要求引擎为INNODB
# 'OPTIONS':{'init_command': 'SET storage_engine=INNODB'}, #按照课程会报错,改为
"OPTIONS":{"init_command":"SET default_storage_engine=INNODB;"}
}
}
设置完后把settings文件同步到服务器中
再运行项目,就可以正常访问了
(4)pycharm远程调试代码
pycharm 的interpreter设置为服务器虚拟环境的python ,这样相当于在服务器上运行项目了
然后就会把服务器虚拟环境中的文件全部拷贝到本地
点“ok”后,还会加载一些东西,耐心等待一会,完成后
设置Host 0.0.0.0 端口 8000
pycharm上运行项目,相当于在服务器上运行项目了