因工作业务需要,将django部署在apache上其中一波三折,不过都已经解决了
请参考官方文档 https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/
因为与线上的业务有冲突,所以使用了python的virtualenv库。所以准备工作是先安装一些必要软件
pip install virtuallenv
yum install httpd
yum install mod_wsgi.x86_64
设置项目工程目录
新建工程目录:mkdir /data/rest
切换到新建的目录里:cd /data/rest/并设置为虚拟环境:virtualenv env
为了使用虚拟环境env,需要激活虚拟环境为接下来的包安装做准备 :source env/bin/activate,激活后,命令行的左边的提示符将会变成(venv)Your-Computer:your_project UserName#)(本例中是 (env) [root@localhost rest]#)这样的结构,这是为了让你知道已经激活虚拟环境了。现在开始你使用pip安装的包将会安装在虚拟目录下,与全局的python的安装分离了
激活后就可以将所需安装的包安装在虚拟环境目录中了,本次需要安装django及所需要的依赖库,arrow, pillow,pycrpto,pymongo,Mysql-Python. pip install django==1.9.4 ...
安装完后可以运行python manage.py runserver 127.0.0.1:8000进行调试,调试后可以进行apache配置了
apache配置:
如要设置端口的将Listen 80修改为你要监听的端口号2.
在httpd.conf最底下添加如下配置信息
WSGIScriptAlias / /data/rest/rest/wsgi.py
WSGIPythonPath /data/rest:/data/rest/env/lib/python2.7/site-packages
#因为需要使用rest接口所以下面这些设置为On
WSGIPassAuthorization On
#WSGIDaemonProcess www.example.com python-path=/path/to/mysite.com:/path/to/venv/lib/python2.7/site-packages
#WSGIProcessGroup www.example.com
#ServerName 10.10.86.211:8000
Alias /static /data/rest/env/lib/python2.7/site-packages/django/contrib/admin/static
Require all granted
保存即可完成配置
顺便说下在django的配置文件中必须配置ALLOWED_HOSTS,否则会一直出现 Bad Bad Request (400) 错误
ALLOWED_HOSTS = [
'.example.com', # Allow domain and subdomains
'.example.com.', # Also allow FQDN and subdomains
'10.10.86.211', # allow ip
] 域名一定要设置对了
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com