RedmineInstallOSXLionServer » History » Version 12

José Roberto García Chico, 2013-07-12 05:40
Troubleshooting for "sudo rake generate_secret_token"

1 1 Art Kuo
h1. Installing Redmine on Mac OS X 10.7 Lion Server
2 1 Art Kuo
3 8 Art Kuo
This is a quick summary of the necessary steps for a simple install of Redmine on Apple OS X Lion Server 10.7. This is slightly different from the install for [[RedmineInstallOSXServer|Snow Leopard Server]]. This is meant only as a supplement, not a replacement, to the official install guide found [[RedmineInstall|here]].
4 1 Art Kuo
5 2 Art Kuo
h2. Install Prerequisites 
6 1 Art Kuo
7 1 Art Kuo
# Install Xcode/OS X Developer Tools
8 2 Art Kuo
Either get XCode from the Mac App Store or register for a free account and download from: https://developer.apple.com/downloads/
9 2 Art Kuo
An alternative is the latest version of Command Line Tools for XCode https://developer.apple.com/downloads . This is a smaller download and contains all that is necessary for installation.
10 1 Art Kuo
# Install OS X MySQL and associated Libraries
11 2 Art Kuo
Download http://www.mysql.com/downloads/mysql/ (select latest 64-bit version, e.g. 5.5.25)
12 2 Art Kuo
Run the installation package .pkg file. This will install into /usr/local/mysql/bin
13 1 Art Kuo
Run the MySQLStartupItem.pkg file to use GUI to start automatically after startup of your server. (Of course, command line also works.)
14 1 Art Kuo
Open the MySQL.prefPane and install for all users. This provides a GUI for starting and stopping. (Of couse, command line also works.)
15 2 Art Kuo
Set the root password for your new installation of MySQL. One way is to use the "MySQLWorkbench":http://www.mysql.com/products/workbench/. Or from the command line:
16 2 Art Kuo
  @mysqladmin -u root password NEWPASSWORD@ (where your password substitutes for NEWPASSWORD)
17 2 Art Kuo
Add MySQL to the path. In terminal:
18 2 Art Kuo
    @sudo touch /etc/paths.d/mysql@ (creates a file in which you type the path)
19 2 Art Kuo
    @sudo nano /etc/paths.d/mysql@
20 2 Art Kuo
In editor type @/usr/local/mysql/bin@ then save and exit
21 2 Art Kuo
Enter startup options to tell the MySQL client and daemon to connect to the local server. In terminal:
22 2 Art Kuo
    @sudo nano /etc/my.cnf@
23 1 Art Kuo
  In editor, add the following as appropriate:
24 3 Art Kuo
<pre>[mysqld]
25 3 Art Kuo
socket = /tmp/mysql.sock
26 3 Art Kuo
[client]
27 3 Art Kuo
socket = /tmp/mysql.sock</pre>    
28 2 Art Kuo
Install the MySQL binaries. Info about client libraries is available at http://support.apple.com/kb/HT4006 , or to download directly use
29 2 Art Kuo
http://www.opensource.apple.com/other/MySQL-55.binaries.tar.gz (or latest version)
30 2 Art Kuo
	@sudo tar -xzvf ~/Downloads/MySQL-55.binaries.tar.gz -C ~/Downloads@
31 2 Art Kuo
This will produce a root.tar archive, which must then also be extracted:
32 2 Art Kuo
	@sudo tar -xzvf ~/Downloads/MySQL-55.binaries/MySQL-55.root.tar.gz -C /@
33 2 Art Kuo
If successful, tar should list the many files being placed in appropriate locations throughout the system
34 2 Art Kuo
# Install "Phusion Passenger":http://www.modrails.com/install.html
35 2 Art Kuo
This is a gem that handles Ruby on Rails applications and makes them accessible on the web server.
36 1 Art Kuo
	@sudo gem install passenger@
37 1 Art Kuo
	@sudo passenger-install-apache2-module@
38 1 Art Kuo
The apache2 module installation will ask you to add several lines to the apache configuration file. For the standard Lion Server, the file is /etc/apache2/httpd.conf . Typical lines to add are:
39 3 Art Kuo
<pre>LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
40 2 Art Kuo
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.12
41 2 Art Kuo
PassengerRuby /System/Library/Frameworks/Ruby.framework/Version/1.8/usr/bin/ruby@
42 3 Art Kuo
</pre>
43 2 Art Kuo
It may also be helpful to specify the user that runs passenger, with the line
44 3 Art Kuo
<pre>PassengerDefaultUser www</pre>
45 2 Art Kuo
# Build and install Passenger Pref Pane
46 2 Art Kuo
This is a GUI interface for the Mac, to make it easy to add Ruby on Rails applications. Many of the binary prefPanes on the "web":http://www.fngtps.com/passenger-preference-pane are not compatible with 10.7, so it is necessary to "build":http://think.gregorybowers.com/post/8032492180/getting-passengerpane-to-work-in-lion-for-twerps-like :
47 2 Art Kuo
@cd ~/Downloads
48 2 Art Kuo
git clone https://github.com/Fingertips/passengerpane/
49 2 Art Kuo
cd passengerpane
50 2 Art Kuo
xcodebuild@
51 2 Art Kuo
(If you can't find xcodebuild, it may be in /usr/bin/xcodebuild)
52 2 Art Kuo
Install the preference pane. Look in ~/Downloads/passengerpane/build/Release, and double-click on Passenger.prefPane to install it.
53 2 Art Kuo
An alternative is to download a pre-compiled build for 10.7, e.g. "SoftwhisperSL-PassengerPrefPane":http://macweb.cz/press/wp-content/uploads/2012/01/SoftwhisperSL-PassengerPrefPane-OSX10.7-6c7197b.tar.gz
54 1 Art Kuo
55 2 Art Kuo
h2. Install Redmine
56 1 Art Kuo
57 2 Art Kuo
# Checkout Redmine 2
58 1 Art Kuo
	@cd /Library/WebServer/Sites/@
59 2 Art Kuo
If the Sites directory doesn't exist, create it (@sudo mkdir /Library/WebServer/Sites@)
60 2 Art Kuo
	@git clone https://github.com/redmine/redmine@
61 1 Art Kuo
# Configure Passenger
62 2 Art Kuo
	Open /Library/WebServer/Sites in Finder
63 1 Art Kuo
	Start Passenger preference pane in System Preferences
64 1 Art Kuo
	Drag redmine folder to Passenger (you may have to 'click to make changes')
65 2 Art Kuo
	Set "Address" to something like @redmine.local@ and click "Production"
66 2 Art Kuo
        Enter any aliases for the website, such as @your.server.com/redmine@
67 2 Art Kuo
# Setup Database with redmine user and database
68 1 Art Kuo
	@mysql -u root -p@
69 2 Art Kuo
(Enter the MySQL root password when prompted)
70 2 Art Kuo
Now enter the following into MySQL, substituting a password of your choice for MYPASSWORD:
71 5 Art Kuo
<pre>create database redmine character set utf8;
72 2 Art Kuo
create user 'redmine'@'localhost' identified by 'MYPASSWORD';
73 5 Art Kuo
	grant all privileges on redmine.* to 'redmine'@'localhost';</pre>
74 1 Art Kuo
# Configure Redmine
75 2 Art Kuo
	@cd /Library/WebServer/Sites/redmine
76 2 Art Kuo
	sudo mkdir tmp public/plugin_assets
77 2 Art Kuo
        sudo chown -R www:www tmp public/plugin_assets log files
78 2 Art Kuo
    	sudo chmod -R 755 files log tmp public/plugin_assets
79 1 Art Kuo
	sudo cp config/database.yml.example config/database.yml@
80 2 Art Kuo
Edit database.yml, e.g.
81 3 Art Kuo
<pre>production:
82 1 Art Kuo
  adapter: mysql
83 1 Art Kuo
  database: redmine
84 1 Art Kuo
  host: localhost
85 1 Art Kuo
  username: redmine
86 2 Art Kuo
  password: MYPASSWORD
87 3 Art Kuo
  socket: /tmp/mysql.sock</pre>
88 2 Art Kuo
If necessary, do the same for configuration.yml, for example to set up email SMTP.
89 2 Art Kuo
# Install appropriate gems
90 2 Art Kuo
Optional: It helps to have imagemagick, which can be installed with @brew install imagemagick@ if you use "Mac Homebrew":https://github.com/mxcl/homebrew/wiki/installation
91 3 Art Kuo
  @sudo gem install bundler@
92 2 Art Kuo
Make sure you are in the redmine directory @cd /Library/WebServer/Sites/redmine@:
93 3 Art Kuo
@sudo bundle install --without development test@
94 2 Art Kuo
(If you don't have imagemagick, also append @rmagick@ to the above line)
95 1 Art Kuo
# Establish Defaults
96 6 Yudistira Asnar
	@sudo rake generate_secret_token
97 12 José Roberto García Chico
If you get problems in here, it is because above installing official MySQL community edition was installed and the configuration is looking for the one which is distributed using MacPorts. Use the command "sudo port install mysql5-server mysql5" and try it again.
98 2 Art Kuo
	sudo RAILS_ENV=production rake db:migrate
99 2 Art Kuo
	sudo RAILS_ENV=production rake redmine:load_default_data@
100 7 Art Kuo
When prompted, enter the appropriate language (e.g. @en@ for English) and press enter.
101 7 Art Kuo
Note: You may receive warning message "Please install RDoc". This does not appear to prevent successful installation. For redmine 1.4, use generate_session_store instead of generate_secret_token.
102 1 Art Kuo
103 2 Art Kuo
h2. Configure Apache to serve up Redmine
104 1 Art Kuo
105 2 Art Kuo
You may wish to try out using webrick first, but you can move straight to apache. 
106 2 Art Kuo
# Go to Server.app, select the Web service, and add a new website. For example domain name @redmine.local@, and store site files in @/Library/WebServer/Sites/redmine/public@
107 2 Art Kuo
# Restart the web server
108 2 Art Kuo
@sudo apachectl restart@
109 2 Art Kuo
Or, in Server.app, turn the web service off and then on. 
110 2 Art Kuo
Go to the Passenger prefPane and restart your redmine app
111 2 Art Kuo
The site should now be visible, e.g. at redmine.local
112 2 Art Kuo
To serve outside of local, instructions may be found "here":http://developer.apple.com/library/mac/#featuredarticles/PhusionRails/_index.html
113 2 Art Kuo
For example, to serve as a subdomain from your main server, do the following. First, link the redmine directory into the directory where Server stores files in, e.g.
114 1 Art Kuo
@ln -s /Library/WebServer/Sites/redmine/public /Library/Server/Web/Data/Sites/Default/redmine@
115 2 Art Kuo
edit the appropriate .conf file in /etc/apache2/sites, and under VirtualHost add @RailsBaseURI /redmine@ to point at the same location
116 9 Art Kuo
# Login as Admin
117 9 Art Kuo
By default, the user:admin has password:admin, which you should change immediately.
118 2 Art Kuo
119 1 Art Kuo
h2. Notes
120 2 Art Kuo
121 11 Art Kuo
# For automated installs, check out [[How to install Redmine in Linux Windows and OS X using BitNami Redmine Stack]]
122 11 Art Kuo
# The following references were helpful for compiling this howto: 
123 1 Art Kuo
http://macweb.cz/press/2012/01/28/instalace-redmine-na-mac-os-x-lion-server-10-7/
124 2 Art Kuo
[[RedmineInstallOSXServer]] for Snow Leopard Server
125 11 Art Kuo
# This same procedure also works for Redmine 1.4. Installation for 1.4+ is made vastly easier by the gem bundler, which ensures the appropriate gem versions are maintained. 
126 11 Art Kuo
# Redmine 2.0+ requires ruby gems that conflict with some Lion Server web applications such as Wiki and Profile Manager. These require earlier versions of rack (1.2.1) and rails (2.3.14). To run these applications, it is preferable to concurrently run redmine 1.4, which is compatible with older gems, or to manage separate ruby versions for redmine vs Server web apps.
127 11 Art Kuo
# Probably a better idea to use PostgreSQL instead of installing MySQL, which is no longer provided by Apple with OS X Server. There are also alternative methods to install MySQL, such as @brew install mysql@.