首先安装pip:
安装pip是为了更好的安装别的环境,这个不是必须的用别的也行,安装命令如下:
sudo apt-get install python-pip
安装django:
安装django的命令为:sudo pip install Django
安装nginx:命令为:sudo pip install install nginx
安装完成后有可能还会用到下面三个命令:
sudo service nginx start
服务器启动命令
sudo service nginx stop
服务器停止命令
sudo service nginx restart
服务器重启命令
接下来是配置nginx:
在安装的nginx目录下找到nginx.conf文件,(我的目录是/etc/nginx/nginx.conf)用命令sudo vim /etc/nginx/nginx.conf
打开配置,在http里面提添加以下配置:
server {
listen 8080;
server_name localhost;
charset UTF-8;
access_log /var/log/nginx/myweb_access.log main;
error_log /var/log/nginx/myweb_error.log ;
client_max_body_size 75M;
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'POST';
include uwsgi_params;
#这个端口后面我会说到
uwsgi_pass 127.0.0.1:8000;
uwsgi_read_timeout 2;
}
location /static {
# expires 30d;
autoindex on;
add_header Cache-Control private;
#这里配置你项目的静态文件的目录
alias /home/myweb/zhuanli/zhuanli_app/static/;
}
}
# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;
完成上面的配置后用服务器重启命令重启下nginx,在介绍个命令如果完成nginx的配置后想看看是不是有语法错误可以用:nginx -t
来检测下。这时候去刘浏览器访问http://127.0.0.1:8088/如果出现welcome to nginx则说明nginx配置成功。
配置和安装uwsgi
命令如下:sudo pip install uwsgi
下面测试uwsgi是不是可以使用,创建test.py文件(这个文件可以随意放就是你下面运行的时候路径写对就好)::
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
下面cd到你放这个test.py的目录下执行一下命令:uwsgi --http :8001 --wsgi-file test.py
去浏览器访问:127.0.0.1:8001如果浏览器出现holle word则说明uwsgi安装完成
配置usgi
如果你上面的步骤都已经完成则说明你的nginx和uwsgi都已经可以单独完成现在这一步就是为了让他们协同合同,
首先在django项目目录下创建my_uwsgi.ini文件,文件里面填写内容如下:
# myweb_uwsgi.ini file
[uwsgi]
# Django-related settings
#看见这个端口熟悉吗?对就是在nginx里面有一个127.0.0.1:8000,这个端口要和nginx里面的这个端口一致
socket = :8000
# the base directory (full path)
#这个目录是你项目的全路径,写到你的project这一层就可以
chdir = /home/fnngj/pydj/myweb
#这里面其实是用到了相对路径,可以理解为myweb这个app下面的wsgi.py这个文件
# Django s wsgi file
module = myweb.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
然后cd到myweb(也就是project路径下)执行myweb_uwsgi.ini这个文件执行命令如下:
uwsgi --ini myweb_uwsgi.ini
现在nginx和uwsgi就已经连起来了。
我遇到的问题:
-post跨域的问题,这个很是郁闷在本地测试的好好的到服务器上就是不行,我甚至都已经把setting里面有关csrf都已经注释了还是不行。解决方法是:重启uwsgi,你可以通过命令:ps -A
来查看是不是有uwsgi的进程在运行着,如果有那么就用 sudo killall uwsgi
来杀死这个进程,如果杀不死就先用命令ps -fe
来查看uwsgi的pid,然后再用命令:sudo kill -9 (pid的号)
来进行强制杀死进程,然后cd到myweb(也就是project路径下)执行myweb_uwsgi.ini这个文件执行命令如下:
uwsgi --ini myweb_uwsgi.ini
然后就可以起来了。基本上每次更改django的代码都需要这样操作下要不新的代码是不会生效的。
网友评论