# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel SQLite-devel
下载 python3
Python 下载源
1. 下载软件包
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
2. 解压
# tar -xzvf Python-3.6.1.tgz
3. 创建目录
#mkdir /usr/local/python3.6
4. 把 Python3.6 安装到 /usr/local/python3.6 目录
- # ./configure --prefix=/usr/local/python3.6
- # make && make install
5. 创建软连接
- ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python3
- ln -s /usr/local/python3.6/bin/pip3 /usr/bin/pip3
6. 查看 Python 版本
- #python --version
- Python 3.6.1
给 python3 安装 django 和 uwsgi,pymysql 以及配置启动项目的 xml 文件
- pip3 install pymysql
- pip3 install django==1.11
- pip3 install nwsgi
为了在终端中使用 uwsgi 命令, 执行以下命令
ln -s /usr/local/python3.6/bin/uwsgi /usr/bin/uwsgi3
专门用来放我们的 django 项目
mkdir /www/
将你的 django 项目放到你想放的路径下, 例如 / www/, 假设我们的 Django 项目名为 "myproject"
在你的 django 项目下新建 myproject.xml, 内容如下:
- [root@MySQL myproject]# VIM myproject.xml
- <uwsgi>
- <socket>127.0.0.1:8002</socket><!-- 内部端口, 自定义 -->
- <chdir>/www/myproject</chdir><!-- 项目路径 -->
- <module>myproject.wsgi</module>
- <processes>4</processes> <!-- 进程数 -->
- <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
- </uwsgi>
wq 保存
安装 nginx 和配置 nginx.conf 文件
下载 nginx, 执行解压命令
- wget http://nginx.org/download/nginx-1.13.7.tar.gz
- tar -zxvf nginx-1.13.7.tar.gz
进入解压后的 nginx-1.13.7 文件夹, 编译安装 nginx
- [root@MySQL myproject]# cd /soft/
- [root@MySQL soft]# cd nginx-1.13.7
- ./configure --prefix=/usr/local/nginx --with-http_ssl_module
- make && make install
nginx 一般默认安装好的路径为 / usr/local/nginx
在 / usr/local/nginx/conf / 中打开 nginx.conf, 加入以下内容, 先备份 nginx.conf 文件
- [root@MySQL nginx-1.13.7]# cd /usr/local/nginx/conf/
- [root@MySQL conf]# cp nginx.conf nginx.conf.bak
- VIM nginx.conf
- server {
- listen 8001; # 暴露给外部访问的端口
- server_name localhost;
- charset utf-8;
- #access_log logs/host.access.log main;
- location / {
- include uwsgi_params;
- uwsgi_pass 127.0.0.1:8002; # 外部访问 8001 就转发到内部 8002
- }
- location /static/ {
- alias /www/myproject/statics/; #项目静态路径设置
- }
关闭 selinux
- VIM /etc/selinux/config
- SELINUX=enforcing
改为 disabled
SELINUX=disabled
iptables 加上允许 8001,8002,3306,80 端口
VIM /etc/sysconfig/iptables
配置文件配置
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 8002 -j ACCEPT
配置好重启 iptables
[root@MySQL myproject]# service iptables restart
启动 nginx
[root@MySQL conf]# /usr/local/nginx/sbin/nginx
访问项目页面
进入你的 django 项目路径, 执行以下命令:
uwsgi3 -x myproject.xml
注: 执行该 xml 后 django 就算是启动了, 内部的 nginx 服务也将被启动, uwsgi 将能够连接到 nginx 的服务了, 此时网络应该是通畅的了.
以上步骤都没有出错的话, 打开你的浏览器, 输入以下链接, http://192.168.0.110:8001 (请将该 ip 替换成你的服务器 ip)
网站访问成功!
部署完成之后发现 django 后台 admin 访问时无样式
解决方法如下:
1. 先打开 django 项目中 settings.py 文件 (/www/myproject/myproject/settings.py), 添加如下配置
- [root@MySQL myproject]# VIM settings.py
- STATIC_ROOT = os.path.join(BASE_DIR, "statics")
2. 然后在 django 项目下 执行 python3 manage.py collectstatic 此命令是搜集静态文件的命令,
- [root@MySQL myproject]# python3 manage.py collectstatic
- You have requested to collect static files at the destination
- location as specified in your settings:
- /www/myproject/statics
- This will overwrite existing files!
- Are you sure you want to do this?
- Type 'yes' to continue, or 'no' to cancel: yes
搜集后的静态文件存放在 / home/myproject/statics / 中
3. 重新启动 uwsgi 和 nginx
- [root@MySQL myproject]# /usr/local/nginx/sbin/nginx -s reload
- [root@MySQL myproject]# pkill uwsgi
- [root@MySQL myproject]# uwsgi3 -x myproject.xml
[uWSGI] parsing config file myproject.xml
可以看到 admin 样式
来源: http://www.bubuko.com/infodetail-2995019.html