centos7搭建python的web环境

安装以下

python3 + nginx + virtualenv + uwsgi + django

安装前准备

1、python3和nginx的安装包

在这里插入图片描述

2、更新yum源
[root@localhost admin]# yum clean all
[root@localhost yum.repos.d]# yum makecache

说明:更新yum是因为可以安装到最新的rpm包。

步骤1:安装python3

1、 安装python所需要的RPM包

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel  libffi-devel gdbm-devel db4-devel libpcap-devel gcc make python-devel

2、新建文件夹

mkdir /usr/local/python3

3、解压文件

tar -zxvf Python-3.7.4.tgz

4、进入文件夹

cd Python-3.7.4

5、编译安装

[root@localhost Python-3.7.4]# ./configure --prefix=/usr/local/python3
[root@localhost Python-3.7.4]# make&&make install

6、备份python2

 mv /usr/bin/python /usr/bin/python.bak

7、创建python软连接

ln -s /usr/local/python3/bin/python3 /usr/bin/python

8、创建pip软连接

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

9、检查是否安装成功

python -V   
pip -V

10、修复升级python引起的问题

1)vim /usr/libexec/urlgrabber-ext-down
打开以后,找到一个/usr/bin/python的,后面加上2.7就可以了也就是/usr/bin/python2.7
2)vi /usr/bin/yum
做法和上面的一样,也是改成python2.7就可以了!
3)vim /usr/bin/firewall-cmd, 将#!/usr/bin/python -Es 改为 #!/usr/bin/python2 -Es
4)vim /usr/sbin/firewalld, 将#!/usr/bin/python -Es 改为 #!/usr/bin/python2 -Es (这一步是针对于防火墙报错,进行的修改)

安装nginx

1、获取nginx-1.16.1

wget http://nginx.org/download/nginx-1.16.1.tar.gz

2、下载完成后,执行解压命令:

[root@localhost admin]# tar -zxvf nginx-1.16.1.tar.gz 

3、 配置安装环境

[root@localhost nginx-1.16.1]# ./configure  --prefix=/usr/local/nginx
[root@localhost nginx-1.16.1]# make && make install

4、启动nginx

[root@localhost nginx-1.16.1]#  /usr/local/nginx/sbin/nginx
说明:没有任何报错即是安装成功。

5、停止或者重新载入nginx

$ /usr/local/nginx/sbin/nginx -s stop
$ /usr/local/nginx/sbin/nginx -s reload

6、加载配置文件

$ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

7、测试配置文件是否正常:

$ /usr/local/nginx/sbin/nginx -t

8、创建nginx的软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

9、编辑配置文件
在这里插入图片描述
在下面添加1,2,3,注意要把注释去掉

location / {
   root   html/myproject/love;  #1
   include uwsgi_params;   #2
   uwsgi_pass 127.0.0.1:8000; #3
   index  index.html index.htm;
}

10、新建项目文件夹

mkdir /usr/local/nginx/html/myproject

安装虚拟环境

[root@localhost myproject]# pip install virtualenv

结果
在这里插入图片描述

[root@localhost venv]# virtualenv venv
bash: virtualenv: 未找到命令...

解决方案:添加全局环境变量

[root@localhost python3]# vim /etc/profile
添加一行代码到结尾:PATH=$PATH:/usr/local/python3/bin
[root@localhost python3]# source /etc/profile
[root@localhost python3]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:/usr/local/python3/bin

安装Django

pip install django

结果
在这里插入图片描述

安装 uwsgi

 pip install uwsgi
 ln -s /usr/local/python3/bin/uwsgi  /usr/bin/uwsgi

结果
在这里插入图片描述

新建虚拟环境

[root@localhost myproject]# virtualenv venv

结果
在这里插入图片描述

[root@localhost bin]# source /usr/local/nginx/html/myproject/venv/bin/activate
[root@localhost myproject] django-admin startproject love
(venv) [root@localhost love]# python manage.py runserver 0.0.0.0:8000

报错
ModuleNotFoundError: No module named ‘django’
在这里插入图片描述
解决方法

[root@localhost love]# vi manage.py 
添加以下内容:
sys.path.append('/usr/local/python3/lib/python3.7/site-packages')

再次输入

[root@localhost love]# python manage.py runserver 0.0.0.0:8000

报错
raise ImproperlyConfigured(‘SQLite 3.8.3 or later is required (found %s).’ % Database.sqlite_version)
在这里插入图片描述
解决方法

[root@localhost love]# vi settings.py 
注释下面两行内容或者升级sqlite3
DATABASES = {
'default': {
    #'ENGINE': 'django.db.backends.sqlite3',
    #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

创建配置文件config.ini

在这里插入图片描述
内容如下

[uwsgi]
chdir= /usr/local/nginx/html/myproject/love
module=love.wsgi
master= true
processes= 3
socket = 127.0.0.1:8000
chmod-socket= 666
vacuum= true
enable-threads = true
daemonize=uwsgi.log

重新加载nginx配置文件

[root@localhost love]# nginx -c /usr/local/nginx/conf/nginx.conf
[root@localhost love]# nginx -s reload
[root@localhost love]#  uwsgi --ini config.ini

结果
在这里插入图片描述
在这里插入图片描述
整个部署环境就此就结束啦,后续添加自启动功能。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值