Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将django部署到UserDir_Python_Django_Apache - Fatal编程技术网

Python 将django部署到UserDir

Python 将django部署到UserDir,python,django,apache,Python,Django,Apache,我想在我们的学生服务器上部署我的django pet项目。我们有带UserDir mod的apache2,我没有访问apache2配置文件的权限。如何部署?:-D 我来自PHP背景,通过将PHP脚本上传到我的public\uHTMLdir来部署脚本,所有内容都显示在我的桌面上。我阅读了django文档,它说我应该在apache配置文件中添加一些东西。我没有权限访问它,所以我尝试将它放在我的public\uhtmldir中的.htaccess中,但没有成功。我在谷歌上搜索了很多,我想我读到了一些你

我想在我们的学生服务器上部署我的django pet项目。我们有带UserDir mod的apache2,我没有访问apache2配置文件的权限。如何部署?:-D

我来自PHP背景,通过将PHP脚本上传到我的
public\uHTML
dir来部署脚本,所有内容都显示在我的桌面上。我阅读了django文档,它说我应该在apache配置文件中添加
一些东西。我没有权限访问它,所以我尝试将它放在我的
public\uhtml
dir中的.htaccess中,但没有成功。我在谷歌上搜索了很多,我想我读到了一些你无法在.htaccess中输入
的地方,但现在我找不到那句话

那么,这里有人在不骚扰apache管理员的情况下将django部署到UserDir吗

编辑: 我按照Graham Dumpleton的建议测试了mod_python,我可以毫无问题地使用mod_python。此外,我还找到了错误日志,下面是当我在.htaccess中放入
一些内容时,错误日志的内容:


“[Thu Oct 01 21:33:19 2009][alert][client 188.129.74.66]/path/to/my/.htaccess:是否在基础Apache上启用了
mod_python
mod_wsgi
?您至少需要这样做。

是否允许您在80以外的端口上运行自己的长时间运行的服务器进程?这可能允许您使用Django测试服务器或您自己的带有l的Apache副本来提供Django内容ocal配置文件。

如果安装了mod_python,请首先查看您是否可以在不需要管理员执行任何操作的情况下实际使用它。阅读:

除非您是受信任的用户或管理员不知道他们在做什么,否则他们不应该允许您使用mod_python,因为您的代码将以Apache用户的身份运行,如果其他人也以同样的方式运行应用程序,您可能会相互干扰应用程序和数据。换句话说,它不安全,不应该在shar中使用多个用户在同一Apache实例上的托管环境


更新1

在mod_python正常工作的基础上,您应该能够使用以下内容替换mptest.py的内容:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import sys
sys.path.insert(0, '/some/path/to/project/area/mysite')
sys.path.insert(0, '/some/path/to/project/area')

from django.core.handlers.modpython import handler as _handler

def handler(req):
  req.get_options()['django.root'] = '/~myusername/mptest.py'
  return _handler(req)
显然,其中的各种路径和值应该根据您的命名进行更改

该站点将以“/~myusername/mptest.py”访问

此时,您将发现使用mod_python是您无法控制Apache的地方。这是因为当您更改站点中的代码时,您需要请求管理员为您重新启动Apache,以便获取所做的更改

在守护进程模式下使用mod_wsgi并让您作为守护进程的所有者会更好,但如果他们已经运行mod_python,我不建议他们同时加载这两个模块,因为mod_python问题在某些情况下会导致mod_wsgi的使用混乱,如果他们没有正确安装python,您可能会遇到很多问题不值得这么麻烦

简而言之,在您无法控制Apache的共享托管环境中使用mod_python既愚蠢又不安全


尽管如此,我已经记录了如何从每个用户目录中运行Django,因为我认为以前在任何地方都没有记录过它。

您是否尝试过使用
而不是
?如果本地策略没有阻止此操作,您应该可以执行以下操作:

<Directory /path/to/your/home/public_html>
# mod_python stuff here
</Directory>

另一方面,上面假设使用非常棒的、强烈推荐的和在您的主目录中创建本地python沙盒。这将大大简化以非管理员身份运行的生活,或者当您有多个项目时。如果您不使用virtualenv,则可以完全删除上面的
python路径。

如果mod u fcgi是con我想,你可以使用它。参见

他说他没有访问Apache配置文件的权限,所以mod_wsgi或mod_python都没有任何用处。即使管理员安装了mod_python,它也没有用,因为它不提供用户分离。你可以对mod_wsgi的守护程序模式进行用户分离,但意味着在pe上进行手动配置r管理员的用户基础,他们不太可能希望这样做。另一个选项是查看Apache实例是否安装了一个FASTCGI模块。mod_python已启用,mod_wsgi未启用。mod_FASTCGI也未启用。mod_python已启用,mod_wsgi未启用。我想我可以让我的管理员启用mod_wsgi,如果它是n的话太麻烦了。这可能是可能的。Django测试服务器不可能用于生产,但是如果没有其他的解决方案,我自己的Apache副本和可选端口号可能是一个解决方案。现在,这是我可以与我的管理员联系的东西。谢谢。对于延迟,我非常忙,明天下午(GMT)我将测试我的mod_python.这篇文章看起来很棒,我发现我们的服务器上有mod_python 3.3.1,但我现在必须走了,所以我没有进一步的进展。我明天会回来,我真的很想解决这个问题…该死。我无法从那篇文章中运行mptext.py,我被禁止使用403。我给我的管理员发了一封电子邮件,要求他允许我使用mod_python。我会的当他回复时再联系你,我得到了一个工作的mod_python环境。最后,我无法通过你提供的链接完成测试,因为我的.htaccess是700。我修复了这个问题,现在我可以看到“mptest.py”因此,我可以毫无问题地使用mod_python。顺便说一句,我的管理员告诉我错误日志在哪里,所以我在原始问题中添加了额外的信息。我可能应该先检查一下。在.htaccess文件中不能使用位置或目录指令。
<Directory /home/you/public_html>
WSGIApplicationGroup PROJECT
WSGIDaemonProcess YOU threads=15 processes=2 python-path=/home/YOU/.virtualenvs/PROJECT-env/lib/python2.6/site-packages
WSGIProcessGroup YOUR_GROUP
WSGIScriptAlias / /home/YOU/PROJECT/deploy/PROJECT.wsgi
</Directory>