Ubuntu16.04部署django+nginx项目

项目使用django+nginx部署。
这个项目断断续续地部署4遍了。感觉每次部署都挺费时间的(找各种配置的资料),于是写一个博客总结一下。

安装vsftpd

$ sudo apt-get install vsftpd

备份vsftpd配置文件

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

修改vsftpd配置文件

$ sudo vim /etc/vsftpd.conf

配置文件主要配置如下

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to Snail FTP service.

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
allow_writeable_chroot=YES

创建FTP目录和登陆用户

#先创建ftp目录
$ sudo mkdir /home/ftp
#添加用户
$ sudo useradd -d /home/ftp -s /bin/bash ftpuser
#设置用户密码
$ sudo passwd ftpuser
#设置ftp目录用户权限
$ sudo chown ftpuser:ftpuser /home/ftp
#在etc目录下新建文件vsftpd.user_list,用于存放允许访问ftp的用户
$ sudo touch /etc/vsftpd.user_list
#编辑vsftpd.user_list,在其中添加ftpuser
$ sudo vim /etc/vsftpd.user_list
#在etc目录下新建文件vsftpd.chroot_list,设置可列出、切换目录的用户
$ sudo touch /etc/vsftpd.chroot_list
#编辑chroot_list,在其中添加ftpuser
$ sudo vim /etc/vsftpd.chroot_list

重启vsftpd服务

$ sudo service vsftpd restart

文件传输的权限设置

$ chmod 777 -R ./xxx
$ sudo apt update
$ sudo apt install mysql-client-core-5.7
$ sudo apt install mysql-client-5.7
#这步还需要设置密码,记得和后端配置文件相同
$ sudo apt install mysql-server-5.7
#测试是否安装成功
$ mysql -uroot -p
#安装依赖环境
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
#下载python3.8.5 解压
$ wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
$ tar -zxvf Python-3.8.5.tgz
#进入解压后的目录
$ cd Python-3.8.5
$ ./configure #编译前的配置
$ make #编译
$ make install#编译后的安装
#之后可以使用以下命令来验证安装成功
$ python3.8 -V

接下来的步骤 可能会导致严重问题,如果时间充裕可以尝试
接下来的步骤 可能会导致严重问题,如果时间充裕可以尝试
接下来的步骤 可能会导致严重问题,如果时间充裕可以尝试
第五步:安装成功后,找到 python3.8 解释器位置,一般是 /usr/local/bin/python3.8
#删除原来的软连接
$ rm -rf /usr/bin/python3
$ rm -rf /usr/bin/pip3
#添加python3的软链接
$ ln -s /usr/local/bin/python3.8 /usr/bin/python3
#添加 pip3 的软链接
$ ln -s /usr/local/bin/pip3.8 /usr/bin/pip3

这一步非常麻烦,且会有许多问题

#更新pip3.8
$ pip3.8 insatll --upgrade pip

安装各种依赖库

新建文件 requirements.txt ,填写以下内容

注意:这些并不是全部必要,可以通过运行项目来判断缺少的依赖

asgiref>=3.2.7
colorama>=0.4.3
Django>=3.0.3
django-cors-headers>=3.3.0
easydict>=1.9
importlib-metadata>=1.6.0   //ubuntu16.04这里就安装不了了,跳过这个
jsonpatch>=1.25
MarkupSafe>=1.1.1
PyMySQL>=0.9.3
python-dateutil>=2.8.1
pytorch>=1.0.2
torchvision>=0.4.0
PyYAML>=5.3.1
setuptools>=46.4.0
six>=1.14.0
uWSGI>=2.0.18
$ pip3.8 install -r requirements.txt

在ubuntu16.04遇到的问题(不能快速解决的问题):

1.缺少mysqlclient

$ apt-get install libmysqlclient-dev
$ pip3.8 install mysqlclient
$ mysql -u root -p
CREATE DATABASE Yiwenjuandb default character set utf8mb4 COLLATE = utf8mb4_unicode_ci;
$ wget http://nginx.org/download/nginx-1.17.9.tar.gz
$ tar -zxvf nginx-1.17.9.tar.gz
$ sudo apt-get install libpcre3 libpcre3-dev #如果make时发现缺失依赖
$ ./configure --prefix=/usr/local/nginx --with-http_gzip_static_module
$ make -j4 && make install

我的另一篇博客里写了

$ python3.8 manage.py makemigrations
$ python3.8 manage.py migrate
$ python3.8 manage.py runserver 0:8080

Original: https://www.cnblogs.com/m1pha/p/16326632.html
Author: m1pha
Title: Ubuntu16.04部署django+nginx项目

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582620/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • win11下关于安装umi成功后CMD命令不能使用的问题

    先找到你安装的umi全局路径 yarn global bin 然后把这个路径添加到系统变量中去:PATH 还是不能用的话就是找到 umi.cmd 文件的目录,把里面的C盘符号前面的…

    Linux 2023年6月14日
    0116
  • 防止shell script多次运行

    防止shell script多次运行 一个思路是在script初期检测系统中是否存在同名进程。 if [ ps -ef | grep "test.sh" | g…

    Linux 2023年5月28日
    083
  • 15、16、17思维导图

    posted @2022-04-24 10:20 20191223张俊怡 阅读(31 ) 评论() 编辑 Original: https://www.cnblogs.com/zzj…

    Linux 2023年6月8日
    0145
  • Python之–paramiko实例

    一.基于SFTPClient类连接sshd服务器: 特点: 一般用于实现对远程服务器的上传, 下载和对远程目录文件的操作 1 import pramiko 2 3 hostname…

    Linux 2023年6月6日
    0113
  • Apache Shiro反序列化漏洞(Shiro550)

    1.漏洞原理: Shiro 是 Java 的一个安全框架,执行身份验证、授权、密码、会话管理 shiro默认使用了CookieRememberMeManager,其处理cookie…

    Linux 2023年6月13日
    074
  • MSSQL·CONCAT函数的基础使用

    | 0.47分钟 | 752.8字符 | 1、应用场景 2、基础使用 3、声明与参考资料 | SCscHero | 2022/5/13 PM10:18 | 系列 | 已完成 每一个…

    Linux 2023年6月14日
    089
  • redis 使用lua 生成流水号

    在实际的业务场景中,我们会用到流水号。之前的流水号做法是,使用redis的全局锁。然后对数据库进行更新,数据库更新 这个也会有一些问题,比如对于同一个流水号,多个线程去更新,由于事…

    Linux 2023年5月28日
    094
  • apk自签证书

    需要用到keytool.exe (位于D:\Program Files\Java\jdk1.8.0_291\jre\bin目录下),使用产生的key对apk签名用到的是jarsig…

    Linux 2023年6月8日
    0102
  • 青春浙江微信平台如何退出?如何重新登录?微信如何清除浏览器缓存,如何清除浏览器cookies?

    青春浙江不能退出重新登录,有同学可能寻找解决方法,给大家贴出来:bug 解决办法:1. debugmm.qq.com/?forcex5=true 打开调试2. http://deb…

    Linux 2023年5月27日
    091
  • shell echo单行和多行文字定向写入到文件中

    单行文本: #!/bin/bash echo "192.168.85.24 tsedb">> /etc/hosts 多行文本: < #!/bi…

    Linux 2023年5月28日
    083
  • 01-MySQL连接查询、聚合函数

    1、连接查询 1.1、左连接 以左表为基准进行查询,左表数据回全部显示出来 右表中如果匹配连接条件的数据则显示相应字段的数据,如果不匹配,则显示为NULL 1.2、右连接 以右表为…

    Linux 2023年6月7日
    0128
  • 为spring cloud config实现刷新动态掉的坑

    正常搭建配置中心,网上教程多,这里不讨论,只记坑也是为了后来者少花时间在这里,由于是当时研究了好久才写的文章,所以只能提供问题的原因,当然会给出印证的思路,闲话不多说进入正题! 版…

    Linux 2023年6月7日
    099
  • centos7 删除grub2 开头的所有文件后故障修复

    环境:centos7 mini故障原因:删除根目录,/boot以及/boot/efi下递归查找到的所有grub2 开头的文件现象:无法正常开机,开机显示下图 解法(该解法过程中照片…

    Linux 2023年6月6日
    0140
  • AIX系统NTP同步配置

    前言 当AIX系统的本地时间与时间服务器授出的标准时间误差大于±1000秒时。xntpd服务将无法同步时间并变得无法正常工作,请进行ntp配置前,先修改AIX系统的本地时间,尽量和…

    Linux 2023年6月6日
    0119
  • 课间游戏志:斗荧光笔与扒撸咔嚓

    课间游戏志:斗荧光笔与扒撸咔嚓 写这篇博客,主要是想记录两个课间游戏,一个是我于小学四年级时发明的斗荧光笔,一个是初中时班上几个变态发明的扒撸咔嚓,自从这两个游戏被发明以后,我们班…

    Linux 2023年6月6日
    0102
  • Shell 函数带中横线问题排查

    Shell 中编写的函数,如果函数名中带了中横线,在使用 /bin/sh 执行时会报错。 ➜ subprocess git:(master) ✗ cat kubectl.sh _k…

    Linux 2023年5月28日
    085
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球