我有一台安装了Apache httpd 2.2.22和Python 2.7.3的Debian 7.1 amd64服务器,用于服务我已上过的django应用程序到Apache使用mod_wsgi和默认的django wsgi.py
脚本。 Django是最新的1.5.4版本,在Debian提供的pip
管理的virtualenv中包含所有python软件包依赖项。运行Django应用程序的Apache 2.2.22显示错误“客户端被服务器配置拒绝”
我在整个django应用程序和python virtualenv目录上运行了chown -R www-data:www-data
以使其工作。这个虚拟主机的Apache配置是非常小的,并遵循官方Django指南https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/。
我设法使它工作,除了有些客户端获得apache(而不是django)403 Forbidden错误页面。并且这个虚拟主机的apache错误日志文件包含这样的行:
[client x.x.x.x] client denied by server configuration: /path/to/django/proj/app/wsgi.py
它对其他客户端来说工作得很好。出了什么问题?
编辑:这里是Apache的配置:
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias www.mydomain.com
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/error_django.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access_django.log combined
Options -Indexes +FollowSymLinks +MultiViews
Alias /robots.txt /path/to/django/proj/static/robots.txt
Alias /favicon.ico /path/to/django/proj/static/img/favicon.ico
Alias /media/ /path/to/django/proj/media/
Alias /static/ /path/to/django/proj/static/
<Directory /path/to/django/proj/media>
Order allow,deny
Allow from all
</Directory>
<Directory /path/to/django/proj/static>
Order allow,deny
Allow from all
</Directory>
<Directory /path/to/django/proj/app>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.mydomain.com
RewriteRule (.*) http://mydomain.com$1 [R=301,L]
</IfModule>
<IfModule mod_wsgi.c>
WSGIDaemonProcess mydomain.com processes=10 threads=15 display-name=%{GROUP} python-path=/path/to/django/proj:/path/to/virtualenv/lib/python2.7/site-packages
WSGIProcessGroup mydomain.com
WSGIPassAuthorization On
WSGIScriptAlias//path/to/django/proj/app/wsgi.py
</IfModule>
</VirtualHost>
请问您可以发布您的apache虚拟主机配置.. –
@RahulPatil我添加了配置。 – aalizadeh
一旦检查这个http://paste.ubuntu.com/6231464/ –