回复:Django/WSGI 和 PHP 如何在 Apache 上共享 /?

回复:Django/WSGI 和 PHP 如何在 Apache 上共享 /?

回应:Django/WSGI 和 PHP 如何在 Apache 上共享 /?

你好,

您能否从 /sites-available 发布完整的配置文件

我遇到了一个问题,好像重写引擎将所有请求重定向到 django,因此静态文件和 php 文件无法使用,相反,我看到的是 django 404 页面。如果我删除重写规则,那么静态文件和 php 就可以正常工作。

这是我的 apache 配置文件,来自 /sites-available

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/www/django
    <Directory />
            Options +FollowSymLinks ExecCGI Indexes
            AllowOverride None
            DirectoryIndex index.php
            AddHandler wsgi-script .wsgi


    </Directory>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /mysite.wsgi/$1 [QSA,PT,L]

~

和我的.wsgi 文件:

导入站点

site.addsitedir('/home/user/.virtualenvs/url.com/lib/python2.6/site-packages')

导入操作系统、系统

path = '/home/www/django' 如果路径不在 sys.path 中:sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = '我的网站.settings'

sys.path.append(path + '/mysite') 导入 django.core.handlers.wsgi

_application = django.core.handlers.wsgi.WSGIHandler()

导入 posixpath def 应用程序(environ,start_response):

# Wrapper to set SCRIPT_NAME to actual mount point.
environ['SCRIPT_NAME'] = posixpath.dirname(environ['SCRIPT_NAME'])
if environ['SCRIPT_NAME'] == '/':
    environ['SCRIPT_NAME'] = ''
return _application(environ, start_response)

磁盘上的文档根目录(/home/www/django)包含 php 文件、图像和 mysite.wsgi 文件。感谢您的帮助

答案1

弄清楚了

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/webdev/domains/handtrackers.com/django

    <Directory /home/www/django>

            #Options +FollowSymLinks +SymLinksIfOwnerMatch ExecCGI Indexes
            AllowOverride None
            AddHandler cgi-script .cgi
            AddHandler application/x-httpd-php .php
            AddHandler wsgi-script .wsgi

            Order allow,deny
            Allow from all

            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /mysite.wsgi/$1 [QSA,PT,L]

    </Directory>

但指定任何选项(例如注释掉的选项...)将导致:

“选项 FollowSymLinks 或 SymLinksIfOwnerMatch 已关闭,这意味着 RewriteRule 指令被禁止:”

相关内容