apache常见错误现象

原创 2007年10月15日 14:25:00
[常见错误现象1]
关键词      client denied by server configuration
表象          访问了http://localhost:80/mysite/ 后,假如发现图片没有加载,或者css没有应用上,并且httpd.conf文件中Location的配置绝对路径肯定没错。
 
解释         
第一,   首先检查httpd.conf配置Alias的配置,
看看Alias设置的路径是否正确,
Alias /site_media c:/django/myproject/media
请保证您附加的这个路径肯定是你的图片或者css存放的路径。
其次,请检查您的django项目myproject目录下的settings.py,保证MEDIA_ROOTSTATIC_PATHTEMPLATE_DIRS这三个参数指向的绝对路径正确无误。
最后,如果上面的参数都没错,却还是不行。那么请您检查Apache的日志文件
Apache2.2/logs/error.log
如果您发现有这样的错误提示:
错误日志
[Mon Nov 20 17:27:08 2006] [notice] Child 4172: Starting thread to listen on port 80.
[Mon Nov 20 17:27:08 2006] [error] [client 127.0.0.1] client denied by server configuration: c:/Django/myproject/media/css/global.css, referer: http://localhost:80/mysite/
那么说明是因为对这些资源文件的访问被拒绝了。
此时,请您浏览 http://localhost:80/site_media/css/global.css ,如果遇到了HTTP 403错误,就说明是权限问题。
此时,请到httpd.conf,增加如下配置来允许静态资源文件夹被访问:
增加的配置行
# 对需要访问的区域,可以增加正确的Directory
# 否则会得到这样的错误:client denied by server configuration: c:/Django/myproject/media/css/global.css, referer: http://localhost:80/mysite/
<Directory "c:/Django/myproject/media/">
Order Deny,Allow
Allow from all
</Directory>
重启Apache服务。
 
[常见错误现象2]
关键词      EnvironmentError: Could not import settings
表象          访问了http://localhost:80/mysite/ 后,直接页面报告如下错误:
页面错误输出
1.     Mod_python error: “PythonHandler django.core.handlers.modpython”
Traceback (most recent call last):
File “C:/Python24/Lib/site-packages/mod_python/apache.py”, line 299, in HandlerDispatch
result = object(req)
File “c:/django_src/django/core/handlers/modpython.py”, line 163, in handler
return ModPythonHandler()(req)
File “c:/django_src/django/core/handlers/modpython.py”, line 125, in __call__
if settings.ENABLE_PSYCO:
File “c:/django_src/django/conf/__init__.py”, line 27, in __getattr__
self._import_settings()
File “c:/django_src/django/conf/__init__.py”, line 54, in _import_settings
self._target = Settings(settings_module)
File “c:/django_src/django/conf/__init__.py”, line 82, in __init__
raise EnvironmentError, “Could not import settings ‘%s’ (Is it on sys.path? Does it have syntax errors?): %s” % (self.SETTINGS_MODULE, e)
EnvironmentError: Could not import settings ‘myproject.settings’ (Is it on sys.path? Does it have syntax errors?): No module named myproject.settings
 
这是开始配置django+apache最容易遇到的问题,:D。
 
解释
这是因为apache在系统目录下找不到myproject/settings.py文件。
首先检查PythonPath设置的路径是否正确:
PythonPath "sys.path+['c:/django']"
注意,这个'c:/django'路径实际是我们的项目路径c:/django/myproject的上一级目录!不要写错了。
增加的配置行
#  mysite目录路径: c:/django/myproject
# 但是对于PythonPath,必须设置成这个目录的上一级目录!
# this site url:http://localhost:80/mysite/
<Location "/mysite/">
    SetHandler python-program
    PythonPath "sys.path+['c:/django']"
    PythonHandler django.core.handlers.modpython   
    SetEnv DJANGO_SETTINGS_MODULE myproject.settings
    PythonInterpreter mysite
    PythonDebug On
</Location>
 
配置Django到Apache的步骤:
如何在Windows环境下安装Apache和mod_Python, 这篇Blog解释得很明白,我下面的这些步骤得到了验证。
1
http://httpd.apache.org/
来获取apache_2.2.3-win32-x86-no_ssl.msi这个安装文件;
运行这个msi即可顺利安装Apache。
2
网络上有很多说可以利用Apache和mod_python源代码来编译安装mod_python的,但是如果你仅仅想快速安装,那么请从
http://www.apache.org/dist/httpd/modpython/win/3.2.10/
直接下载
mod_python-3.2.10.win32-py2.4-apache2.2.exe
文件,运行这个exe即可顺利把mod_python安装到Python2.4以及Apache2.2;
由于GFW的封锁,可能您无法访问apache网站,那么可以从这里下载:
http://www.cnblogs.com/Files/zhengyun_ustc/mod_python-3.2.10.win32-py2.4-apache2.2.rar
3
我们用
Python django-admin.py startproject myproject
命令,在C盘的django目录下创建了一个Django项目myproject。我们把它引用的图片文件和css文件等静态资源都放在myproject文件夹下的media目录中。
此时,将myproject目录下的settings.py文件中的这三个参数修改一下,主要是为了从相对路径变成绝对路径:
修改的配置行
# Django settings for myproject project.
'''
将相对路径改为绝对路径。主要有:
MEDIA_ROOT
TEMPLATE_DIRS
STATIC_PATH
'''
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = 'c:/django/myproject'
STATIC_PATH = 'c:/django/myproject/media'
TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates".
    # Always use forward slashes, even on Windows.
    'c:/django/myproject/templates',
)
切记切记,一定要保证这三个参数是绝对路径。
4
配置Apache的httpd.conf配置文件:
首先,在“Dynamic Shared Object (DSO) Support”的配置下增加一行
LoadModule python_module modules/mod_python.so
这个必须手动添加。
5
我们列出此时Apache所需要的参数分别为:
项目名:myporject
试图访问的URL为:http://localhost:80/mysite/
静态资源文件的存放目录:c:/django/myproject/media
项目文件夹路径:c:/django/myproject
好了,此时你就应该在httpd.conf文件的最后附加这段配置,以便让Apache知道到哪里去定位myproject/settings.py文件:
增加的配置行
#  mysite目录路径: c:/django/myproject
# 但是对于PythonPath,必须设置成这个目录的上一级目录!
# this site url:http://localhost:80/mysite/
<Location "/mysite/">
    SetHandler python-program
    PythonPath "sys.path+['c:/django']"
    PythonHandler django.core.handlers.modpython   
    SetEnv DJANGO_SETTINGS_MODULE myproject.settings
    PythonInterpreter mysite
    PythonDebug On
</Location>
对于上面的配置,Limodou注释道:“上面 PythonPath 主要是将 myproject的目录加入到 sys.path ,以便 Django 可以找到。需要使用绝对路径。
SetEvn 中设置的 DJANGO_SETTINGS_MODULE 就对应于你的 项目名.配置文件。因此为了能导入 项目名.配置文件,就需要前面的 PythonPath 的设置。
PythonDebug 和 PythonAutoReload 建议在生产时设为 Off 。”
为了让图片、css、script能够被Apache成功加载,还需要在httpd.conf最后附加这段配置:
增加的配置行
#Alias /site_media 是用来将 myproject的静态文件设置一个 URL 访问的别名。
Alias /site_media c:/django/myproject/media
<Location "/site_media/">
       SetHandler None
</Location>
 
#Alias /media 是将 Django Admin 的静态文件设置一个 URL 的访问别名。
Alias /media c:/Django-0.95/django/contrib/admin/media
<Location "/media/">
       SetHandler None
</Location>
 
# file types we want to serve statically
# case insensative match
<LocationMatch "(?i)/.(jpg|gif|png|txt|ico|pdf|css|jpeg)$">
       SetHandler None
</LocationMatch>
 
LimodouStep by step特地说“同时可以注意到 settings 我改为了 settings_apache 了。一方面将要把其中的内容有关相对路径的东西改为绝对路径,另一方面我还想保持现在的 settings.py 。”这也是一个很好的做法。
最后,修改MaxRequestsPerChild为1,这是一个可选项。Limodou是这么说的“同时如果你不想每次重启Apache 来进行测试,可以将: MaxRequestsPerChild 0. 改为: MaxRequestsPerChild 1
 
重启Apache服务。
6:
浏览 http://localhost:80/mysite/ 即可。
 

关于apache的几个常见问题

一.安装apache的时候总是不成功,提示:failed to open the winnt service manager    原因:软件安装时与windows7的“用户账户控制”(UAC)...
  • tianyazaiheruan
  • tianyazaiheruan
  • 2013年12月28日 22:04
  • 2750

apache配置https协议常见问题解析

配置https协议: 1、安装好apache环境,注意要装ssl版本的。这里装在c:/apache目录下。 2、生成服务器证书 1)在DOS命令下进入apache/bin目录 2)在windo...
  • h330531987
  • h330531987
  • 2017年07月11日 18:30
  • 300

代码中的常见的问题总结

新参与一个项目之中,分配了一个任务很快完成后就开始读团队中其余队友的代码,算是熟悉一下项目的整体流程及实现方式。并且在读代码的过程中发现了不少的问题或者毛病,在此进行总结以勉励自己不要犯这种低级的错误...
  • chunqiuwei
  • chunqiuwei
  • 2016年06月25日 16:16
  • 1172

【智能车新手入门 】-JLINK v8常见问题以及解决办法

在智能车编程过程中,相信大部分程序猿都有一个忠实可靠的小伙伴—JLINK,JLINK出现问题而导致程序无法下载绝对是一件很头疼的事情吧。本期的智能车新手入门就来给大家谈谈JLINK v8经常会出现的问...
  • DEMOK2010
  • DEMOK2010
  • 2014年10月08日 13:49
  • 1547

web开发常见问题集锦

1.JS控制HTML元素的显示和隐藏 利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位。 ...
  • q121516340
  • q121516340
  • 2016年05月17日 15:06
  • 1338

Fiddler使用技巧及常见问题

Fiddler使用技巧及常见问题 一、会话列表中添加显示服务器IP和应用服务器: 二、无法代理本地web服务器的访问请求 三、fiddler模拟限速 四、解决HTTPS请求显示“Tunnelto 44...
  • SD_JZZ
  • SD_JZZ
  • 2016年12月16日 12:42
  • 1786

ambari系列--报错问题

hbase 启动不起来,通常是因为节点日期不同步。 HDFS 无法启动,通常是因为hdfs 进入了安全模式,需要先退出来,再启动。 hadoop dfsadmin -safemod...
  • qq_19968255
  • qq_19968255
  • 2017年06月06日 15:40
  • 1203

nfs常见问题解决方法

http://blog.csdn.net/wuxinyicomeon/article/details/6292132 网络文件服务器(Network File System,简称NFS),是分布...
  • kelsel
  • kelsel
  • 2016年10月08日 16:50
  • 101

springmvc环境搭建以及常见问题解决

1.新建maven工程 a)  打开eclipse,file->new->project->Maven->Maven Project  b)  下一步 c)   选择...
  • u013150916
  • u013150916
  • 2017年06月05日 15:25
  • 282

软件常见故障的现象、故障排除的方法

软件常见故障的现象:*计算机自检后无法初始化系统—-这一般是由于系统启动相关的文件被破坏所致。 *计算机的设备驱动程序安装不当造成设备运行不正常。 *运行缓慢—系统由于长期运行产生了大量的垃圾文件...
  • xiaozhegaa
  • xiaozhegaa
  • 2016年11月27日 13:29
  • 1075
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:apache常见错误现象
举报原因:
原因补充:

(最多只允许输入30个字)