Django服务器平台搭建
- 买云服务器,选择Ubuntu系统
- 设置ssh登陆, windows平台通过Putty登陆Ubuntu云服务器. [ https://blog.csdn.net/gsls200808/article/details/49778959 ]
- 软件安装
- 系统软件升级和 数据库软件,服务区软件安装: Sudo apt-get update ,sudo apt-get upgrade ,sudo apt-get install mysql-server-5.7 , nignx ,python3-pip
- Python包安装,: pip3 install Django==1.10.5 gunicorn Django-crontab 等等 Django项目需要的python包文件
- Git 设置. Git用于将编写的源代码同步到服务器,这里也可以采用其他方式。只需要把编写的Django源代码传到服务器下即可。
- 安装 nginx , gunicorn 。Nginx 用作代理服务器 ; gunicorn 用作wsgi 服务器
- 配置nginx。 Nginx默认的安装目录在 /etc/nginx/.
nginx配置文件的路径: `/etc/nginx/sites-available/` : 先把配置文件放在这里,编辑好之后,链接到目录 `/etc/nginx/sites-enable/`
ngixn 配置文件内容:
server{
listen 80;
server_name 127.0.0.1; #访问django项目的网站
access_log /var/www/Django_project /log/nginx.access.log;#访问日志
error_log /var/www/ Django_project /log/nginx.error.log;#错误日志
location /static/ {
root /var/www/ Django_project /;
expires 30d;
}
location /media/ {
alias /var/www/ Django_project /uploads/; #Django 项目接受上传文件的目录
expires 30d;
}
location / {
#动态请求交给gunicorn,8087端口就是gunicorn用的端口
proxy_pass http://127.0.0.1:8087;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- 启动django 工程的服务,在Django_project 工程目录下执行: gunicorn -t 120 -w 2 -b 127.0.0.1:8087 Django_project.wsgi 。 Django的setting.py中要将服务器IP地址添加到ALLOWED_HOSTS。
- 如果没有问题的,现在可以在客户端浏览器中输入服务器IP地址就能看到完整的页面了
附: Mysql数据库相关命令
根据setting.py文件的配置,创建数据库和相应的用户,需要的使用的命令如下:
登陆mysql数据库客户端 mysql -u root -h localhost -p,安装mysql时,根据提示设置root账户的密码,这里使用root账号登录
创建数据库 utf-8 字符编码
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
查看,修改数据库编码
use database_name;
show variables like 'character_set_database';
alter database <数据库名> character set utf8;
删除数据库
Drop database db_name;
创建MYSQL 用户
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
授权
GRANT privileges ON databasename.tablename TO 'username'@'host';
其中的privileges包括 select , delete , update 等权限,Django操作数据库需要全部的权限,可参考如下命令
GRANT ALL ON `discuz`.* TO 'discuz'@'localhost';
查看用户权限:
show grants for username@'localhost';
gunicorn 配置
gunicorn 可简单配置为
gunicorn –b 0.0.0.0:8999 dj.wsgi
执行命令之后,可以在浏览器访问页面,访问地址: 服务器IP(x.x.x.x):8999,但是看不到静态文件(图片,CSS,JS等)。静态文件的路径需要在nginx中配置。
参考连接 http://blog.51cto.com/10452483/1769749
nginx配置
Django文件的路径 最好是放在 /var/www/ 目录下,否则访问静态文件可能因为权限问题出现 403 forbidden error 错误,可以使用root账号来减小出现这种错误的可能。参考链接 http://blog.51yip.com/apachenginx/1512.html
nginx配置文件的路径:
/etc/nginx/sites-available/ : 先把配置文件放在这里,编辑好之后,链接到目录 /etc/nginx/sites-enable/
简单的配置文件如下:
server
{
listen 80;
location /static/ {
alias /var/www/static/; # 静态文件目录
}
location / {
proxy_pass http://127.0.0.1:8999;
}
}
不出意外应该是可以在浏览器端(访问地址: x.x.x.x)看到完整的页面了。另外要特别注意服务器开放的端口号有哪些。比如阿里云默认开放的端口号为 3389,需要自行设置一下,开放相应端口号,以免出现无法访问的问题。