项目

通用

个人资料

操作

如何在Windows上使用Apache在子URI中安装Redmine

按照以下步骤精确执行,将在Windows XP/2003/2008 x86/x64上的Apache HTTP服务器2.2.x、MySQL 5.1.x、PHP 5.3.x和Ruby 1.8.7下通过子URI https://127.0.0.1/redmine 运行的 Redmine 安装。
本教程使用 Redmine 1.0.4.devel.4543 进行测试,但应适用于任何 >= 0.8 的版本。
本教程的目标受众是Windows用户。

如果您遇到问题,请参阅 *此论坛主题* 了解一些已知问题及其解决方案。

安装Apache HTTP服务器2.2.x

  1. 此处 下载 "Win32 Binary without crypto (no mod_ssl) (MSI Installer)""Win32 Binary including OpenSSL (MSI Installer)",具体取决于您是否打算在Web服务器上使用SSL。
  2. 安装到 C:\webserver\Apache\

安装MySQL 5.1.x

  1. 此处 下载 "Windows (x86, 32-bit), MSI Installer - Essentials - Recommended"
    • (64位版本可以安装在x64 Windows平台上,但建议使用32位版本,它适用于Windows的x86和x64版本。)
  2. 安装到 C:\webserver\MySQL\
    • 在初始设置过程中
      1. (可选:) 将数据文件安装目录设置为 C:\webserver\MySQL_Data\
    • 在服务器实例配置向导中
      1. (可选:) 为使用的端口添加防火墙异常
      2. 默认字符集 设置为 "Best Support for Multilingualism" UTF8
      3. 选择 "Include Bin Directory in Windows PATH"

安装MySQL Workbench 5.2.x

  1. 此处 下载 "Windows (x86, 32-bit), MSI Installer"
  2. 安装到 C:\webserver\MySQL_Workbench\

安装PHP 5.3.x

  1. 这里下载 "VC6 x86 Thread Safe - Installer"
  2. 安装到 C:\webserver\PHP\
    • 设置过程中
      1. 对于web服务器,选择 "Apache 2.2.x 模块"
      2. 配置目录是 "C:\webserver\Apache\conf\\""
      3. 你可以保留所有默认扩展不变,可选地添加 "国际化" 和 "多字节字符串"

使用 RubyGems 安装 Ruby 1.8.7

  • 在编写此文档时,Ruby的最新版本是 1.9.2,然而为了最佳兼容性,请使用 Ruby 版本 1.8.7
  1. 这里下载 "rubyinstaller-1.8.7-p302.exe"
  2. 安装到 C:\webserver\Ruby\
  3. 设置过程中,选择 "将 Ruby 可执行文件添加到您的 PATH 中"
  4. 验证 Ruby 版本
    • 打开命令窗口,执行
      ruby -v
      
      • 预期的输出
        ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]
        
  5. 验证 RubyGems 版本
    • 在命令窗口中,执行
      gem -v
      
      • 预期的输出
        1.3.7
        
        • 在编写此文档时,RubyGems的最新版本是 1.3.7。 版本 >= 1.5.0 将无法与 Redmine 1.1.x 兼容
  • 如果您收到关于缺少 "SSLEAY32.dll" 的错误,请按照上面所示安装 PHP,该 dll 将变得可用

额外的 gems

  • mongrel-service 和 win32-service gems 需要手动下载。下载位置添加到下面的章节中。

安装 Rake

  • 在编写此文档时,Rake的最新版本是 0.8.7。较新版本也可能正常工作。
  1. 安装 Rake gem
    • 在命令窗口中,执行
      gem install rake
      • 预期的输出
        Successfully installed rake-0.8.7
        

安装 Rails

  • 在编写此文档时,Rails的最新版本是 3.0.3,但 Redmine 1.0.4 安装需要 Rails 2.3.5
  1. 安装 Rails gems
    • 在命令窗口中,执行
      gem install rails -v=2.3.5
      
      • 预期的输出
        Successfully installed activesupport-2.3.5
        Successfully installed activerecord-2.3.5
        Successfully installed rack-1.0.1
        Successfully installed actionpack-2.3.5
        Successfully installed actionmailer-2.3.5
        Successfully installed activeresource-2.3.5
        Successfully installed rails-2.3.5
        7 gems installed
        

安装 i18n

  • 在编写此文档时,i18n的最新版本是 0.5,但 Redmine 1.0.4 安装需要 i18n 0.4.2
  1. 安装 i18n gem
    • 在命令窗口中,执行
      gem install -v=0.4.2 i18n
      
      • 预期的输出
        Successfully installed i18n-0.4.2
        1 gem installed
        

安装 Mongrel

  • 在编写此文档时,Mongrel的最新版本是 1.1.5。较新版本也可能正常工作。
  • _项目页面_
  1. 安装 Mongrel gems
    • 在命令窗口中,执行
      gem install mongrel
      
      • 预期的输出
        Successfully installed gem_plugin-0.2.3
        Successfully installed cgi_multipart_eof_fix-2.5.0
        Successfully installed mongrel-1.1.5-x86-mingw32
        3 gems installed
        

安装 mysql gem

  • 在编写此文档时,mysql gem的最新版本是 2.8.1。较新版本也可能正常工作。
  • 它极大地提高了页面生成速度。
  1. 安装mysql gem
    • 在命令窗口中,执行
      gem install mysql
      
      • 预期的输出
        Successfully installed mysql-2.8.1-x86-mingw32
        1 gem installed
        Installing ri documentation for mysql-2.8.1-x86-mingw32...
        No definition for (...)
        
      • 该gem是为MySQL 5.0制作的,因此5.1中有一些额外的功能不会被定义,所以你会看到很多关于缺少定义的行,但它不会引起任何问题

安装 mongrel-service + win32-service gems

  • 在编写此文档时,win32-service的最新版本是 0.7,它 与 Ruby 1.8.7 兼容
  • 仅使用 Redmine 部署的 win32-service 版本 0.5.2。
  1. 这里下载 "mongrel_service-0.3.4-i386-mswin32.gem"
  2. mongrel_service-0.3.4-i386-mswin32.gem 移动到 C:\webserver\
  3. 这里下载 "win32-service-0.5.2-mswin32.gem"
    • 此文件也附加在本wiki页面的底部
  4. win32-service-0.5.2-mswin32.gem 移动到 C:\webserver\
  5. 安装 gem
    • 在命令窗口中,执行
      cd C:\webserver\
      gem install mongrel_service
      
      • 预期的输出
        Successfully installed win32-service-0.5.2-x86-mswin32
        Successfully installed mongrel_service-0.3.4-x86-mswin32
        2 gems installed
        
  6. 从 C:\webserver\ 删除这两个 .gem 文件

安装 Redmine

  • 以下过程假定我们将安装 Redmine 1.0.4,但它也与任何 >= r3235 的修订版本兼容
  1. 这里下载 "redmine-1.0.4.zip"
  2. 将归档中的redmine-1.0.4目录内容提取到C:\webserver\Redmine
  3. 使用“MySQL Workbench”以root身份登录MySQL。您还可以使用命令提示符或其他工具,例如“MySQL GUI Tools”或“phpMyAdmin”。
    1. “打开连接以开始查询”
    2. 在SQL查询窗口中输入以下脚本
      create database redmine character set utf8;
      create user 'redmineUser'@'localhost' identified by 'myPassword';
      grant all privileges on redmine.* to 'redmineUser'@'localhost';
      
    3. “在连接的服务器上执行SQL脚本”
      • 当然,您应该将redmineUsermyPassword更改为不同的内容。
  4. C:\webserver\Redmine\config\database.yml.example复制到C:\webserver\Redmine\config\database.yml
  5. 编辑C:\webserver\Redmine\config\database.yml文件以配置“生产”环境下的数据库设置。它应该看起来像这样
    production:
      adapter: mysql
      database: redmine
      host: localhost
      username: redmineUser
      password: myPassword
      encoding: utf8
    
    1. 将用户名和密码设置为上面SQL脚本中输入的值。
    2. 保存并关闭文件。
  6. 创建(或更新)Redmine数据库表
    • 在命令窗口中,执行
      cd C:\webserver\Redmine
      set RAILS_ENV=production
      rake generate_session_store
      rake db:migrate
      
      • 如果您遇到以下错误:Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB :
        1. 这里下载libmySQL.dll
        2. 将该.dll文件移动到C:\webserver\Ruby\bin\
        3. 在命令窗口中,再次执行
          rake db:migrate
          
  7. 如果是全新安装,您可以在表中预先填充默认数据
    • 在命令窗口中,执行
      rake redmine:load_default_data
      
  8. 假设我们将Redmine托管在https://127.0.0.1/redmine
    • 编辑C:\webserver\Redmine\config\environment.rb文件以配置Redmine作为子URI(Apache配置也在此文档的稍后部分列出)。
    • 在文件底部添加以下行
      Redmine::Utils::relative_url_root = "/redmine" 
      
    • 保存并关闭文件。
    • 这是设置应用程序前缀的首选方法。Mongrel_rails服务的“--prefix”指令不适用于Rails 2.3.x
      • 可选地,您可以添加以下初始化器,但仅当您想在“Mongrel_rails服务”命令中使用“--prefix”而不是更改“environment.rb”时才添加
        • 创建一个文件config/initializers/patch_for_mongrel.rb [文件名可以是任何名称]
          # Fix for mongrel which still doesn't know about Rails 2.2's changes, 
          # We provide a backwards compatible wrapper around the new
          # ActionController::base.relative_url_root,
          # so it can still be called off of the actually non-existing
          # AbstractRequest class.
          
          module ActionController
            class AbstractRequest < ActionController::Request
              def self.relative_url_root=(path)
                ActionController::Base.relative_url_root=(path)
              end
              def self.relative_url_root
                ActionController::Base.relative_url_root
              end
            end
          end
          #
          # Thanks to http://www.ruby-forum.com/topic/190287
          

设置Windows服务

  • 内存使用量受运行mongrels数量的很大影响。在决定要运行多少进程时请记住这一点。例如,Windows Server 2003 x64 SP2上的内存使用量
    • Apache = 5MB + 20MB + 40MB = 65MB
    • MySQL = 35MB
    • Mongrel集群 = mongrel_rails服务的数量 x (3MB + 90MB) = 279MB(《Яна Титаренко》进程)
  1. 创建Windows服务
    1. 在命令窗口中(以管理员身份打开!)执行
      mongrel_rails service::install -N mongrel_redmine_3001 -D "Mongrel serving Redmine on 3001" -p 3001 -e production -c C:\webserver\Redmine
      mongrel_rails service::install -N mongrel_redmine_3002 -D "Mongrel serving Redmine on 3002" -p 3002 -e production -c C:\webserver\Redmine
      mongrel_rails service::install -N mongrel_redmine_3003 -D "Mongrel serving Redmine on 3003" -p 3003 -e production -c C:\webserver\Redmine
      
  2. 启动Windows服务,这将启动mongrel服务器
    1. 在命令窗口中,执行
      net start mongrel_redmine_3001
      net start mongrel_redmine_3002
      net start mongrel_redmine_3003
      
  3. 转到Windows服务列表,并将所有“Mongrel serving Redmine on 300#”服务设置为自动启动
    1. 在命令窗口中,执行
      services.msc /s
      
    2. 找到“Mongrel serving Redmine on 300#”服务中的每一个
    3. 右键单击,选择属性
    4. 启动类型设置为"自动"
    5. 按确定,然后对剩余的Mongrel服务重复此操作。
      • 或者,您可以在每个已安装的mongrel服务上以提升命令提示符执行此命令
        sc config mongrel_redmine_3001 start= auto
        

配置Apache 2.2.x作为Mongrel集群的代理

  1. 打开C:\webserver\Apache\conf\httpd.conf
  2. 在文件底部添加以下行
    Include conf/httpd-proxy-mongrel.conf
    
  3. 创建一个文件C:\webserver\Apache\conf\httpd-proxy-mongrel.conf
  4. 输入以下内容
    <IfModule !mod_proxy.c>
        LoadModule proxy_module modules/mod_proxy.so
    </IfModule>
    <IfModule !mod_proxy_http.c>
        LoadModule proxy_http_module modules/mod_proxy_http.so
    </IfModule>
    <IfModule !mod_proxy_balancer.c>
        LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    </IfModule>
    
    ProxyPass /redmine balancer://redmine_cluster
    ProxyPassReverse /redmine balancer://redmine_cluster
    
    <Proxy balancer://redmine_cluster>
        BalancerMember http://127.0.0.1:3001
        BalancerMember http://127.0.0.1:3002
        BalancerMember http://127.0.0.1:3003
    </Proxy>
    
  5. 重新启动Apache服务。
    • 在命令窗口中,执行
      C:\webserver\Apache\bin\httpd.exe -w -n "Apache2.2" -k stop
      C:\webserver\Apache\bin\httpd.exe -w -n "Apache2.2" -k start
      

完成!
您本地的Redmine安装现在可在https://127.0.0.1/redmine访问

其他组件

安装RMagic

  1. 此处下载 "RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zip" 或更高版本。
  2. "rmagick-2.12.0-x86-mswin32.gem" 解压到 C:\webserver\
  3. "ImageMagick-6.5.6-8-Q8-windows-dll.exe" 安装到 C:\webserver\ImageMagick
  4. 安装 RMagic 珠石。
    • 在命令窗口中,执行
      cd C:\webserver
      gem install rmagick --local
      
      • 预期的输出
        Successfully installed rmagick-2.12.0-x86-mswin32
        1 gem installed
        
  5. 从 C:\webserver\ 删除 .gem 文件。
  6. 重启您的服务器。(我尝试在不重启的情况下运行它但失败了)

添加 redmine_attach_screenshot 插件

  1. 此处下载源代码。
  2. 将存档解压到 C:\webserver\Redmine\vendor\plugins\redmine_attach_screenshot
  3. 重启 Mongrel 集群。
    • 在命令窗口中,执行
      net stop mongrel_redmine_3001
      net stop mongrel_redmine_3002
      net stop mongrel_redmine_3003
      net start mongrel_redmine_3001
      net start mongrel_redmine_3002
      net start mongrel_redmine_3003
      

如果您遇到问题,请参阅 *此论坛主题* 了解一些已知问题及其解决方案。

Markus M 更新,12年前 · 13次修订