ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu16.04部署django+nginx项目

2022-05-30 17:34:27  阅读:167  来源: 互联网

标签:Ubuntu16.04 vsftpd sudo list dev django etc nginx YES


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

参考网站:https://www.jianshu.com/p/94ba6e48170c
https://www.cnblogs.com/crowbrother/p/13296757.html
https://www.cnblogs.com/simple-record/p/15214813.html
https://www.bilibili.com/video/BV19g4y1q74s?spm_id_from=333.999.0.0

创建FTP服务(之后就可以使用用户名ftpuser,通过FileZilla传递文件)

安装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

安装mysql

$ 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 

安装python3.8

#安装依赖环境
$ 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

配置python环境

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

#更新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;

下载NGINX

$ 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

配置NGINX

我的另一篇博客里写了

启动项目(先执行前两步,补足缺失的依赖,后一步nginx配置完以后再做)

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

标签:Ubuntu16.04,vsftpd,sudo,list,dev,django,etc,nginx,YES
来源: https://www.cnblogs.com/m1pha/p/16326632.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有