django 项目部署到阿里云(初级草稿)

写在最前面

  在部署前,先要修改本地django的settings, 

ALLOWED_HOSTS = ["*"], 或者加入公网ip
sudo apt-get update
sudo apt-get install pip3


我的系统会报错
改成 
yum instll xxxxx

 

一 在云服务器安装python3

用pycharm的终端或者xsell。

默认是有py2的,不要删。

1.连接公网

ssh -p 22 root@公网ip

然后,输入密码

2. 安装依赖包

sudo yum -y groupinstall "Development tools"
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

3. 安装python3压缩包

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz

4. 解压压缩包

tar -xvJf  Python-3.7.3.tar.xz

5. 编译安装

cd Python-3.7.3
./configure --prefix=/usr/local/bin/python3
sudo make
sudo make install

6. 创建软连接(相当于快捷方式)

ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3

7. 安装完成检查安装版本

python3 --version

 

二 通过pycharm把项目推到服务器

选择tools的Deploment的configuration

三 安装各种所需的包和文件

四 启动django

我用xshell找到了项目的位置,便于操作

在之前要在服务器创建数据库,一点要和本地的数据库同名, 省的改名字

在终端输入

mysql -u root -p
 输入密码
create database 库名 default charset=utf8;

 不写utf8回报如下的错

django.db.utils.InternalError: (1366, "Incorrect string value"...)

 

还可能会报

  File "/usr/local/bin/python3/lib/python3.7/site-packages/django/db/backends/mysql/operations.py", line 146, in last_executed_query
    query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

根据错误提示用xftp找到云服务器文件位置

把错误代码:query = query.decode(errors='replace')

把decode改为encode即可。

 

还可能报如下的错

  File "/usr/local/bin/python3/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 36, in <module>
    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

找到上面说的位置,

下的 base.py 文件中,注释掉一下两行代码:

if version < (1, 3, 3):
     raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__) 

 

启动django

(还要在服务器防火墙8000可以访问)

cd /data
cd myblog

python3 manage.py migrations
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000
# 注意写成python3 manage.py runserver 0.0.0.0: 8000   多了个空格

上面是可以启动django,但是终端一退出, 服务器就gg了,

所以可以这样子启动

方法一

cd /data/myblog

nohup python3 manage.py runserver 0.0.0.0:8000 &
# 多点几次回车

这样即使退出终端服务器也可以正常运行

方法二:这个比较高级,使用screen

1、安装screen

yum install -y screen

2、新建一个screen

screen -S xiedi

这样会新开一个窗口,然后执行命令即可

python manage.py runserver 0.0.0.0:9000

3、重开一个窗口,列出所有screen进程,如下

 
  1. [root@docker ~]# screen -ls

  2. There are screens on:

  3. 3029.xiedi (Attached)

4、如果想链接上这个会话,执行命令即可

screen -r 3029

 

结束django进程

[root@iz2zeczv3xrnm2jx6aayhxz myblog]# ps -ef | grep manage.py
root     25962 25922  0 12:46 pts/0    00:00:00 python3 manage.py runserver 0.0.0.0:8000
root     25963 25962  2 12:46 pts/0    00:00:06 /usr/bin/python3 manage.py runserver 0.0.0.0:8000
root     25975 25922  0 12:50 pts/0    00:00:00 grep --color=auto manage.py
[root@iz2zeczv3xrnm2jx6aayhxz myblog]# kill -s 9 25963

ps -ef | grep manage.py 查看manage.py   kill杀死进程, 不知道为什么杀的是第二个

 

navicat连接云服务器

1. 修改mysql的权限

(不知道有没有必要,我TM在本地改了mysql,云端的mysql没改正常连了,)

#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

 

2,

再常规中写入信息,连接名自己起,主机要写:localhost,密码是阿里云中数据库的密码,不是阿里云的登陆密码

然后

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值