路过的关注一下哈 :python
1.安装python3-pip -------------sudo apt-get install python3-pip
2.安装虚拟环境和虚拟环境管理包
sudo pip3 install virtualenv (报错的话须要把pip也安装一下)
sudo pip3 virtualenvwrapper
在~/.bashrc 添加
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh (若是没有virtualenvwrapper.sh就在这目录下建立这个文件)
source .bashrc
建立虚拟环境:mkvirtualenv ShangOnline –p /usr/bin/python3
3.虚拟环境当中安装项目所依赖的包(mysqlclient会出一个问题,须要首先安装下面这个包)
咱们能够经过 pip freeze > requirements.txt 将windows的虚拟环境安装包相应信息导出来移动到ubuntu
pip3 install -r requirements.txt 在安装过程当中mysqlclient会报错,按照下面两步走
sudo apt-get install libmysqlclient-dev
pip install mysqlclientmysql
4. 数据库:
sudo apt-get install mysql-server
进入数据库建立本身的帐户而且分配全部的权限,而且刷新权限,在配置文件当中bind 0.0.0.0
在ubuntu 当中建立咱们用的数据库shangonline,经过windows的Navicat将windows数据库中的数据传输到ubuntu当中
将咱们的项目文件夹拖入到咱们的虚拟环境当中,进入项目python manage.py runserver保证能拉起项目
5.安装uwsgi-------pip3 install uwsgi
测试uwsgi---------uwsgi --http :8000 --module ShangOnline.wsginginx
6. 安装配置nginx------sudo apt-get install nginx
安装完成会自动启动nginx的服务,咱们在外部windows浏览器直接访问ubuntu ip 会进入到nginx的环境界面
在项目 根目录新建文件夹config-------新建sol_nginx.confweb
# the upstream component nginx needs to connect to
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8000; # for a web port socket (we'll use this first)
}
# configuration of the serversql
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name 你的ip地址 ; # substitute your machine's IP address or FQDN
charset utf-8;数据库
# max upload size
client_max_body_size 75M; # adjust to tastedjango
# Django media
location /media {
alias /home/ly/ShangOnline/static/media; # 指向django的media目录
}ubuntu
location /static {
alias /home/ly/ShangOnline/static; # 指向django的static目录
}windows
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
}
}
7. 将该配置文件加入到nginx的启动配置文件中
sudo cp /home/ly/ShangOnline/config/sol_nginx.conf /etc/nginx/conf.d/
8. 拉取全部须要的static file 到同一个目录
在django的setting文件中,添加下面一行内容:浏览器
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
运行命令
python manage.py collectstatic
9. 运行nginx
sudo /usr/sbin/nginx
这里须要注意 必定是直接用nginx命令启动, 不要用systemctl启动nginx否则会有权限问题
10. 经过配置文件启动uwsgi
新建uwsgi.ini 配置文件, 内容以下:
# mysite_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/ly/ShangOnline/
# Django's wsgi file
module = ShangOnline.wsgi
# the virtualenv (full path)
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = 127.0.0.1:8000
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
virtualenv = /home/ly/Envs/ShangOnline
logto = /tmp/mylog.log
******注:
chdir: 表示须要操做的目录,也就是项目的目录
module: wsgi文件的路径
processes: 进程数
virtualenv:虚拟环境的目录
workon ShangOnline uwsgi -i /home/ly/ShangOnline/config/uwsgi.ini & 10.访问 http://你的ip地址/