我能弄明白安装这个东西,真是奇迹阿。
主要是英文文档好像不是针对的Centos7,文档里面的那些命令,根本运行不了!
周日加班,弄粗来拉,好有成就感。
英文真的是非常有必要学精的
毕竟很多资料只有英文的,比如就说这个uWSGI
的配置问题,可能有人翻译了一点,就拿来放到了自己的博客,但是那毕竟是别人的,相比于官方,他们没有那么全面和透彻。
极力推荐英文文档Setting up Django and your web server with uWSGI and nginx。
在这里我就不翻译原文档了,只是列出我遇到的问题
我不知道安装uwsgi和nginx到底是在哪个环境
就是说,不知道是一定要virtualenv
,还是要在正常的系统环境,反正我在两种环境都有安装。
总之安装这两个软件都没有问题,最终单个软件测试都可以使用。
nginx配置文件也是个坑
nginx
的安装方法和安装目录,Centos和文档中的一点都不一样。
Centos 7安装到了/etc/nginx/
目录。配置文件,系统默认的都不要动,可以自己在/etc/nginx/conf.d/
目录下面新建一个mysite_nginx.conf
:
1 |
|
uwsgi_params的下载地址是https://github.com/nginx/nginx/blob/master/conf/uwsgi_params
第4行的端口,就是运行uWSGI时配置的端口。因为测试uWSGI的时候,要运行`uwsgi –socket :8001 –wsgi-file test.py’,确保nginx设置的第4行中的端口和这里运行uWSGI时的端口一致。
运行这个测试语句后,如果不报错,而且浏览器输入域名,不带端口(因为配置nginx时端口写的是80),能打开test.py的内容(比如Hello World),就表示完成拉!
注意要保证nginx是运行状态。
下面就看看uWSGI配置。
不要以为uWSGI简单
谁叫我们是新手呢,有些坑真是要走一遍。
直接就说.ini配置文件吧,可以在任意位置创建一个uwsgi.ini文件,要找一个好记的位置,以后每次运行uwsgi都要使用这个文件。
1 |
|
如果中文标出的部分,其他内容可以按需求添加。
这里遇到的坑就是这个虚拟环境目录!
我的天,我一直认为是virtualenv的安装目录,结果怎么试都不对!
其实是,在最开始要安装virtualenv时,紧接着创建的虚拟环境的目录,比如/root/virtual_env/。
或者,你总该知道虚拟环境怎么激活吧。进入虚拟环境的命令是source /path/to/virtual_env/bin/activate
,那么,你的虚拟环境目录就是/path/to/virtual_env/
。
这个配置文件就是为了再次运行uWSGI时,不再仅仅是运行test.py,而是真实的项目。
不要忘记,nginx配置文件要改一下第4行,把第4行注释掉行首加一个#号
,第3行改成server unix:///etc/nginx/mysite.sock;
,这里的sock文件和uWSGI里的sock文件的目录是一样的。
终于配置完成,下面就开始试试吧。
- 打开nginx服务
systemctl start nginx
- 运行uwsgi
uwsgi --ini /your/ini/file/path/uwsgi.ini
- 打开浏览器输入你的域名。
- 能正常打开就完成。
另外,官方文档中其他内容我还在研究,等有了结果再回来补充。