linux 系统会自带python,通常不须要特定安装python. 查看版本html
python -V
修改默认版本 [即修改python的link位置]python
ln -snf /usr/bin/python3.6 /usr/bin/python
ln -s [源文件] [连接文件]linux
准备python-dev[或者 python-devel]nginx
sudo apt-get update sudo apt-get upgrade sudo apt-get install python-dev sudo apt-get install gcc sudo apt-get install puthon-pip #pip python软件管理工具
访问pip
报错 关于 /usr/bin/pip mian
执行pip更新web
easy_install --upgrade pip
查看pip 版本django
pip -V
安装Uwsgi Djangovim
pip install uwsgi pip install Django==2.1.1 #2.1.1为版本号 请到官网获取最新
Uwsgi 与Python 链接测试服务器
cd /var/www #新建一个test.py vim test.py #内容以下 def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] #开启uwsgi http服务 uwsgi --http :8000 --wsgi-file test.py # 2) #访问 127.0.0.1:8000 是否输出helloworld; #未输出,请检查test.py的return helloworld 与python版本是否一致 #没法访问 请检查防火墙及端口占用
如HelloWorld正常输出 说明 uwsgi与python链接无缺。多线程
Django 项目建立及配置app
#进入项目目录 cd /var/www #projectName 为项目名 请自定义 django-admin startproject projectName #进入projectName目录 cd projectName #1.修改setting.py 让项目容许的host为所有 vim projectName/setting.py ALLOWED_HOSTS = ["*"] #2.在项目目录下,建立 静态文件目录 及视频图片目录 sudo mkdir static_common sudo mkdir media_common #配置设置到setting.py文件尾部 vim projectName/setting.py STATIC_ROOT = os.path.join(BASE_DIR, 'static_common') MEDIA_ROOT = os.path.join(BASE_DIR, 'media_common') #进入项目根目录,执行静态文件迁移命令 python manage.py collectstatic #提示输入选项时选yes便可
nginx 安装
sudo apt-get install nginx #安装完毕,访问127.0.0.1 或者ip地址,查看nginx是否成功。
nginx与django配置
#进入项目目录 cd /var/www/projectName #将/etc/nginx/目录下的uwsgi_params复制到项目文件夹,对此文件不作任何改动 cp /etc/nginx/uwsgi_params ./ #在项目根目录建立文件my_nginx.conf(nginx配置),my_uwsgi.ini(uwsgi配置),并写入如下内容【注意不一样项目请区别名称】 touch my_nginx.conf #以下 touch my_uwsgi.ini #以下 #与Nginx配置目录创建软连接 sudo ln -s /var/www/projectName/my_nginx.conf /etc/nginx/sites-enabled/ #[必须使用绝对路径,不然nginx 启动报错]
my_nginx.conf 内容
upstream django { # server 127.0.0.1:8001;#【使用socket 请开打此项 配合 uwsgi socket使用 1)】 server unix:///var/www/projectName/mySock.sock;#【使用 UNIX socket 3)】 } server { listen 80; # 【端口号】 server_name myweb.com; # 【服务器 ip 或是域名】 charset utf-8; # 字符集 # 最大上传限制 # client_max_body_size 75M; location /media { alias /var/www/projectName/media_common; # 【媒体文件所在文件夹】 } location /static { alias /var/www/projectName/static_common; # 【静态文件所在文件夹】 } # 将全部非媒体请求转到Django服务器上 location / { uwsgi_pass django; # 最上方已定义 # 将全部参数都转到uwsgi下 include /var/www/projectName/uwsgi_params; # 【uwsgi_params的路径】 } }
这个配置文件表示将静态文件和媒体文件由Nginx处理,而其它的请求转入uWSGI处理
my_uwsgi.ini 内容
[uwsgi] # 使用nginx链接时使用 1) # socket = 0:8001 # 直接作web服务器使用 【命令行直接调用 2)】 # http = 0:8080 # 【项目目录】 chdir = /var/www/projectName # 【项目中wsgi.py文件的目录】 wsgi-file = /var/www/projectName/projectName/wsgi.py # 主进程 master = true # 多进程&多线程 processes = 6 threads = 2 # 【.sock文件目录需与Nginx文件内的配置相同】 socket = /var/www/projectName/my_sock.sock # 3) chmod-socket = 666 # 以守护进程的方式启动 vacuum = true # 存储pid进程 pidfile=uwsgi.pid # 存储log日志 daemonize=uwsgi.log
重启Nginx和uWSGI
sudo service nginx restart #重启nginx cd /var/www/projectName uwsgi --stop uwsgi.pid #关闭原有的 uwsgi uwsig --ini my_uwsgi.ini #使用项目的配置文件 已后台方式启动 uwsgi
访问 myweb.com 完成环境搭建
设置开机自启动
将各项目的uwsgi配置到开机自启内便可
uwsgi --ini /var/www/projectName/my_uwsig.ini
新增项目 注意事项