首先进行文件的打包:
1
| pip freeze > requirements.txt
|
然后创建服务器, 进行ssh登录。
在服务器操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
| apt update && apt upgrade
hostnamectl set-hostname django-server
hostname
nano /etc/hosts
youripaddress django-server
adduser <username> adduser <username> sudo
mkdir -p ~/.ssh
ssh-keygen -b 4096
scp ~/.ssh/id_rsa.pub username@ip:~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh/ sudo chmod 600 ~/.ssh/*
ssh username@ip
nano /etc/ssh/sshd_config
sudo systemctl restart sshd
sudo apt install ufw
sudo ufw default allow outgoing sudo ufw default deny incoming sudo ufw allow ssh sudo ufw allow 8000 sudo ufw enable sudo ufw status
scp -r project_name username@ipaddress:~/
sudo apt install python3-pip
sudo apt install python3-venv
python3 -m venv project_name/venv
cd project_name source venv/bin/activate
pip install -r requirements.txt
python manage.py collectstatic python manage.py runserver 0.0.0.0:8000
sudo apt install apache2 sudo apt install libapache2-mod-wsgi-py3
cd /etc/apache2/sites-available/
sudo cp 000-default.conf django_project.conf
sudo nano django_project.conf
Alias /static /home/"<username>"/"<django_project>"/static <Directory /home/"<usernaem>"/"<django_project>"/static> Require all granted </Directory>
Alias /media /home/"<username>"/"<django_project>"/media <Directory /home/"<usernaem>"/"<django_project>"/media> Require all granted </Directory>
<Directory /home/"<usernaem>"/"<django_project>"/"<django_project>"> <Files wsgi.py> Require all granted </Files> </Directory>
WSGIScriptAlias / /home/"<userneme>"/"<django_project>"/"<django_project>"/wsgi.py
WSGIDaemonProcess django_app python-path=/home/"<username>"/"<django_project>"/venv
WSGIProcessGroup django_app
sudo a2ensite django_project
sudo a2dissite 000-default.conf
sudo chown :www-data django_project/db.sqlite3 sudo chmod 755 django_project/db.sqlite3 sudo chown :www-data django_project sudo chown -R :www-data django_project/media sudo chmod -R 755 django_project/media sudo chmod 775 django_project/
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| sudo touch /etc/config.json
sudo ufw delete allow 8000
sudo ufw allow http/tcp
sudo server apache2 restart systemctl reload apache2
|
/etc/config.json
文件
1 2 3 4 5 6
| { "SECRET_KEY": "xxx", "EMAIL_USER": "xxx@163.com", "EMAIL_PASS": "xxx"
}
|
然后在django_project -- setings.py
中进行如下配置
1 2 3 4 5 6 7
| import json
with open('/etc/config.json') as f: conf = json.load(f)
SECRET_KEY = conf['SECRTY_KEY']
|
或者在部署的时候进行根目录部署
然后输出日志器。在根目录下面进行创建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <VirtualHost *:80>
ServerAdmin webmaster@localhost DocumentRoot /var/www/html
ErrorLog /site/logs/error.log CustomLog /site/access.log combine
alias /static /blog_project/static <Directory /blog_project/static> Require all granted </Directory>
<Directory /blog_project/blog_project> <Files wsgi.py> Require all granted </Files> </Directory>
WSGIDaemonProcess blog_project python-path=/blog_project python-home=/blog_project/venv WSGIProcessGroup blog_project WSGIScriptAlias / /blog_project/blog_project/wsgi.py
</VirtualHost>
|
解决图片上传有中文问题:
1 2 3 4 5 6
| export LANG='zh_CN.UTF-8' export LC_ALL='zh_CN.UTF-8'
export LANG='en_US.UTF-8' export LC_ALL='en_US.UTF-8'
|