python – 在Apache和Django的文档根问题之外放置代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在Apache和Django的文档根问题之外放置代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2964字,纯文字阅读大概需要5分钟。
内容图文
![python – 在Apache和Django的文档根问题之外放置代码](/upload/InfoBanner/zyjiaocheng/793/f6b41a6d04f546df90268838d6590236.jpg)
我无法满足Django的代码放置建议.我搜索了谷歌,并尝试了所有类型的VirtualHost配置.但是我不能像使用Django内置的测试Web服务器那样让Django站点与Apache一起工作.
我正在使用Django 1.5.4和mod_wsgi
Django文档指出:
Where should this code live?
If your background is in plain old PHP (with no use of modern frameworks), you’re probably used to putting code under the Web server’s document root (in a place such as /var/www). With Django, you don’t do that. It’s not a good idea to put any of this Python code within your Web server’s document root, because it risks the possibility that people may be able to view your code over the Web. That’s not good for security.
Put your code in some directory outside of the document root, such as /home/mycode.
在尝试这样做时,我失败了.
这是我的目录结构的一个例子:我有/ home / user / djangoRoot我想要文件根目录和/ home / user / djangoCode我想放置代码.我按照教程运行django-admin.py startproject djangoSite,所有文件夹和文件都按原样创建.数据库同步效果很好.当我使用Django内置的测试Web服务器时,我可以查看该站点.但我觉得我的apache虚拟主机出了问题,因为我无法用apache以同样的方式查看网站.
再次,本着保持代码不在文档根目录的精神,我希望djangoRoot作为我的根目录,djangoCode作为我的代码目录(在运行django-admin.py start project djangoSite命令后创建的djangoSite / djangoSite目录) ).
我试过了
>将DjangoCode / DjangoSite设为我的根目录,但我可以在浏览器中看到文件结构
>消除VirtualHost中的DocumentRoot,因为有相当多的建议.
>我尝试过从django和其他人那里收集到的东西
没有用.
所以这是我目前的apache虚拟主机
WSGIPythonPath /home/user/djangoCode/djangoSite/djangoSite
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.example.com
DocumentRoot /home/user/djangoRoot
<Directory /home/user/djangoRoot>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
WSGIScriptAlias /djangoRoot /home/user/djangoCode/djangoSite/djangoSite/wsgi.py
<Directory "/home/user/djangoCode/djangoSite/djangoSite/wsgi.py">
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
...
</VirtualHost>
这目前只允许我查看没有django标志的文档根目录.
我的虚拟主机配置错了吗?
我把这个“代码超出文档根目录太远”了吗?
解决方法:
我真的不明白为什么你这么难找到,但你根本就没有跟着我.文档中解释的要点是,您的代码存在于文件系统中的位置完全独立于Apache为其提供服务的位置.后者由WSGIScriptAlias的第一个参数给出.前者由第二个参数给出.
文档根目录是Apache从中提供文件的默认位置.但是你没有提供文件,你正在运行代码来提供动态内容.因此,您在第一个WSGIScriptAlias参数给出的位置代理WSGI应用程序.这是您网站的根网址.在您给出的示例中,这意味着 – 假设您的域名是example.com – 您的Django应用程序可以在example.com/djangoRoot下访问.如果您在浏览器中实际访问过该URL,则会在urls.py中看到/中配置的任何页面.这几乎肯定不是你想要的.在绝大多数情况下,第一个参数 – 如文档中所示 – 应该只是/.
所以我不确定你为什么认为这违反了安全警告.在这里,文档根目录保持默认状态 – 通常是/ var / www – 但代码位于/ home / user / djangoCode / …并在/中提供.
内容总结
以上是互联网集市为您收集整理的python – 在Apache和Django的文档根问题之外放置代码全部内容,希望文章能够帮你解决python – 在Apache和Django的文档根问题之外放置代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。