/ / collabnet subversion edge + reviewboard + windows x 64 = DLLのロードに失敗しました:%1は有効なWin32アプリケーションではありません - windows、apache、64ビット、コードレビュー、collabnet

collabnet subversion edge + reviewboard + windows x 64 = DLLの読み込みに失敗しました:%1は有効なWin32アプリケーションではありません - windows、apache、64ビット、コードレビュー、collabnet

さて、これは長い記事になるつもりですが、うまくいけば簡単な答え...

Collabnet SVN Edgeサーバー(x64)をWindows x64上で実行しました。 よく知らない人のために、CollabNetはSVN、Apache、ViewVC、およびPythonを1つの「使いやすい」パッケージにまとめました。

Reviewboard(www.reviewboard)を追加しようとしています。これに組織)。そのためには、大量の依存関係が必要でした。私は、最終的に次にどこへ行くべきかについてのブレッドクラムを見つけることができなくなるまで、約2週間、構成され実行されているすべてを取得しようとしているエラーメッセージの後にエラーメッセージを通して戦ってきました。

現在の状況: Collabnet SVNは実行中で、正常に動作しています。 Apacheは(VIEWVCを介して)以下のページを提供しています。 http://localhost/viewvc レビューボードはCollabnetの既存のApacheインスタンスを使用してインストールおよび設定され、 http://localhost/rb しかし、そのURLに移動すると、ブラウザウィンドウにHTTPエラー500(内部サーバーエラー)が発生します。

サーバーログを見ると、次のようになります。

[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34] mod_wsgi (pid=3684): Exception occurred processing WSGI script "C:/csvn/www/rb/htdocs/reviewboard.wsgi".
[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34] Traceback (most recent call last):
[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34]   File "C:\csvn\Python25\lib\site-packages\django-1.3.1-py2.7.egg\django\core\handlers\wsgi.py", line 250, in __call__
[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34]     self.load_middleware()
[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34]   File "C:\csvn\Python25\lib\site-packages\django-1.3.1-py2.7.egg\django\core\handlers\base.py", line 47, in load_middleware
[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34]     raise exceptions.ImproperlyConfigured("Error importing middleware %s: "%s"" % (mw_module, e))
[Mon Jul 30 09:56:17 2012] [error] [client 10.1.223.34] ImproperlyConfigured: Error importing middleware reviewboard.admin.middleware: "DLL load failed: %1 is not a valid Win32 application."

さて、最後の行のエラーに対処しました。これまでにすべての設定をこの時点で行っていた数回、以前は常にx64ではなくx86用に構築されたものに戻っていました。その結果、私はすでにpython、apache、そしてインストールされているすべてのapache modが依存関係ウォーカーを使用してx64用に構築されていることを確認しました。

これが基本的にここまで設定したすべてのものです(すべてのファイル名は参照用なので、後で別のマシンでこの設定を複製できます)。

  • CollabNet Subversion Edgeのインストール

    • Subversion Edgeをインストールする - CollabNetSubversionEdge-3.1.0_setup-x86_64.exe
      • 前提条件としてJavaをインストールする
      • デフォルトのディレクトリを選択(c:csvn)
      • Subversionバージョン1.7.5をインストールします
      • Python 2.7.1をCにインストールします:csvnPython25
      • Apache 2.2.22をインストールします
      • viewVC 1.1.15をインストールします

    ReviewBoardのインストール

    • MySQL 5.5.25aをインストールします - myqsl-5.5.25a-winx64.exe
    • Python27CollabNet.regを実行します。
      • これにより、CollabNetが追加しなかった通常のPython 2.7レジストリキーが追加されます(CollabNetの複雑なPython Install Dir用に更新)。
    • (オプション)Cを追加します。csvnPython25Scripts;パス環境変数へ。これは必要ありませんが、追加しない場合は、 実行する必要があるときはいつでもこのディレクトリに移動する必要があります。 マシンへのeasy_install
    • Python 2.7用のMySQL 64bit Pythonコネクタ1.2.3をインストールする - MySQL-python-1.2.3.win-amd64-py2.7.exe
      • このインストーラは、Python 2.7がレジストリにインストールされていることを確認します。
    • Python 2.7用のセットアップツール0.6c11をインストールする - setuptools-0.6c11.win32-py2.7.exe
      • このインストーラは、Python 2.7がレジストリにインストールされていることを確認します。
    • コマンドプロンプトを開き、(引用符で囲まずに)「easy_install-2.7 Reviewboard」と入力します。
      • これにより、Reviewboardのほとんどの依存関係がインストールされます。
      • このマシンにはコンパイラがないので、PyCryptoをインストールしようとしている間に停止しました vcvarsall.bat)
    • Python 2.7用PyCrypto 2.3をインストールする - pycrypto-2.3.win32-py2.7.exe
      • このインストーラは、Python 2.7がレジストリにインストールされていることを確認します。
    • コマンドプロンプトを開き、(引用符で囲まずに)「easy_install-2.7 Reviewboard」と入力します。
      • これにより、Reviewboardの依存関係がインストールされ続けます。
      • このマシンにはコンパイラがないため、Python Image Libraryをインストールしようとしたときに停止しました(エラーメッセージ vcvarsall.batを見つけます。
    • Python Image Library 1.1.7をインストール - PIL-1.1.7.win32-py2.7.exe
    • コマンドプロンプトを開き、(引用符は付けずに) "easy_install-2.7 Reviewboard"と入力してください。
      • これでReviewboardのインストールは完了です。
    • Python 2.7.2およびsubversion 1.7.3用のPySVN(python subversionコネクタ)コネクタをインストールします - py27-pysvn-svn173-1.7.6-1457.exe
    • (オプションですがパフォーマンスのために推奨されます)Memcachedをインストールします - memcached-1.2.6-win32-bin.zip
      • zipファイルをC:memcached(または任意の場所)に解凍します。これが実行される場所です。
      • Vista / Win7の場合memcachedには管理者権限が必要です。
        • Memcached.exeを右クリックして、「プロパティー」 - >「互換性」 - >「管理者として実行」を選択します。
      • コマンドプロンプトを開き、C:memcached(または解凍した場所)に移動します。
        • "memcached -d install"と入力してmemcachedサービスをインストールします(もちろん引用符は含みません)。
        • "もう一度引用符なしで" memcached -d startと入力して、サービスを開始します。あなたはまたを使用してサービスを開始することができます Windows管理コンソール
        • 次のように入力してpython-memcached(Python memcachedコネクタ)をインストールします(本当に引用符なしで言う必要がありますか?) "easy_install python-memcached」
    • apache 2.22およびPython 2.7用のmod_wsgiをインストールします - mod_wsgi-3.3.win-amd64-py2.7.1.zip
      • mod_wsgi.soをC:csvnlibmodulesディレクトリに解凍します。
      • Apacheの設定を変更してmod_wsgi.soをロードします。
        • C:csvndataconfhttpd.confを開き、他のLoadModule行の最後に次の行を追加します。LoadModule wsgi_module lib / modules / mod_wsgi.so
      • Apacheを再起動します
      • CollabNet Subversion Edgeサーバーサービスを停止することにより、Windows管理を使用してこれを行うことができます。

    レビューボードの設定

    • レビューボード用にMySQLにデータベースを作成します。コマンド例は次のとおりです(引用符は含みません): "CREATE DATABASE reviewboard;"
    • 前の手順で作成したMySQLデータベースのユーザーを作成します。コマンド例は次のとおりです(引用符は含みません): "GRANT ALL ON * "reviewboard @ localhostへ"で識別されました "rb123"; "
    • コマンドプロンプトを開き、次のコマンドを実行します( ""を除く): "rb-site install csvnwwwrb"
      • あなたがこれをあなたのパスディレクトリに以前に追加しなかったならば、あなたはC:csvnPython25Scriptsにナビゲートする必要があるでしょう。
      • すべてうまくいけば、ドメイン名の入力を求められます。
        • マシンのIPアドレスまたはドメインを含むマシン名を入力してください。
      • 次に、URLパスの入力を求められます
        • URLのホスト名の後にURLを付けたいものをすべて入力します。 / rb /を選択しました(SVNは/ viewvc /で実行されます)。
      • 次にメディアディレクトリの入力を求められます。
        • 私はこれが何のためにあるのかまだ100%確信できないのでデフォルト(media /)を使いました
      • 次にどの種類のデータベースを使用するのかを尋ねられます。
        • MySQLを選択してください
      • 次に、mysqlサーバー上のデータベース名を尋ねられます。
        • 上記の手順でデータベース名を設定したものを入力します。私はレビューボードを選びました
      • 次にデータベースサーバーのアドレスを尋ねられます。
        • 同じマシンでmysqlを実行しているので、デフォルトのままにしておきます(localhost)。
      • 次に、あなたはログインを求められ、あなたが上で設定したユーザーのためにパスします。
      • 次に、どのキャッシュメカニズムを使用するのかを尋ねられます。
        • 上記のMemcachedを設定した場合はそれを選択します。それ以外の場合は[ファイル]を選択します。
      • 前の手順で[Memcached]を選択した場合は、memcachedの接続文字列を入力するように求められます。
        • どこにこれを設定するべきかわからないので、私はそれがうまくいくことを期待してデフォルトを使いました。
      • 次に、どのPythonローダーモジュールを使用するのかを尋ねられます。
        • 上記の理由でwsgiをインストールしました。これを使って。
      • 次に管理者アカウントを作成します。
      • その後、最後にサイトの設定を完了します。
    • C:csvnwwwrbconfapache-wsgi.confのタグ間のすべてのものをにコピーします。 C:csvndataconfhttpd.conf

これが問題の診断に役立つ場合のための、私のapache config(httpd.conf)の現在のコピーです。

ServerRoot "C:csvn"

LoadModule dav_module lib/modules/mod_dav.so
LoadModule authz_host_module lib/modules/mod_authz_host.so
LoadModule alias_module lib/modules/mod_alias.so
LoadModule auth_basic_module lib/modules/mod_auth_basic.so
LoadModule authn_alias_module lib/modules/mod_authn_alias.so
LoadModule authn_file_module lib/modules/mod_authn_file.so
LoadModule env_module lib/modules/mod_env.so
LoadModule log_config_module lib/modules/mod_log_config.so
LoadModule cgi_module lib/modules/mod_cgi.so
LoadModule actions_module lib/modules/mod_actions.so
LoadModule asis_module lib/modules/mod_asis.so
LoadModule authn_default_module lib/modules/mod_authn_default.so
LoadModule authz_default_module lib/modules/mod_authz_default.so
LoadModule authz_groupfile_module lib/modules/mod_authz_groupfile.so
LoadModule authz_user_module lib/modules/mod_authz_user.so
LoadModule dav_fs_module lib/modules/mod_dav_fs.so
LoadModule dir_module lib/modules/mod_dir.so
LoadModule include_module lib/modules/mod_include.so
LoadModule mime_module lib/modules/mod_mime.so
LoadModule negotiation_module lib/modules/mod_negotiation.so
LoadModule setenvif_module lib/modules/mod_setenvif.so
LoadModule dav_svn_module     lib/modules/mod_dav_svn.so
LoadModule authz_svn_module   lib/modules/mod_authz_svn.so
LoadModule wsgi_module lib/modules/mod_wsgi.so

DocumentRoot "www"
DirectoryIndex index.html

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

<Location />
AuthBasicAuthoritative Off
AuthUserFile /dev/null
</Location>

<Directory "www">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>

Include "C:csvndata/conf/csvn_main_httpd.conf"

LimitXMLRequestBody 0
ServerSignature  Off
ServerTokens  Full
TraceEnable Off

TypesConfig "C:csvndata/conf/mime.types"
DefaultType text/plain
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

Include "C:csvndata/conf/csvn_logging.conf"

Include "C:csvndata/conf/svn_viewvc_httpd.conf"

#Include "C:csvnwwwrbconfapache-wsgi.conf"

WSGIPassAuthorization On
WSGIScriptAlias "/rb" "C:/csvn/www/rb/htdocs/reviewboard.wsgi/rb"

<Directory "C:/csvn/www/rb/htdocs">
AllowOverride All
Options -Indexes FollowSymLinks
Allow from all
</Directory>

# Alias static media requests to filesystem
Alias /rb/media "C:/csvn/www/rb/htdocs/media"
Alias /rb/errordocs "C:/csvn/www/rb/htdocs/errordocs"
Alias /rb/favicon.ico "C:/csvn/www/rb/htdocs/media/rbcommons/images/favicon.png"

考え/質問/コメント(私がこれをすべてWindows上で動作させることを試みることになったこと以外に)?

この時点で、ほとんど何でも大歓迎です。

ちなみに、私はcode-reviewの代わりにReviewbiardでこれをタグ付けしようとしました、しかしそれはタグがすでに存在しなかったと言いました

回答:

回答№1は0

これはおそらく意味のあるガイダンスを提供するには遅すぎますが、あなたは上記の2つの奇妙なファイル名に注意しました:

pycrypto-2.3.win32-py2.7.exe PIL-1.1.7.win32-py2.7.exe

私は、あなたがプリコンパイル済みのファイルを見つけたと思います(バイナリでcsvnpython25フォルダを指すようにレジストリのInstallPathを手動で関連付けたため)Web上のどこかにバイナリをインストールしてそれらをインストールすることはうまくいきました - 問題は、それらのファイル名が32ビットの64ビットではなくモジュール。

私は最近ReviewBoardを立ち上げて64ビットのPythonを使用しても成功せずに同様の道をたどった後の32ビット環境(1.6、Windows用の最新サポートバージョン)。 CollabNetを32ビットバージョンにダウングレードし(64ビットをアンインストールし、設定データやリポジトリデータを失うことなく32ビットを再インストールすることができます)、それでもReviewBoardのインストールを推奨します。これをすべて動作させます。