Debian kali linux x64下Python + Django + Nginx + uWSGI环境配置
本来是想项目的部署和环境搭建放到一篇博客里面,结果这个环境部署坑还是挺多的,就单写一篇博客来说一下这个环境部署的流程,正如标题说的那样我是基于Debian kali linux虚拟机环境配置的环境,以下我会从零开始一步一步讲述如何去配置出所需的环境
一、虚拟机的下载与配置
1.首先先给一个vmware 15Pro的破解包
链接: https://pan.baidu.com/s/1_36O-bvUWtgNODAeoLx0fw 提取码: 85yc
破解安装的流程就不加多述了,有问题可以参见本博客配图(^_−)☆
2.kali linux官方下载,选HTTP下载,一定要点保存选好路径!一定要点保存选好路径!一定要点保存选好路径!下了两遍的我提醒道。
然后,你问我怎么安啊?你问我我不也得百度,kali Linux的下载与安装,具体可以参照这篇文章,然后我是选的典型安装,直接选取下载的iso文件,选64位linux,省心省事,之后开机后就可以按照他的步骤来进入图形化安装界面配置了,最后联网的问题,这里我选择的桥接模式联网,这个模式的话只要你的主体机连的不是一些需要登陆什么的那种网络(校园网),都是只要主机有网,虚拟机就有网,连校园网的话可以手机端连接然后开WiFi信号桥来配置,反正其他的联网模式我都试过,校园网均失败。安装好之后调整一下分辨率,和壁纸(有需要的话)就可以开始快乐的玩耍了。配置完之后首先要先存一个快照!!!就是上面一排小时钟标志的分别对应存储快照,读取上一个快照,管理快照,快照是什么呢?就是相当于游戏的存档,读取对应的快照就可以将所有配置退回到当时的状态。
二、Debian配置Python环境
1.打开终端输入ls /usr/bin/python*
查看系统自带配置的Python环境变量,这里的Python默认是2.7版本,Python3默认为3.7.0版本,可以在命令行中输入python –version和python3 –version来查看
usr/bin目录下的文件叫做软连接,就相当于windows的环境变量。
2.修改默认Python版本:
1)基于用户修改 Python 版本:
想要为某个特定用户修改 Python 版本,只需要在其 home 目录下创建一个 alias(别名) 即可。打开该用户的 ~/.bashrc 文件,添加新的别名信息来修改默认使用的 Python 版本。
alias python=’/usr/bin/python3.7’
一旦完成以上操作,重新登录或者重新加载 .bashrc 文件,使操作生效,重新加载.bashrc文件命令如下:
$ . ~/.bashrc
检查当前的 Python 版本,命令如下:
$ python –version Python 3.7.0
2)基于系统修改Python版本:
我们可以使用 update-alternatives 来为整个系统更改 Python 版本。以 root 身份登录,首先罗列出所有可用的 python 替代版本信息:
- update-alternatives –list python
update-alternatives: error: no alternatives for python
如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被 update-alternatives 命令识别。想解决这个问题,我们需要更新一下替代列表,将 python2.7 和 python3.7 放入其中,命令如下: - update-alternatives –install /usr/bin/python python /usr/bin/python2.7 1
会提示
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode - update-alternatives –install /usr/bin/python python /usr/bin/python3.7 2
会提示/不提示
update-alternatives: using /usr/bin/python3.7 to provide /usr/bin/python (python) in auto mode
– install 选项使用了多个参数用于创建符号链接。最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中。这个例子中,我们为 /usr/bin/python3.7 设置的优先级为2,所以 update-alternatives 命令会自动将它设置为默认 Python 版本。
检查当前python版本:
- python –version Python 3.7.0
接下来,我们再次列出可用的 Python 替代版本。 - update-alternatives –list python
/usr/bin/python2.7
/usr/bin/python3.7
现在开始,我们就可以使用下方的命令随时在列出的 Python 替代版本中任意切换了,(我配置的是3.7,3.7.3)如下图:
3.配置下载Python3.7.3(推荐)
为什么不用系统自带的版本呢,因为我玩了一晚上被各种版本不兼容依赖安装不了的报错成功逼疯,然后让我玩崩了,apt-get都玩没了,隧重新安装系统(这里就体现出了快照的重要性!我没存快照所以就从0开始喽。。。),重新配置。
1)apt-get 换源
apt-get就是kali系统自带的安装各种包,插件的工具,类似于python的pip,然而有许多的东西都是国外的,被墙了,下不到,这时候就要通过换源来解决这个问题
- 备份原有的源配置文件
1
cp /etc/apt/sources.list /etc/apt/sources.listbak
- 删除该源配置文件
1
rm -f /etc/apt/sources.list
- 生成国内的源配置文件
1
2
3
4
5
6echo "deb http://ftp.cn.debian.org/debian/ stretch main" > /etc/apt/sources.list
echo "deb http://ftp.cn.debian.org/debian/ stretch-updates main" >> /etc/apt/sources.list
echo "deb http://ftp.cn.debian.org/debian-security stretch/updates main" >> /etc/apt/sources.lis - 更新源debian的全球镜像站
1
apt-get update
这是正版官方的源,像网上流传的网易,阿里,Squeeze,jessie什么的有的都过期了,无法连接到,所以推荐还是用官方的。
2)安装python3.7.3之前要准备的
首先安装vmware tools点击虚拟机选项可以找到,然后虚拟机里会弹出框提示安装,好像是运行一个.pl文件,反正他下面会有提示,跟着走就行,安好后重启虚拟机,之后就可以实现主机和虚拟机之间的数据交换,文字,图片复制粘贴操作了。
以下内容要事先准备一下,不然你就等着编译三遍python吧。。。
weget后面接的是下载链接,如果虚拟机没有网可以主机先下下来在拖进虚拟机的主目录。
I.编译安装openssl-1.1.1
- 下载
1
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
- 解压并cd到目录下
1
2
3sudo tar zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1 - 编译
1
./config --prefix=/usr/local/openssl shared zlib
–prefix后面接的是要安装的路径,在后面的好像是安装方法,具体我也不太清楚,可以百度。
- 安装
1
make && make install
- 添加环境变量
1
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> /etc/profile
- 重置环境变量
1
source /etc/profile
II.编译安装sqlite3
下载
1
wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz
解压并cd到目录下
1
2
3sudo tar zxvf sqlite-autoconf-3280000.tar.gz
cd sqlite-autoconf-3280000编译
1
sudo ./configure
默认配置
安装
1
make && make install
说一下这里为什么要先安装这两个,因为没有OpenSSL的话,再用pip3安装模块的时候会报错,openssl是什么东西可以百度一下,其实就是加密传输相关的一些基础库。但是在Linux里面广泛使用。几乎所有的服务器都需要它支持。
然后sqlite3是在django模块配置运行的时候会报错,import _sqlite3出错,原因是你编译python的时候,没有sqlite3环境。OpenSSL也同理。所以所要先安好这两个东西,再去编译python
3)安装python3.7.3
终于来了,开始安装python3.7.3,方法与上两个的安装类似
下载
1
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
解压并cd到目录下
1
2
3sudo tar zxvf sqlite-autoconf-3280000.tar.gz
cd sqlite-autoconf-3280000编译
1
./configure --prefix=/usr/local/python3.7 --with-openssl=/usr/local/openssl
这里注意用openssl
安装
1
make && make install
时间有点长,可以先干一些别的。
添加软链
1
2
3ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3.7.3
ln -s /usr/local/python3.7/bin/pip3.7 /usr/bin/pip3这里需要后面对应路径上没有已存在的同名软链,有的话可以先改下名
1
mv /usr/bin/python3.7.3 /usr/bin/python3.7.3.bak
然后就可以接着同之前的操作修改默认python版本
然后查看是否配置成功
1 | python --version |
然后这里可以尝试
1 | apt-get install python3-dev |
或者python3.7-dev大概率出现什么需要的版本是xxx,然而xxx版本正在安装,就是我最之前看吐得版本不兼容的问题,然后你如果想要升到或者降到他需要的版本就又会有其他的依赖出错,就很崩溃…
先不管,看下面的
三、Debian安装uwsgi
首先可以尝试一下pip3 install uwsgi
大概率会报错,然后把错误放网上一查,是要安一堆依赖,然后安依赖就又会出现版本冲突问题,我第一次就是在这崩的…
然后可以在官方下载源码,weget后面接的是下载链接,如果虚拟机没有网可以主机先下下来在拖进虚拟机的主目录。
下载
1
weget https://projects.unbit.it/downloads/uwsgi-2.0.18.tar.gz
解压并cd到目录
1
2tar -zxvf uwsgi-2.0.18.tar.gz
cd uwsgi-2.0.18安装
1
python setup.py install
看到一长串,有可能在最后的位置出现Python.h下面有红线,原因是缺少python-dev的依赖,如果上一步安装失败了,可以找到文件源下载下来,然后手动安装。
软件包:python3-dev(3.7.3-1)
然后会下载到一个.deb后缀的文件,拖到虚拟机主目录
1 | sudo dpkg -i python3.7-dev_3.7.3-2_amd64.deb |
由于我这个是3.7.3 -2,然后python是3.7.3 -1c…的还是冲突,我真是服了,他会提示你操作一些什么,或者
但是在包含有依赖关系的安装包手动安装的过程中会出现安装不成功的问题,这时只需输入命令:
1 | sudo apt-get -f install |
卸载安装包时,在终端中,输入:
1 | sudo dpkg -r package_name |
然后按照上述操作重新安装一下uwsgi,成功
- 添加软链
1
ln -s /usr/local/python3.7/bin/uwsgi /usr/bin/uwsgi
测试一下:
在主目录下新建一个test.py文件,添加以下内容
1 | def application(env, start_response): |
运行以下命令
1 | uwsgi --http :8000 --wsgi-file test.py |
然后打开localhost:8000,看到Hello World即成功配置
解析过程:
client <-> uWSGI <-> python
三、Debian安装Nginx
1.安装nginx
I.通过官网链接下载
具体方法与上述sqlite3相同,默认配置即可,下载链接
1 | weget http://nginx.org/download/nginx-1.17.1.tar.gz |
II.通过apt-get直接下载
1 | apt-get install nginx |
亲测这个下的是1.10版本的,比较老。
III.加载安装源导入key
Debian 环境安装新版 nginx
2.配置nginx并测试
kali linux默认80端口为Apache配置
nginx一般默认安装好的路径为/usr/local/nginx,在/user/local/nginx/conf/中打开nginx.conf,将其中的80端口改为808端口
然后运行命令行
1 | sudo service nginx start |
输入localhost:808端口查看
要注意的是如果你不关nginx服务,将会一直运行。
1 | sudo service nginx restart |
以上是nginx部分操作命令
四、Debian安装Django
跟windows安装操作一样:
1 | pip3 install Django |
然后创建项目的命令也一样
1 | django-admin startproject mysite |
如果你之前没安装sqlite3那个的话,在python manage.py startapp firstapp以及后续运行的时候就会报错
成功运行的样子:
五、Debian安装Pycharm并激活
到pycharm官网下载linux版本的tar.gz文件
安装之前先修改一下host
1 | sudo vim /etc/hosts |
在hosts文件中添加以下信息,vim下按i,左下角显示插入,修改文件,然后esc,打:wq保存文件。
1 | 0.0.0.0 https://account.jetbrains.com:443 |
打开cmd终端,输入ipconfig /flushdns,然后回车刷新dns缓存
然后解压下载的文件
1 | tar -xvzf pycharm-professional-2019.1.3.tar.gz |
解压后将pycharm文件夹移动到/usr/local/lib/目录下
进入pycharm的bin目录,执行命令:
1 | ./pycharm.sh |
默认一直敲回车就行,反正一堆英文也看不懂。
选择注册码激活(Activate code)有效期至2019年11月
1 | YZVR7WDLV8-eyJsaWNlbnNlSWQiOiJZWlZSN1dETFY4IiwibGljZW5zZWVOYW1lIjoiamV0YnJhaW5zIGpzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMTEtMjYifSx7ImNvZGUiOiJBQyIsInBhaWRVcFRvIjoiMjAxOS0xMS0yNiJ9LHsiY29kZSI6IkRQTiIsInBhaWRVcFRvIjoiMjAxOS0xMS0yNiJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE5LTExLTI2In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMTEtMjYifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0xMS0yNiJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTExLTI2In0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE5LTExLTI2In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMTEtMjYifSx7ImNvZGUiOiJSRCIsInBhaWRVcFRvIjoiMjAxOS0xMS0yNiJ9LHsiY29kZSI6IlBDIiwicGFpZFVwVG8iOiIyMDE5LTExLTI2In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMTEtMjYifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0xMS0yNiJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTExLTI2In0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTktMTEtMjYifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMTEtMjYifV0sImhhc2giOiIxMTA1NzI3NC8wIiwiZ3JhY2VQZXJpb2REYXlzIjowLCJhdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJpc0F1dG9Qcm9sb25nYXRlZCI6ZmFsc2V9-rsJR5mlJcjibqRu1gQAMUCngMe8i+AOWIi+JZkNFYPET2G1ONcLPcIzoATTRi6ofkDm5l+3Y4HXjBPjVU6bHDdMBAzCnUqpXKsCknwSYyPSU0Y5pzuLvw6O9aPlQ46UBoTEC2BL5W6f11S7NlAq7tTbDuvFUynqSGAmTEfuZtKmzRmp20ejTPuMlSO7UqSkZvkg6YvSTrax1d2K+P9SAmVGZ9iC7AzBs4AwTf84QB9qHvE/Nh0oELSHWGG9hsZZ7sVghI/39/jPQFTp8GLFsl36ZPybPhGDam721zxS9H++/eJk23Jz3nxaRluE4dWmpHrDg1qBHp8qVpSFejg2QYw==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow== |
添加快捷方式
1 | sudo gedit /usr/share/applications/Pycharm.desktop |
添加内容:
1 | [Desktop Entry] |
之后可能要到目录中运行以下命令后,才能找到快捷方式,然后拖到左侧收藏夹中。
1 | sh pycharm.sh |
六、Debian安装网易云音乐和搜狗输入法
1.网易云音乐
下载网易云音乐 for linux,下载Ubuntu64版本安装并解决依赖。
1 | sudo dpkg -i netease-cloud-music_1.1.0_amd64_ubuntu.deb |
点桌面图标启动不了,用sudo启动就OK。
1 | sudo netease-cloud-music |
2.搜狗输入法
安装搜狗输入法 搜狗输入法 for linux下载对应版本,我下载到的文件是:sogoupinyin_2.2.0.0102_amd64.deb,执行命令安装,解决依赖:
1 | sudo dpkg -i sogoupinyin_2.2.0.0102_amd64.deb |
重启虚拟机
解决中文输入法不可用的问题
输入的时候各种ctrl+space或者ctrl+shift一通按就是什么也看不到?因为根本就没有Ui控件…你需要安装输入法前端所需的ui动态库。
1 | apt-get install fcitx-ui-classic && apt-get install fcitx-ui-light |
然后你就可以边听音乐边,用着搜狗输入法,打python代码了,下篇开始写如何用nginx+uswgi部署Django项目。