Linux下进行Django部署

1 篇文章 0 订阅
1 篇文章 0 订阅

寒窗苦读十年书,闻鸡起舞自奋发

最近刚学了linux,需要进行Django部署环境,摸索了好长时间,功夫不负有心人,整理出了一套完整的操作流程,希望能给大家带来一些便利.

一. 在Linux 下开启服务, 我用的是CentOS 6.10版本

  1. 开启网络

  2. vi /etc/sysconfig/network-script/ifcfg-eth0

  3. 退出保存

       onboot=yes
    
  4. 重启网络服务

    service network restart
    
  5. 试启动

    ping www.bai.com
    

安装一些基础库,一般编译软件的时候需要,个人习惯装完系统就安装一下

yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel

安装python3.5.3

  1. yum install wget
    
    下载Pyhton3到/usr/local 目录
  2. cd /usr/local     wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
    
    解压
  3.  tar -zxvf Python-3.5.3.tgz
    
    进入 Python-3.5.3
  4. cd Python-3.5.3
    
    编译安装到指定路径
  5. ./configure --prefix=/usr/local/python3 --enable-shared
    
    安装python3
  6.  make && make install
    
    安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3
  7. ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    
  8.  python3 -v
    

python3.5安装报错

python3.5: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory

原因是因为python运行时没有加载到libpython3.5m.so.1.0 这个库文件 将其复制到响应目录OK
解决方法:

[root@www Python-3.5.0]# cd /root/test/Python-3.5.0 进入解压后的编译目录

[root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/local/lib64/

[root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/lib/ [root@www Python-3.5.0]# cp libpython3.5m.so.1.0 /usr/lib64/

安装setuptools

  •  wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
    
  •  tar -zxvf setuptools-19.6.tar.gz	
    
  •  cd setuptools-19.6
    
  •  python3 setup.py build
    
  •  python3 setup.py install
    
  •  (如有报错: RuntimeError: Compression requires the (missing) zlib module,则需要安装yum install zlib-devel,安装后要重新编译 python3.5:  
    
     make && make install)
    

安装pip3

  •  wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
    
  •  tar -zxvf pip-8.0.2.tar.gz
    
  •  cd pip-8.0.2
    
  •  python3 setup.py build
    
  •  python3 setup.py install
    
  •  使用pip安装包测试:
     	 如报错,则缺少yum install openssl-devel,安装完成后一样需要重新编译python3.5(make&&make install)
    
  •   ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    

    更新pip3

  •   pip3 install --upgrate pip
    

安装virtualenv ,建议大家都安装一个virtualenv,方便不同版本项目管理。

  • 安装virtualenv

     pip3 install virtualenv
    
  • 建立软链接

     ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
    
  • 安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。(个人习惯,其它人可根据自己的实际情况处理)

     mkdir -p /data/env mkdir -p /data/wwwroot
    
  • 切换到/data/env/下,创建指定版本的虚拟环境。

     virtualenv --python=/usr/bin/python3 pyweb
    
  • 然后进入/data/env/pyweb/bin 启动虚拟环境:

     source activate
    

虚拟环境里用python3安django和uwsgi

安装django

pip3 install django==2.1.1

安装uwsgi:

export LDFLAGS="-Xlinker --no-as-needed"
$ pip3 install uwsgi

建立软连接

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

安装:pip install uwsgi
  •   启动:uwsgi -x 'uwsgi.xml'
      报错:uwsgi: invalid option -- 'x'
    
      原因:centos下,在没有安装libxml2时,pip安装的uwsgi无法支持xml格式的配置文件
      解决:
      rm ~/.cache/pip pip
      yum install libxml*
      pip uninstall uwsgi
      pip install uwsgi
    
      注意删除 ~/.cache/pip pip安装缓存文件
    

关闭防火墙 或者 放开80端口

  •   service iptables stop
    
  •   ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi	
    

测试uwsgi是否可用

	def application(env, start_response):
	    start_response('200 OK', [('Content-Type','text/html')])
	    return [b"Hello World"]
  •   uwsgi --http :9001 --wsgi-file app.py
    

将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp" 在你的django项目下myproject中新建 myproject.xml,内容如下:

<uwsgi>
    <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
        <chdir>/home/www/myproject</chdir><!-- 项目路径 -->
            <module>myproject.wsgi</module>
                <processes>4</processes> <!-- 进程数 --> 
    <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

安装nginx和配置nginx.conf文件

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

tar -zxvf nginx-1.13.7.tar.gz

./configure

make && make install

nginx一般默认安装好的路径为/usr/local/nginx
在/user/local/nginx/conf/中打开nginx.conf,加入以下内容

server {
    listen 8996; #暴露给外部访问的端口
    server_name localhost;
        charset utf-8;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8997; #外部访问8996就转发到内部8997
    }
    location /static/ {
        alias /home/www/myproject/myapp/static/; #项目静态路径设置
    }
}


wq保存后进入/usr/local/nginx/sbin/目录

执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:

./nginx

终端没有任何提示就证明nginx启动成功,可以通过链接查看nginx是否启动成功:
http://192.168.1.111 (请将该ip替换成你的服务器ip)

访问项目页面

进入你的django项目路径,执行以下命令:

uwsgi3 -x myproject.xml

# 以上步骤都没有出错的话,打开你的浏览器,输入以下链接,记得关闭系统防火墙或者开放8996端口
# 出错的话回到安装uwsgi处 ,有解决方法

http://192.168.1.111:8996 (请将该ip替换成你的服务器ip)
网站访问成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值