OK,这会是一个很长的帖子,但希望一个简单的答案...CollabNet的颠覆边缘+ reviewboard +窗口64 = DLL加载失败:%1不是有效的Win32应用程序
我有一个在Windows x64上运行的Collabnet SVN Edge服务器(x64)。 对于那些不熟悉的人来说,CollabNet将SVN,Apache,ViewVC和Python结合到一个“易于使用”的软件包中。
我试图将Reviewboard(www.reviewboard.org)添加进去。这样做需要一个TON的依赖关系。错误信息试图让所有配置和运行大约2周后,我一直在通过错误消息进行斗争,直到我终于到了一个点,我无法找到更多的面包屑,然后去哪里。
当前情况: Collabnet SVN正在运行并正常工作。 Apache正在通过VIEWVC提供页面到http://localhost/viewvc
使用来自Collabnet的现有Apache实例安装和配置Reviewboard以通过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."
现在,我已经在上线之前几次在流汗一切设置这一点处理的错误,以前它总是回到为x86而不是x64构建的东西。因此,我已经确定python,apache以及安装的每一个apache mod是使用depedency walker为x64构建的。
这里基本上是everythign我对我所做的把它配置到这一点(所有的文件名都供我参考,所以我可以在另一台机器上后复制此设置):
安装的CollabNet的Subversion边缘
- 安装Subversion边缘 - CollabNetSubversionEdge-3.1.0_setup-x86_64.exe
- 安装Java作为一个先决条件
- 选择默认目录(C:\ csvn)
- 安装Subversion的版本1.7.5
- 安装的Python 2.7.1到C:\ csvn \ Python25
- 安装Apache 2.2.22
- 安装viewVC 1.1。 15
安装ReviewBoard
- 安装MySQL 5.5.25a - myqsl-5.5.25a-winx64.exe
- 运行Python27CollabNet.reg
- 这增加了普通的Python 2.7注册表项的CollabNet没有添加(更新CollabNet的扭曲Python的安装目录)
- (可选)添加C:\ csvn \ Python25 \ Scripts;到路径环境变量。这是没有必要的,但如果你不添加这个,你将 必须导航到这个目录任何时候你需要运行 easy_install在机器上
- 安装MySQL 64位Python连接器1.2.3 for Python 2.7 - MySQL-蟒蛇-1.2.3.win-AMD64-py2.7.exe
- 此安装程序应该找到了Python 2.7安装在注册表
- 为Python 2.7安装setuptools 0.6c11 - setuptools的,0.6c11.win32 -py2.7.exe
- 此安装程序应该找到Python 2.7安装在注册表
- 打开命令提示和类型(没有引号) “的easy_install-2.7 Reviewboard”
- 此安装大多数的依赖关系为Reviewboard。
- 它在尝试安装PyCrypto时停下来,因为此机器上没有编译器(有关未找到 vcvarsall.bat的错误消息)。
- 安装PyCrypto 2.3 Python 2.7版 - pycrypto-2.3.win32-py2.7.exe
- 此安装程序应该找到了Python 2.7安装在注册表
- 打开命令提示符,键入(不包含引号)“easy_install-2.7 Reviewboard”
- 这样可以安装Reviewboard的依赖关系。
- 它在尝试安装Python图像库时停止了,因为此机器上没有编译器(关于不是 找到vcvarsall.bat的错误消息)。
- 安装Python图像库1.1.7 - PIL-1.1.7.win32-py2.7.exe
- 打开命令提示和类型(wihtout引号) “的easy_install-2.7 Reviewboard”
- 这完成了Reviewboard的安装。
- 安装PySVN(蟒颠覆连接器)连接器为Python 2.7.2和1.7.3颠覆 - 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安装”
- 键入以下命令启动服务安装的memcached服务(再次,不带引号)“的memcached -d启动”。您也可以通过键入使用 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
- Extracct mod_wsgi.so到C:\ csvn \ lib中\模块目录中。
- 修改Apache配置加载mod_wsgi.so
- 打开C:\ csvn \数据\ CONF \ httpd.conf中,并且在另一的LoadModule线的LoadModule wsgi_module LIB /模块/ mod_wsgi的末尾添加以下行。所以
- 重启Apache
- 这可以通过停止CollabNet的Subversion的边缘服务器服务使用Windows Management进行。
配置Reviewboard
- 为reviewboard在MySQL中创建一个数据库。示例命令如下(不带引号):“CREATE DATABASE reviewboard;”
- 为上一步创建的MySQL数据库创建一个用户。示例命令如下(不带引号):“GRANT ALL ON reviewboard。* TO reviewboard @ localhost IDENTIFIED BY'rb123';”
- 打开命令提示符,运行以下命令(减 “”): “RB-站点安装\ csvn \ WWW \ RB”
- 注意,你将不得不导航到C:\ csvn \ Python25 \脚本如果您以前没有将其添加到路径目录中。
- 如果一切顺利,系统将提示您输入域名:
- 输入机器IP地址或机器名称,包括域名。
- 接下来,您将被提示输入theURL路径
- 输入任何你想要的网址是在URL中的主机名之后。我选择了/ rb /(SVN运行在/ viewvc /)
- 接下来,您将被要求输入媒体目录。
- 我不是100%肯定这是什么的还没有,所以我使用了默认(媒体/)
- 接下来,您会被要求你将使用什么样的数据库:
- 选择mysql
- 接下来,您将被要求输入mysql服务器上的数据库名称。
- 输入您在上述步骤中设置的数据库名称。我选择reviewboard
- 接下来,您会被要求为数据库服务器地址:
- 我在同一台机器上运行MySQL所以我离开它作为默认代理(localhost)
- 接下来你将被要求登录并通过您上面设置的用户。
- 接下来,您将被问到您将使用哪种缓存机制。
- 如果您在上面设置Memcached,请选择它。否则选择文件。
- 如果您在上一步中选择了Memcached,现在将要求您提供memcached连接字符串。
- 不知道在哪里设置这个,所以我只是使用默认希望它会工作。
- 接下来,您将被问到您将使用什么Python加载程序模块。
- 我们之所以安装wsgi是因为上述原因。用它。
- 接下来,您将创建您的管理员帐户。
- 在此之后,它应该最终完成配置站点
- 从C标记之间的所有内容复制:\ csvn \ WWW \ RB \的conf \ Apache的wsgi.conf到 C:\ csvn \ DATA \的conf \ httpd.conf中
- 安装Subversion边缘 - CollabNetSubversionEdge-3.1.0_setup-x86_64.exe
这里是我的Apache配置(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:\csvn\data/conf/csvn_main_httpd.conf"
LimitXMLRequestBody 0
ServerSignature Off
ServerTokens Full
TraceEnable Off
TypesConfig "C:\csvn\data/conf/mime.types"
DefaultType text/plain
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
Include "C:\csvn\data/conf/csvn_logging.conf"
Include "C:\csvn\data/conf/svn_viewvc_httpd.conf"
#Include "C:\csvn\www\rb\conf\apache-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上)?
在这一点上,几乎任何东西都非常感激。
作为一个侧面说明,我试图用Reviewbiard代替代码审查标记这一点,但它表示,标签不存在