寒窗苦读十年书,闻鸡起舞自奋发
最近刚学了linux,需要进行Django部署环境,摸索了好长时间,功夫不负有心人,整理出了一套完整的操作流程,希望能给大家带来一些便利.
一. 在Linux 下开启服务, 我用的是CentOS 6.10版本
-
开启网络
-
vi /etc/sysconfig/network-script/ifcfg-eth0
-
退出保存
onboot=yes
-
重启网络服务
service network restart
-
试启动
ping www.bai.com
安装一些基础库,一般编译软件的时候需要,个人习惯装完系统就安装一下
yum -y install gcc gcc-c++ openssl-devel zlib-devel pcre pcre-devel
安装python3.5.3
-
下载Pyhton3到/usr/local 目录yum install wget
-
解压cd /usr/local wget https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz
-
进入 Python-3.5.3tar -zxvf Python-3.5.3.tgz
-
编译安装到指定路径cd Python-3.5.3
-
安装python3./configure --prefix=/usr/local/python3 --enable-shared
-
安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3make && make install
-
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
-
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)
网站访问成功!