操作
如何在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¶
- 从 此处 下载 "Win32 Binary without crypto (no mod_ssl) (MSI Installer)" 或 "Win32 Binary including OpenSSL (MSI Installer)",具体取决于您是否打算在Web服务器上使用SSL。
- 安装到 C:\webserver\Apache\
安装MySQL 5.1.x¶
- 从 此处 下载 "Windows (x86, 32-bit), MSI Installer - Essentials - Recommended"
- (64位版本可以安装在x64 Windows平台上,但建议使用32位版本,它适用于Windows的x86和x64版本。)
- 安装到 C:\webserver\MySQL\
- 在初始设置过程中
- (可选:) 将数据文件安装目录设置为 C:\webserver\MySQL_Data\
- 在服务器实例配置向导中
- (可选:) 为使用的端口添加防火墙异常
- 将 默认字符集 设置为 "Best Support for Multilingualism" UTF8
- 选择 "Include Bin Directory in Windows PATH"
- 在初始设置过程中
安装MySQL Workbench 5.2.x¶
- 从 此处 下载 "Windows (x86, 32-bit), MSI Installer"
- 安装到 C:\webserver\MySQL_Workbench\
安装PHP 5.3.x¶
- 从这里下载 "VC6 x86 Thread Safe - Installer"
- 安装到 C:\webserver\PHP\
- 设置过程中
- 对于web服务器,选择 "Apache 2.2.x 模块"
- 配置目录是 "C:\webserver\Apache\conf\\""
- 你可以保留所有默认扩展不变,可选地添加 "国际化" 和 "多字节字符串"
- 设置过程中
使用 RubyGems 安装 Ruby 1.8.7¶
- 在编写此文档时,Ruby的最新版本是 1.9.2,然而为了最佳兼容性,请使用 Ruby 版本 1.8.7。
- 从这里下载 "rubyinstaller-1.8.7-p302.exe"
- 安装到 C:\webserver\Ruby\
- 设置过程中,选择 "将 Ruby 可执行文件添加到您的 PATH 中"
- 验证 Ruby 版本
- 打开命令窗口,执行
ruby -v
- 预期的输出
ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]
- 预期的输出
- 打开命令窗口,执行
- 验证 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。较新版本也可能正常工作。
- 安装 Rake gem
- 在命令窗口中,执行
gem install rake
- 预期的输出
Successfully installed rake-0.8.7
- 预期的输出
- 在命令窗口中,执行
安装 Rails¶
- 在编写此文档时,Rails的最新版本是 3.0.3,但 Redmine 1.0.4 安装需要 Rails 2.3.5。
- 安装 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。
- 安装 i18n gem
- 在命令窗口中,执行
gem install -v=0.4.2 i18n
- 预期的输出
Successfully installed i18n-0.4.2 1 gem installed
- 预期的输出
- 在命令窗口中,执行
安装 Mongrel¶
- 在编写此文档时,Mongrel的最新版本是 1.1.5。较新版本也可能正常工作。
- _项目页面_
- 安装 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。较新版本也可能正常工作。
- 它极大地提高了页面生成速度。
- 安装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。
- 从这里下载 "mongrel_service-0.3.4-i386-mswin32.gem"
- 将 mongrel_service-0.3.4-i386-mswin32.gem 移动到 C:\webserver\
- 从这里下载 "win32-service-0.5.2-mswin32.gem"
- 此文件也附加在本wiki页面的底部
- 将 win32-service-0.5.2-mswin32.gem 移动到 C:\webserver\
- 安装 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
- 预期的输出
- 在命令窗口中,执行
- 从 C:\webserver\ 删除这两个 .gem 文件
安装 Redmine¶
- 以下过程假定我们将安装 Redmine 1.0.4,但它也与任何 >= r3235 的修订版本兼容
- 从这里下载 "redmine-1.0.4.zip"
- 将归档中的redmine-1.0.4目录内容提取到C:\webserver\Redmine
- 使用“MySQL Workbench”以root身份登录MySQL。您还可以使用命令提示符或其他工具,例如“MySQL GUI Tools”或“phpMyAdmin”。
- “打开连接以开始查询”
- 在SQL查询窗口中输入以下脚本
create database redmine character set utf8; create user 'redmineUser'@'localhost' identified by 'myPassword'; grant all privileges on redmine.* to 'redmineUser'@'localhost';
- “在连接的服务器上执行SQL脚本”
- 当然,您应该将redmineUser和myPassword更改为不同的内容。
- 将C:\webserver\Redmine\config\database.yml.example复制到C:\webserver\Redmine\config\database.yml
- 编辑C:\webserver\Redmine\config\database.yml文件以配置“生产”环境下的数据库设置。它应该看起来像这样
production: adapter: mysql database: redmine host: localhost username: redmineUser password: myPassword encoding: utf8
- 将用户名和密码设置为上面SQL脚本中输入的值。
- 保存并关闭文件。
- 创建(或更新)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 :
- 从这里下载libmySQL.dll
- 将该.dll文件移动到C:\webserver\Ruby\bin\
- 在命令窗口中,再次执行
rake db:migrate
- 如果您遇到以下错误:Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB :
- 在命令窗口中,执行
- 如果是全新安装,您可以在表中预先填充默认数据
- 在命令窗口中,执行
rake redmine:load_default_data
- 在命令窗口中,执行
- 假设我们将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
- 创建一个文件config/initializers/patch_for_mongrel.rb [文件名可以是任何名称]
- 可选地,您可以添加以下初始化器,但仅当您想在“Mongrel_rails服务”命令中使用“--prefix”而不是更改“environment.rb”时才添加
设置Windows服务¶
- 内存使用量受运行mongrels数量的很大影响。在决定要运行多少进程时请记住这一点。例如,Windows Server 2003 x64 SP2上的内存使用量
- Apache = 5MB + 20MB + 40MB = 65MB
- MySQL = 35MB
- Mongrel集群 = mongrel_rails服务的数量 x (3MB + 90MB) = 279MB(《Яна Титаренко》进程)
- 创建Windows服务
- 在命令窗口中(以管理员身份打开!)执行
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
- 在命令窗口中(以管理员身份打开!)执行
- 启动Windows服务,这将启动mongrel服务器
- 在命令窗口中,执行
net start mongrel_redmine_3001 net start mongrel_redmine_3002 net start mongrel_redmine_3003
- 在命令窗口中,执行
- 转到Windows服务列表,并将所有“Mongrel serving Redmine on 300#”服务设置为自动启动
- 在命令窗口中,执行
services.msc /s
- 找到“Mongrel serving Redmine on 300#”服务中的每一个
- 右键单击,选择属性
- 将启动类型设置为"自动"
- 按确定,然后对剩余的Mongrel服务重复此操作。
- 或者,您可以在每个已安装的mongrel服务上以提升命令提示符执行此命令
sc config mongrel_redmine_3001 start= auto
- 在命令窗口中,执行
配置Apache 2.2.x作为Mongrel集群的代理¶
- 以下过程假设我们将Redmine托管在https://127.0.0.1/redmine,并且必须匹配上面设置的relative_url_root
- 打开C:\webserver\Apache\conf\httpd.conf
- 在文件底部添加以下行
Include conf/httpd-proxy-mongrel.conf
- 创建一个文件C:\webserver\Apache\conf\httpd-proxy-mongrel.conf
- 输入以下内容
<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>
- 重新启动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¶
- 从此处下载 "RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zip" 或更高版本。
- 将 "rmagick-2.12.0-x86-mswin32.gem" 解压到 C:\webserver\。
- 将 "ImageMagick-6.5.6-8-Q8-windows-dll.exe" 安装到 C:\webserver\ImageMagick。
- 安装 RMagic 珠石。
- 在命令窗口中,执行
cd C:\webserver gem install rmagick --local
- 预期的输出
Successfully installed rmagick-2.12.0-x86-mswin32 1 gem installed
- 预期的输出
- 在命令窗口中,执行
- 从 C:\webserver\ 删除 .gem 文件。
- 重启您的服务器。(我尝试在不重启的情况下运行它但失败了)
添加 redmine_attach_screenshot 插件¶
- 从此处下载源代码。
- 将存档解压到 C:\webserver\Redmine\vendor\plugins\redmine_attach_screenshot。
- 重启 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
- 在命令窗口中,执行
如果您遇到问题,请参阅 *此论坛主题* 了解一些已知问题及其解决方案。