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)

大家都在看

  • .Net FW项目跑不起来且无Error信息

    阅文时长 | 0.17分钟字数统计 | 280.8字符主要内容 | 1、引言&背景 2、分析步骤 3、解决方案 4、声明与参考资料『.Net FW项目跑不起来且无Error…

    Linux 2023年6月13日
    085
  • 【演讲】2020年马云谈疫情过后的新风口

    2020年马云谈疫情过后的新风口 【关键词】:疫情、新风口、数字化趋势、传统行业转型、教育 一、演讲背景 背景 2020线上智博会,马云8分钟演讲30次提到数字化 原视频 2020…

    Linux 2023年6月13日
    0102
  • linux命令之wget下载

    wget wget 是一个下载文件的工具。 格式 wget [参数] [URL地址] 常用参…

    Linux 2023年5月27日
    076
  • php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/; 还有class.smtp.php. 2.去配置一…

    Linux 2023年6月14日
    070
  • SQL52 获取employees中的first_name

    本题链接表结构如下所示(内容不完整):额外的要求是按照first_name最后两个字母升序进行输出。这里需要用到MySQL的字符串处理函数RIGHT。RIGHT函数的语法如下所示:…

    Linux 2023年6月13日
    0100
  • NO.6 HTML+CSS 笔记

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    085
  • zabbix5.0报错PHP时区未设置(配置参数”date.timezone”)

    解决办法 : 1、编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并设置为所在地时区 vim /etc/opt/rh/rh-p…

    Linux 2023年6月7日
    071
  • 客观的聊一聊,裁员这件糟心事

    时间在走,环境在变,互联网有点卷不动了; 捋一捋最近互联网上关于职场的热点:裁员,优化,毕业,向社会输送人才,求职;你方唱罢他方登场,持续横跳热搜; 年初到现在五月底,身边已经有好…

    Linux 2023年6月14日
    067
  • docker使用

    1 docker介绍,跟传统虚拟机的比较 2 docker架构图 3 docker安装 3.1 windows安装 3.2 乌班图 3.3 centos上安装(必须7.0以上) 3…

    Linux 2023年6月14日
    076
  • Docker容器网络

    Docker容器网络 1、Docker容器网络 Docker在安装后自动提供3种网络,可以使用`docker network ls命令查看 [root@localhost ~]# …

    Linux 2023年6月7日
    087
  • docker学习笔记—基本命令

    1、docker start/stop/restart/kill 启动/停止/重启/杀掉容器 实例操作如下: 2、docker run 创建并启动一个新的容器 常用参数如下: 实例…

    Linux 2023年6月8日
    090
  • Shell脚本编程中的几个问题

    条件语句 正确的写法: if [ $1 = "-f" ] #注意这里,前后方括号和中间的内容之间必须有空格! then commands fi 错误的写法: i…

    Linux 2023年6月14日
    067
  • 用Markdown写Html和.md也就图一乐,真骚操作还得用来做PPT

    前言 和这篇文章一样,我就是用Markdown写的。相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml、Html等,今天教大伙一招骚操作:用Markdown写PP…

    Linux 2023年6月13日
    0103
  • powershell 编写的tui界面脚本《电壳别名宝》

    中文名: 《电壳别名宝》 English name: 《Power Alias》 powershell 编写的tui界面脚本。 用途:保存容易记住的别名(支持中文),保存linux…

    Linux 2023年6月14日
    085
  • 模板化的封装,降低业务代码开发

    复杂的问题,往往需要简单的逻辑; 一、业务背景 业务开发是一件复杂且耗时的工程,所以最近几年出了一个很火的概念叫做”低代码”开发,简单的说就是开发人员通过简…

    Linux 2023年6月14日
    081
  • 回忆我的第一个软件项目

    2009年大学毕业我去了成都,一番面试后,入职武侯区磨子桥附近的一个小型创业公司。公司的主营业务是代理销售用友或者金蝶的ERP软件,创业团队都是川大毕业的。公司的办公条件很差,两间…

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