0

wordpress サイトとレビューボード サイトを同じドメイン名で動作させようとしています。

元:

www.mysite.com (this is where i host my wordpress site)
www.mysite.com/reviewboard (this is where I want to host my reviewboard site)

httpd-vhosts.conf ファイルに応じて、どちらか一方を動作させることができます。ただし、両方を機能させることはできません (ここであなたの助けが必要です!)。

これは、WordPress サイトをホストする方法です。

<VirtualHost *:80>
    ServerAdmin myemail@gmail.com
    DocumentRoot "/opt/local/apache2/htdocs/mysite"
    ServerName www.mysite.com
    ErrorLog "/opt/local/apache2/logs/mysite.com-error_log"
    CustomLog "/opt/local/apache2/logs/mysite.com-access_log" common
</VirtualHost>

これは、レビューボード サイトをホストする方法です (これにより、WordPress サイトが壊れます)。

<VirtualHost *:80>
    ServerName www.mysite.com
    DocumentRoot "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs"

    # Error handlers
    ErrorDocument 500 /errordocs/500.html

    WSGIPassAuthorization On
    WSGIScriptAlias "/reviewboard" "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/reviewboard.wsgi/reviewboard"

    <Directory "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs">
        AllowOverride All
        Options -Indexes +FollowSymLinks
        Allow from all
    </Directory>

    # Alias static media requests to filesystem
    Alias /reviewboard/media "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/media"
    Alias /reviewboard/static "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static"
    Alias /reviewboard/errordocs "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/errordocs"
    Alias /reviewboard/favicon.ico "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static/rb/images/favicon.png"
</VirtualHost>

だから今、私はこれらをどうにかして組み合わせる方法を見つけたいと思っているので、私のワードプレスサイトを壊すことなく、上記のパスでレビューボードをホストすることができます. ここに記載されているように Alias コマンドを使用してみました: http://stackoverflow.com/questions/1553165/multiple-django-sites-with-apache-mod-wsgi とここ https://code.google.com/p/modwsgi /wiki/構成ガイドライン

しかし、私はそれを機能させることができません。これが私のWIPです。これを変更するために何をする必要があるかを非常に具体的に説明できれば、私はこの種のものに慣れていないので、それが機能するのは素晴らしいことです. ありがとう!

<VirtualHost *:80>
    ServerName www.mysite.com
    DocumentRoot "/opt/local/apache2/htdocs/mysite"


    # Error handlers
    #hmm not sure where to put this since my document root is different??????
    #ErrorDocument 500 /errordocs/500.html

    WSGIPassAuthorization On
    Alias /reviewboard/ /opt/local/apache2/htdocs/mysite/reviewboard/htdocs/

    <Directory "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs">
        Options ExecCGI
        SetHandler wsgi-script  
        AllowOverride All
        Options -Indexes +FollowSymLinks
        Allow from all
    </Directory>

    # Alias static media requests to filesystem
    # Since I added the alias command above these are complaining about 
    #overlapping an earlier alias when I restart my apache server????
    Alias /reviewboard/media "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/media"
    Alias /reviewboard/static "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static"
    Alias /reviewboard/errordocs "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/errordocs"
    Alias /reviewboard/favicon.ico "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static/rb/images/favicon.png"
</VirtualHost>
4

2 に答える 2

0

djc が書いたものと私のいじくり回しの組み合わせを使用して、動作するバージョンを以下に示します。

www.mysite.com (wordpress site loads correctly)(mod_php)
www.mysite.com/reviewboard (reviewboard site loads correctly)(mod_wsgi)

Apacheサーバーを再起動するたびに、ブラウザーのキャッシュをクリアするようにしてください。これを行うのを忘れたため、誤ったデータが表示されるという罠に陥り続けていたからです。

重要2 「/reviewboard」が「reviewboard.wsgi」に続いて「reviewboard.wsgi/reviewboard」になるようにしてください。そうしないと機能せず、404 エラーが発生します。

作業バージョンは次のとおりです。

<VirtualHost *:80>
    ServerAdmin myemail@gmail.com
    ServerName www.mysite.com
    DocumentRoot "/opt/local/apache2/htdocs/mysite"
    ErrorLog "/opt/local/apache2/logs/mysite-error_log"
    CustomLog "/opt/local/apache2/logs/mysite-access_log" common

    WSGIPassAuthorization On
    WSGIScriptAlias /reviewboard /opt/local/apache2/htdocs/mysite/reviewboard/htdocs/reviewboard.wsgi/reviewboard
    <Directory /opt/local/apache2/htdocs/mysite/reviewboard>
        Allow from all
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    # Alias static media requests to filesystem
    Alias /reviewboard/media "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/media"
    Alias /reviewboard/static "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static"
    Alias /reviewboard/errordocs "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/errordocs"
    Alias /reviewboard/favicon.ico "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static/rb/images/favicon.png"
</VirtualHost>
于 2013-03-12T04:52:53.610 に答える
0

両方に同じドメインを使用している場合、両方に異なる VirtualHost セクションを使用することはできません。最初に、両方の構成を 1 つの VirtualHost セクションにマージする必要があります。WordPress の設定から始めて、ReviewBoard 用にいくつか追加します。

<VirtualHost *:80>

    ServerAdmin myemail@gmail.com
    DocumentRoot "/opt/local/apache2/htdocs/mysite"
    ServerName www.mysite.com
    ErrorLog "/opt/local/apache2/logs/mysite.com-error_log"
    CustomLog "/opt/local/apache2/logs/mysite.com-access_log" common

    WSGIPassAuthorization On
    WSGIScriptAlias /reviewboard /opt/local/apache2/htdocs/mysite/reviewboard/rb.wsgi
    <Directory /opt/local/apache2/htdocs/mysite/reviewboard>
        Order deny,allow
        Allow from all
    </Directory>

    Alias /reviewboard/media "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/media"
    Alias /reviewboard/static "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static"
    Alias /reviewboard/errordocs "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/errordocs"
    Alias /reviewboard/favicon.ico "/opt/local/apache2/htdocs/mysite/reviewboard/htdocs/static/rb/images/favicon.png"

</VirtualHost>

WSGI スクリプトを作成する必要があります (ただし、既に作成されているはずです)。ここで設定したものとは別のパスに配置すると、アクセス許可がより安全になります。

于 2013-03-11T09:39:39.420 に答える