contes 部署Django项目

本文详细介绍了如何部署Django项目,包括安装Python3.6,设置MariaDB,安装Nginx和virtualenvwrapper,配置及测试uWSGI,最后是静态文件的处理和启动Nginx及uWSGI服务。
摘要由CSDN通过智能技术生成

1.安装Python3.6

  1. 下载依赖包
centos: 
    yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel libffi-devel python-devel mariadb-devel
ubuntu:
   sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev default-libmysqlclient-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
  1. 下载python3.6.2
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/
  1. 把Python3.6安装到 /user/local目录
./configure --prefix=/usr/local
make
make altinstall
  1. 更改/user/bin/python链接
ln -s /usr/local/bin/python3.6 /usr/bin/python3
如果:Linux服务器报错:ln: failed to create symbolic link ‘/usr/bin/python’: File exists
重新输入:ln -sf /usr/local/bin/python3.7 /usr/bin/python3

maridb

1. 安装
	sudo yum install mariadb-server
		//linux 查看进程:ps aux | grep mysql

2. 启动, 重启

    sudo systemctl start mariadb
    sudo systemctl restart mariadb
    //进入mqsql交互环境:mysql -uroot

3. 设置bind-ip

    vim /etc/my.cnf
    //之后按i进去配置
    在 [mysqld]:
        下面加一行
        bind-address = 0.0.0.0

4. 设置外部ip可以访问

    先进入mysql交互环境才能运行下面命令:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

    FLUSH PRIVILEGES  //刷新权限  必须要运行

5. 设置阿里云的对外端口

   视频中有讲解这部分
   
6. 安装mysqlclient出问题

    centos 7:
        yum install python-devel mariadb-devel -y

    ubuntu:
        sudo apt-get install libmysqlclient-dev

    然后:
        pip install mysqlclient
7.安装redis
	yum install redis
	service redis start
		//sudo systemctl start redis  启动
    	//sudo systemctl restart redis  重启

安装Nginx

https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

1.sudo yum install epel-release
2.sudo yum install nginx
3.sudo systemctl start nginx

安装virtualenvwrapper

yum install python-setuptools python-devel
pip install virtualenvwrapper

编辑.bashrc文件  //vim ~/.bashrc

	export WORKON_HOME=$HOME/.virtualenvs
	source /usr/local/bin/virtualenvwrapper.sh //如果不在此目录  可以sudo find / -name virtualenvwrapper.sh 查找所在目录

重新加载.bashrc文件
	source  ~/.bashrc

新建虚拟环境
	mkvirtualenv -p python3 mxonline

进入虚拟环境 
	workon mxonline

文件上传后:
	安装pip包
	我们可以通过 pip freeze > requirements.txt 将本地的虚拟环境安装包相信信息导出来

	然后将requirements.txt文件上传到服务器之后运行:

	pip install -r requirements.txt
	安装依赖包

安装uwsgi

pip install uwsgi

测试uwsgi

uwsgi --http :8000 --module MxOnline.wsgi

配置nginx

新建uc_nginx.conf


# 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 server

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 taste

# Django media
location /media  {
    alias 你的目录/Mxonline/media;  # 指向django的media目录
}

location /static {
    alias 你的目录/Mxonline/static; # 指向django的static目录
}

# Finally, send all non-media requests to the Django server.
location / {
    uwsgi_pass  django;
    include     uwsgi_params; # the uwsgi_params file you installed
}
}

将该配置文件加入到nginx的启动配置文件中

sudo ln -s 你的目录/Mxonline/conf/nginx/uc_nginx.conf /etc/nginx/conf.d/

拉取所有需要的static file 到同一个目录

在django的setting文件中,添加下面一行内容:

    STATIC_ROOT = os.path.join(BASE_DIR, "static/")
运行命令
    python manage.py collectstatic

运行nginx

sudo /usr/sbin/nginx

通过配置文件启动uwsgi

新建uwsgi.ini 配置文件, 内容如下:

    # mysite_uwsgi.ini file
    [uwsgi]

    # Django-related settings
    # the base directory (full path)
    chdir           = /home/bobby/Projects/MxOnline
    # Django's wsgi file
    module          = MxOnline.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/bobby/.virtualenvs/mxonline

    logto = /tmp/mylog.log

注:
    chdir: 表示需要操作的目录,也就是项目的目录
    module: wsgi文件的路径
    processes: 进程数
    virtualenv:虚拟环境的目录


workon mxonline
uwsgi -i 你的目录/Mxonline/conf/uwsgi.ini &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值