Redmineちゃん2

ハピハピハッピー
で始まりましたが、前日id:amidaike:20091116のRedmineのインストールの続きです。


サーバ環境は前日をご覧ください。

早速Redmineのインストール作業です。


Redmineのインストール作業を行う前に、MySQLRedmine用のユーザを作ってあげましょう。

rootユーザでログイン後、redmine要データベースの作成、例としてredminedbとする。

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1029
Server version: 5.1.40-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE redminedb DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

その後、redmine用ユーザの作成と権限を設定します。
権限はredminedbにしかつけません。

mysql> CREATE USER 'redmineuser'@'localhost' IDENTIFIED BY 'redmineuser', 'redmineuser'@'127.0.0.1' IDENTIFIED BY 'redmineuser';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON redminedb.* TO 'redmineuser'@'localhost' IDENTIFIED BY 'redmineuser' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON redminedb.* TO 'redmineuser'@'127.0.0.1' IDENTIFIED BY 'redmineuser' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

MySQLの設定は以上。

MySQLは起動しておきましょう。

  • Redmineのダウンロード、設定

RedmineのサイトよりRedmine本体をダウンロード
http://rubyforge.org/frs/?group_id=1850
redmine-0.8.7.zipをダウンロードします。
(インストール時点では0.8.7が最新ですた。)

今回は/usr/local直下におきます。

# cd /usr/local/
# wget http://rubyforge.org/frs/download.php/67144/redmine-0.8.7.tar.gz
# tar -xvf redmine-0.8.7.tar.gz
名前はredmine-0.8.7は嫌なのでredmineにする。
# mv redmine-0.8.7 redmine

Redmine用のデータベース設定
先ほど作成したデータベースの設定をdatabase.ymlに対して行いますが、
そのファイル内のproduction以外の記述は使わなければ不要なためコメントアウトにしておきましょう。

# cd /usr/local/redmine/config
# cp -pr database.yml.example database.yml
# vi database.yml

production:
  adapter: mysql
  database: redminedb
  host: localhost
  username: redmineuser
  password: redmineuser
  encoding: utf8


・Redmin用のテーブルを作成

# cd /usr/local/redmine
# rake db:migrate RAILS_ENV=production
(in /usr/local/redmine)
rake aborted!
Missing session secret. Please run 'rake config/initializers/session_store.rb' to generate one

(See full trace by running task with --trace)

あれ、怒られた。
とりあえず、書いてある通りに実行してみよう。

# rake config/initializers/session_store.rb
 

で、もう一度実行

# rake db:migrate RAILS_ENV=production
(in /usr/local/redmine)
rake aborted!
No such file or directory - /tmp/mysql.sock

(See full trace by running task with --trace)
 

また怒られたorz

今回MySQLRPM版をインストールしてデフォルト起動なので、
/tmp/mysql.sockは/var/lib/mysql/mysql.sockにあるんだなこれが。
というわけで、config/database.ymlに
socket: /var/lib/mysql/mysql.sock
を追記する。

production:
  adapter: mysql
  database: redminedb
  host: localhost
  username: redmineuser
  password: redmineuser
  encoding: utf8
  socket: /var/lib/mysql/mysql.sock


更に実行

# rake db:migrate RAILS_ENV=production
(in /usr/local/redmine)
== 1 Setup: migrating =========================================================
    • create_table("attachments", {:force=>true})
-> 0.0063s
    • create_table("auth_sources", {:force=>true})
-> 0.0046s
    • create_table("custom_fields", {:force=>true})
-> 0.0284s
    • create_table("custom_fields_projects", {:force=>true, :id=>false})
-> 0.0038s
    • create_table("custom_fields_trackers", {:force=>true, :id=>false})
-> 0.0038s
    • create_table("custom_values", {:force=>true})
-> 0.0040s
    • create_table("documents", {:force=>true})
-> 0.0044s
    • add_index("documents", ["project_id"], {:name=>"documents_project_id"})
-> 0.0350s
    • create_table("enumerations", {:force=>true})
-> 0.0045s
    • create_table("issue_categories", {:force=>true})
-> 0.0255s
    • add_index("issue_categories", ["project_id"], {:name=>"issue_categories_project_id"})
-> 0.0052s
    • create_table("issue_histories", {:force=>true})
-> 0.0044s
    • add_index("issue_histories", ["issue_id"], {:name=>"issue_histories_issue_id"})
-> 0.0232s
    • create_table("issue_statuses", {:force=>true})
-> 0.0043s
    • create_table("issues", {:force=>true})
-> 0.0195s
    • add_index("issues", ["project_id"], {:name=>"issues_project_id"})
-> 0.0065s
    • create_table("members", {:force=>true})
-> 0.0043s
    • create_table("news", {:force=>true})
-> 0.0215s
    • add_index("news", ["project_id"], {:name=>"news_project_id"})
-> 0.0055s
    • create_table("permissions", {:force=>true})
-> 0.0353s
    • create_table("permissions_roles", {:force=>true, :id=>false})
-> 0.0043s
    • add_index("permissions_roles", ["role_id"], {:name=>"permissions_roles_role_id"})
-> 0.0053s
    • create_table("projects", {:force=>true})
-> 0.0053s
    • create_table("roles", {:force=>true})
-> 0.0043s
    • create_table("tokens", {:force=>true})
-> 0.0290s
    • create_table("trackers", {:force=>true})
-> 0.0044s
    • create_table("users", {:force=>true})
-> 0.0058s
    • create_table("versions", {:force=>true})
-> 0.0225s
    • add_index("versions", ["project_id"], {:name=>"versions_project_id"})
-> 0.0260s
    • create_table("workflows", {:force=>true})
-> 0.0049s == 1 Setup: migrated (0.6399s) ================================================ == 2 IssueMove: migrating ===================================================== == 2 IssueMove: migrated (0.0081s) ============================================ == 3 IssueAddNote: migrating ================================================== == 3 IssueAddNote: migrated (0.0080s) ========================================= == 4 ExportPdf: migrating ===================================================== == 4 ExportPdf: migrated (0.0110s) ============================================ == 5 IssueStartDate: migrating ================================================
    • add_column(:issues, :start_date, :date)
-> 0.0296s
    • add_column(:issues, :done_ratio, :integer, {:null=>false, :default=>0})
-> 0.0061s == 5 IssueStartDate: migrated (0.0364s) ======================================= == 6 CalendarAndActivity: migrating =========================================== == 6 CalendarAndActivity: migrated (0.0144s) ================================== == 7 CreateJournals: migrating ================================================
    • create_table(:journals, {:force=>true})
-> 0.0243s
    • create_table(:journal_details, {:force=>true})
-> 0.0048s
    • add_index("journals", ["journalized_id", "journalized_type"], {:name=>"journals_journalized_id"})
-> 0.0301s
    • add_index("journal_details", ["journal_id"], {:name=>"journal_details_journal_id"})
-> 0.0057s
    • drop_table(:issue_histories)
-> 0.0018s == 7 CreateJournals: migrated (0.0786s) ======================================= == 8 CreateUserPreferences: migrating =========================================
    • create_table(:user_preferences)
-> 0.0362s == 8 CreateUserPreferences: migrated (0.0366s) ================================ == 9 AddHideMailPref: migrating ===============================================
    • add_column(:user_preferences, :hide_mail, :boolean, {:default=>false})
-> 0.0251s == 9 AddHideMailPref: migrated (0.0255s) ====================================== == 10 CreateComments: migrating ===============================================
    • create_table(:comments)
-> 0.0033s == 10 CreateComments: migrated (0.0036s) ====================================== == 11 AddNewsCommentsCount: migrating =========================================
    • add_column(:news, :comments_count, :integer, {:null=>false, :default=>0})
-> 0.0061s == 11 AddNewsCommentsCount: migrated (0.0066s) ================================ == 12 AddCommentsPermissions: migrating ======================================= == 12 AddCommentsPermissions: migrated (0.0110s) ============================== == 13 CreateQueries: migrating ================================================
    • create_table(:queries, {:force=>true})
-> 0.0303s == 13 CreateQueries: migrated (0.0306s) ======================================= == 14 AddQueriesPermissions: migrating ======================================== == 14 AddQueriesPermissions: migrated (0.0080s) =============================== == 15 CreateRepositories: migrating ===========================================
    • create_table(:repositories, {:force=>true})
-> 0.0050s == 15 CreateRepositories: migrated (0.0054s) ================================== == 16 AddRepositoriesPermissions: migrating =================================== == 16 AddRepositoriesPermissions: migrated (0.0220s) ========================== == 17 CreateSettings: migrating ===============================================
    • create_table(:settings, {:force=>true})
-> 0.0052s == 17 CreateSettings: migrated (0.0055s) ====================================== == 18 SetDocAndFilesNotifications: migrating ================================== == 18 SetDocAndFilesNotifications: migrated (0.0208s) ========================= == 19 AddIssueStatusPosition: migrating =======================================
    • add_column(:issue_statuses, :position, :integer, {:default=>1})
-> 0.0056s == 19 AddIssueStatusPosition: migrated (0.0145s) ============================== == 20 AddRolePosition: migrating ==============================================
    • add_column(:roles, :position, :integer, {:default=>1})
-> 0.0260s == 20 AddRolePosition: migrated (0.0360s) ===================================== == 21 AddTrackerPosition: migrating ===========================================
    • add_column(:trackers, :position, :integer, {:default=>1})
-> 0.0222s == 21 AddTrackerPosition: migrated (0.0239s) ================================== == 22 SerializePossiblesValues: migrating ===================================== == 22 SerializePossiblesValues: migrated (0.0017s) ============================ == 23 AddTrackerIsInRoadmap: migrating ========================================
    • add_column(:trackers, :is_in_roadmap, :boolean, {:null=>false, :default=>true})
-> 0.0189s == 23 AddTrackerIsInRoadmap: migrated (0.0192s) =============================== == 24 AddRoadmapPermission: migrating ========================================= == 24 AddRoadmapPermission: migrated (0.0081s) ================================ == 25 AddSearchPermission: migrating ========================================== == 25 AddSearchPermission: migrated (0.0079s) ================================= == 26 AddRepositoryLoginAndPassword: migrating ================================
    • add_column(:repositories, :login, :string, {:limit=>60, :default=>""})
-> 0.0058s
    • add_column(:repositories, :password, :string, {:limit=>60, :default=>""})
-> 0.0054s == 26 AddRepositoryLoginAndPassword: migrated (0.0119s) ======================= == 27 CreateWikis: migrating ==================================================
    • create_table(:wikis)
-> 0.0481s
    • add_index(:wikis, :project_id, {:name=>:wikis_project_id})
-> 0.0054s == 27 CreateWikis: migrated (0.0543s) ========================================= == 28 CreateWikiPages: migrating ==============================================
    • create_table(:wiki_pages)
-> 0.0032s
    • add_index(:wiki_pages, [:wiki_id, :title], {:name=>:wiki_pages_wiki_id_title})
-> 0.0168s == 28 CreateWikiPages: migrated (0.0208s) ===================================== == 29 CreateWikiContents: migrating ===========================================
    • create_table(:wiki_contents)
-> 0.0290s
    • add_index(:wiki_contents, :page_id, {:name=>:wiki_contents_page_id})
-> 0.0272s
    • create_table(:wiki_content_versions)
-> 0.0037s
    • add_index(:wiki_content_versions, :wiki_content_id, {:name=>:wiki_content_versions_wcid})
-> 0.0055s == 29 CreateWikiContents: migrated (0.0669s) ================================== == 30 AddProjectsFeedsPermissions: migrating ================================== == 30 AddProjectsFeedsPermissions: migrated (0.0088s) ========================= == 31 AddRepositoryRootUrl: migrating =========================================
    • add_column(:repositories, :root_url, :string, {:limit=>255, :default=>""})
-> 0.0533s == 31 AddRepositoryRootUrl: migrated (0.0538s) ================================ == 32 CreateTimeEntries: migrating ============================================
    • create_table(:time_entries)
-> 0.0044s
    • add_index(:time_entries, [:project_id], {:name=>:time_entries_project_id})
-> 0.0250s
    • add_index(:time_entries, [:issue_id], {:name=>:time_entries_issue_id})
-> 0.0271s == 32 CreateTimeEntries: migrated (0.0578s) =================================== == 33 AddTimelogPermissions: migrating ======================================== == 33 AddTimelogPermissions: migrated (0.0079s) =============================== == 34 CreateChangesets: migrating =============================================
    • create_table(:changesets)
-> 0.0035s
    • add_index(:changesets, [:repository_id, :revision], {:unique=>true, :name=>:changesets_repos_rev})
-> 0.0272s == 34 CreateChangesets: migrated (0.0314s) ==================================== == 35 CreateChanges: migrating ================================================
    • create_table(:changes)
-> 0.0032s
    • add_index(:changes, [:changeset_id], {:name=>:changesets_changeset_id})
-> 0.0509s == 35 CreateChanges: migrated (0.0549s) ======================================= == 36 AddChangesetCommitDate: migrating =======================================
    • add_column(:changesets, :commit_date, :date)
-> 0.0256s == 36 AddChangesetCommitDate: migrated (0.0268s) ============================== == 37 AddProjectIdentifier: migrating =========================================
    • add_column(:projects, :identifier, :string, {:limit=>20})
-> 0.0880s == 37 AddProjectIdentifier: migrated (0.0884s) ================================ == 38 AddCustomFieldIsFilter: migrating =======================================
    • add_column(:custom_fields, :is_filter, :boolean, {:null=>false, :default=>false})
-> 0.0057s == 38 AddCustomFieldIsFilter: migrated (0.0062s) ============================== == 39 CreateWatchers: migrating ===============================================
    • create_table(:watchers)
-> 0.0030s == 39 CreateWatchers: migrated (0.0034s) ====================================== == 40 CreateChangesetsIssues: migrating =======================================
    • create_table(:changesets_issues, {:id=>false})
-> 0.0195s
    • add_index(:changesets_issues, [:changeset_id, :issue_id], {:unique=>true, :name=>:changesets_issues_ids})
-> 0.0053s == 40 CreateChangesetsIssues: migrated (0.0256s) ============================== == 41 RenameCommentToComments: migrating ====================================== == 41 RenameCommentToComments: migrated (0.0694s) ============================= == 42 CreateIssueRelations: migrating =========================================
    • create_table(:issue_relations)
-> 0.0032s == 42 CreateIssueRelations: migrated (0.0036s) ================================ == 43 AddRelationsPermissions: migrating ====================================== == 43 AddRelationsPermissions: migrated (0.0111s) ============================= == 44 SetLanguageLengthToFive: migrating ======================================
    • change_column(:users, :language, :string, {:limit=>5, :default=>""})
-> 0.0317s == 44 SetLanguageLengthToFive: migrated (0.0322s) ============================= == 45 CreateBoards: migrating =================================================
    • create_table(:boards)
-> 0.0035s
    • add_index(:boards, [:project_id], {:name=>:boards_project_id})
-> 0.0333s == 45 CreateBoards: migrated (0.0376s) ======================================== == 46 CreateMessages: migrating ===============================================
    • create_table(:messages)
-> 0.0039s
    • add_index(:messages, [:board_id], {:name=>:messages_board_id})
-> 0.0058s
    • add_index(:messages, [:parent_id], {:name=>:messages_parent_id})
-> 0.0232s == 46 CreateMessages: migrated (0.0340s) ====================================== == 47 AddBoardsPermissions: migrating ========================================= == 47 AddBoardsPermissions: migrated (0.0137s) ================================ == 48 AllowNullVersionEffectiveDate: migrating ================================
    • change_column(:versions, :effective_date, :date, {:null=>true, :default=>nil})
-> 0.0084s == 48 AllowNullVersionEffectiveDate: migrated (0.0088s) ======================= == 49 AddWikiDestroyPagePermission: migrating ================================= == 49 AddWikiDestroyPagePermission: migrated (0.0079s) ======================== == 50 AddWikiAttachmentsPermissions: migrating ================================ == 50 AddWikiAttachmentsPermissions: migrated (0.0106s) ======================= == 51 AddProjectStatus: migrating =============================================
    • add_column(:projects, :status, :integer, {:null=>false, :default=>1})
-> 0.0192s == 51 AddProjectStatus: migrated (0.0196s) ==================================== == 52 AddChangesRevision: migrating ===========================================
    • add_column(:changes, :revision, :string)
-> 0.0056s == 52 AddChangesRevision: migrated (0.0060s) ================================== == 53 AddChangesBranch: migrating =============================================
    • add_column(:changes, :branch, :string)
-> 0.0330s == 53 AddChangesBranch: migrated (0.0334s) ==================================== == 54 AddChangesetsScmid: migrating ===========================================
    • add_column(:changesets, :scmid, :string)
-> 0.0057s == 54 AddChangesetsScmid: migrated (0.0061s) ================================== == 55 AddRepositoriesType: migrating ==========================================
    • add_column(:repositories, :type, :string)
-> 0.0229s == 55 AddRepositoriesType: migrated (0.0240s) ================================= == 56 AddRepositoriesChangesPermission: migrating ============================= == 56 AddRepositoriesChangesPermission: migrated (0.0079s) ==================== == 57 AddVersionsWikiPageTitle: migrating =====================================
    • add_column(:versions, :wiki_page_title, :string)
-> 0.0060s == 57 AddVersionsWikiPageTitle: migrated (0.0063s) ============================ == 58 AddIssueCategoriesAssignedToId: migrating ===============================
    • add_column(:issue_categories, :assigned_to_id, :integer)
-> 0.0643s == 58 AddIssueCategoriesAssignedToId: migrated (0.0647s) ====================== == 59 AddRolesAssignable: migrating ===========================================
    • add_column(:roles, :assignable, :boolean, {:default=>true})
-> 0.0053s == 59 AddRolesAssignable: migrated (0.0058s) ================================== == 60 ChangeChangesetsCommitterLimit: migrating ===============================
    • change_column(:changesets, :committer, :string, {:limit=>nil})
-> 0.0085s == 60 ChangeChangesetsCommitterLimit: migrated (0.0090s) ====================== == 61 AddRolesBuiltin: migrating ==============================================
    • add_column(:roles, :builtin, :integer, {:null=>false, :default=>0})
-> 0.0251s == 61 AddRolesBuiltin: migrated (0.0255s) ===================================== == 62 InsertBuiltinRoles: migrating =========================================== == 62 InsertBuiltinRoles: migrated (0.0149s) ================================== == 63 AddRolesPermissions: migrating ==========================================
    • add_column(:roles, :permissions, :text)
-> 0.0056s == 63 AddRolesPermissions: migrated (0.0060s) ================================= == 64 DropPermissions: migrating ==============================================
    • drop_table(:permissions)
-> 0.0019s
    • drop_table(:permissions_roles)
-> 0.0017s == 64 DropPermissions: migrated (0.0043s) ===================================== == 65 AddSettingsUpdatedOn: migrating =========================================
    • add_column(:settings, :updated_on, :timestamp)
-> 0.0271s == 65 AddSettingsUpdatedOn: migrated (0.0383s) ================================ == 66 AddCustomValueCustomizedIndex: migrating ================================
    • add_index(:custom_values, [:customized_type, :customized_id], {:name=>:custom_values_customized})
-> 0.0058s == 66 AddCustomValueCustomizedIndex: migrated (0.0063s) ======================= == 67 CreateWikiRedirects: migrating ==========================================
    • create_table(:wiki_redirects)
-> 0.0450s
    • add_index(:wiki_redirects, [:wiki_id, :title], {:name=>:wiki_redirects_wiki_id_title})
-> 0.0055s == 67 CreateWikiRedirects: migrated (0.0513s) ================================= == 68 CreateEnabledModules: migrating =========================================
    • create_table(:enabled_modules)
-> 0.0033s
    • add_index(:enabled_modules, [:project_id], {:name=>:enabled_modules_project_id})
-> 0.0164s == 68 CreateEnabledModules: migrated (0.0222s) ================================ == 69 AddIssuesEstimatedHours: migrating ======================================
    • add_column(:issues, :estimated_hours, :float)
-> 0.0066s == 69 AddIssuesEstimatedHours: migrated (0.0070s) ============================= == 70 ChangeAttachmentsContentTypeLimit: migrating ============================
    • change_column(:attachments, :content_type, :string, {:limit=>nil})
-> 0.0219s == 70 ChangeAttachmentsContentTypeLimit: migrated (0.0223s) =================== == 71 AddQueriesColumnNames: migrating ========================================
    • add_column(:queries, :column_names, :text)
-> 0.0056s == 71 AddQueriesColumnNames: migrated (0.0059s) =============================== == 72 AddEnumerationsPosition: migrating ======================================
    • add_column(:enumerations, :position, :integer, {:default=>1})
-> 0.0057s == 72 AddEnumerationsPosition: migrated (0.0154s) ============================= == 73 AddEnumerationsIsDefault: migrating =====================================
    • add_column(:enumerations, :is_default, :boolean, {:null=>false, :default=>false})
-> 0.0579s == 73 AddEnumerationsIsDefault: migrated (0.0582s) ============================ == 74 AddAuthSourcesTls: migrating ============================================
    • add_column(:auth_sources, :tls, :boolean, {:null=>false, :default=>false})
-> 0.0062s == 74 AddAuthSourcesTls: migrated (0.0064s) =================================== == 75 AddMembersMailNotification: migrating ===================================
    • add_column(:members, :mail_notification, :boolean, {:null=>false, :default=>false})
-> 0.0232s == 75 AddMembersMailNotification: migrated (0.0234s) ========================== == 76 AllowNullPosition: migrating ============================================
    • change_column(:issue_statuses, :position, :integer, {:null=>true, :default=>1})
-> 0.0050s
    • change_column(:roles, :position, :integer, {:null=>true, :default=>1})
-> 0.0050s
    • change_column(:trackers, :position, :integer, {:null=>true, :default=>1})
-> 0.0048s
    • change_column(:boards, :position, :integer, {:null=>true, :default=>1})
-> 0.0050s
    • change_column(:enumerations, :position, :integer, {:null=>true, :default=>1})
-> 0.0049s == 76 AllowNullPosition: migrated (0.0258s) =================================== == 77 RemoveIssueStatusesHtmlColor: migrating =================================
    • remove_column(:issue_statuses, :html_color)
-> 0.0053s == 77 RemoveIssueStatusesHtmlColor: migrated (0.0055s) ======================== == 78 AddCustomFieldsPosition: migrating ======================================
    • add_column(:custom_fields, :position, :integer, {:default=>1})
-> 0.0059s == 78 AddCustomFieldsPosition: migrated (0.0080s) ============================= == 79 AddUserPreferencesTimeZone: migrating ===================================
    • add_column(:user_preferences, :time_zone, :string)
-> 0.0243s == 79 AddUserPreferencesTimeZone: migrated (0.0244s) ========================== == 80 AddUsersType: migrating =================================================
    • add_column(:users, :type, :string)
-> 0.0063s == 80 AddUsersType: migrated (0.0077s) ======================================== == 81 CreateProjectsTrackers: migrating =======================================
    • create_table(:projects_trackers, {:id=>false})
-> 0.0030s
    • add_index(:projects_trackers, :project_id, {:name=>:projects_trackers_project_id})
-> 0.0200s == 81 CreateProjectsTrackers: migrated (0.0263s) ============================== == 82 AddMessagesLocked: migrating ============================================
    • add_column(:messages, :locked, :boolean, {:default=>false})
-> 0.0547s == 82 AddMessagesLocked: migrated (0.0549s) =================================== == 83 AddMessagesSticky: migrating ============================================
    • add_column(:messages, :sticky, :integer, {:default=>0})
-> 0.0062s == 83 AddMessagesSticky: migrated (0.0064s) =================================== == 84 ChangeAuthSourcesAccountLimit: migrating ================================
    • change_column(:auth_sources, :account, :string, {:limit=>nil})
-> 0.0094s == 84 ChangeAuthSourcesAccountLimit: migrated (0.0096s) ======================= == 85 AddRoleTrackerOldStatusIndexToWorkflows: migrating ======================
    • add_index(:workflows, [:role_id, :tracker_id, :old_status_id], {:name=>:wkfs_role_tracker_old_status})
-> 0.0248s == 85 AddRoleTrackerOldStatusIndexToWorkflows: migrated (0.0250s) ============= == 86 AddCustomFieldsSearchable: migrating ====================================
    • add_column(:custom_fields, :searchable, :boolean, {:default=>false})
-> 0.0059s == 86 AddCustomFieldsSearchable: migrated (0.0061s) =========================== == 87 ChangeProjectsDescriptionToText: migrating ==============================
    • change_column(:projects, :description, :text, {:null=>true, :default=>nil})
-> 0.0326s == 87 ChangeProjectsDescriptionToText: migrated (0.0328s) ===================== == 88 AddCustomFieldsDefaultValue: migrating ==================================
    • add_column(:custom_fields, :default_value, :text)
-> 0.0057s == 88 AddCustomFieldsDefaultValue: migrated (0.0059s) ========================= == 89 AddAttachmentsDescription: migrating ====================================
    • add_column(:attachments, :description, :string)
-> 0.0237s == 89 AddAttachmentsDescription: migrated (0.0239s) =========================== == 90 ChangeVersionsNameLimit: migrating ======================================
    • change_column(:versions, :name, :string, {:limit=>nil})
-> 0.0087s == 90 ChangeVersionsNameLimit: migrated (0.0089s) ============================= == 91 ChangeChangesetsRevisionToString: migrating =============================
    • change_column(:changesets, :revision, :string, {:null=>false})
-> 0.0384s == 91 ChangeChangesetsRevisionToString: migrated (0.0386s) ==================== == 92 ChangeChangesFromRevisionToString: migrating ============================
    • change_column(:changes, :from_revision, :string)
-> 0.0590s == 92 ChangeChangesFromRevisionToString: migrated (0.0592s) =================== == 93 AddWikiPagesProtected: migrating ========================================
    • add_column(:wiki_pages, :protected, :boolean, {:null=>false, :default=>false})
-> 0.0061s == 93 AddWikiPagesProtected: migrated (0.0063s) =============================== == 94 ChangeProjectsHomepageLimit: migrating ==================================
    • change_column(:projects, :homepage, :string, {:limit=>nil, :default=>""})
-> 0.0330s == 94 ChangeProjectsHomepageLimit: migrated (0.0332s) ========================= == 95 AddWikiPagesParentId: migrating =========================================
    • add_column(:wiki_pages, :parent_id, :integer, {:default=>nil})
-> 0.0061s == 95 AddWikiPagesParentId: migrated (0.0063s) ================================ == 96 AddCommitAccessPermission: migrating ==================================== == 96 AddCommitAccessPermission: migrated (0.0016s) =========================== == 97 AddViewWikiEditsPermission: migrating =================================== == 97 AddViewWikiEditsPermission: migrated (0.0016s) ========================== == 98 SetTopicAuthorsAsWatchers: migrating ==================================== == 98 SetTopicAuthorsAsWatchers: migrated (0.0072s) =========================== == 99 AddDeleteWikiPagesAttachmentsPermission: migrating ====================== == 99 AddDeleteWikiPagesAttachmentsPermission: migrated (0.0014s) ============= == 100 AddChangesetsUserId: migrating =========================================
    • add_column(:changesets, :user_id, :integer, {:default=>nil})
-> 0.0330s == 100 AddChangesetsUserId: migrated (0.0332s) ================================ == 101 PopulateChangesetsUserId: migrating ==================================== == 101 PopulateChangesetsUserId: migrated (0.0013s) ===========================

やった。うまいこといった。
という事で初期データを入れます。

rake load_default_data RAILS_ENV=production
(in /usr/local/redmine)

Select language: bg, ca, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sr, sv, th, tr, uk, vn, zh, zh-tw [en] ja
====================================
Default configuration data loaded.

Note: The rake task load_default_data has been deprecated, please use the replacement version redmine:load_default_data

languageはjaと入力して終了。


メール送信は使う必要がなければ設定で無効にしておきましょう。
config/environment.rb
の以下の行をfalseにしておけばメールは無効です。

  config.action_mailer.perform_deliveries = false

メール送信したければtrueにし、
email.yml.exampleをemail.ymlにしsmtpサーバの設定を行いましょう。
今回は説明を省きます。


以上でRedmineのインストール及び設定は基本的には完了です。


とりあえずの確認は、

#  ruby script/server -e production

と実行すればwebサーバが起動し3000/tcpで待ち受け状態となるので、
ブラウザでアクセスするとログイン画面が表示されます。



Apacheと連携させたいので、
Ruby on RailsアプリケーションをApacheで連携させる
"Phusion Passenger(mod_rails for Apache)":http://www.modrails.com/
を利用して運用させます。
要は、PassengerはRailsアプリケーションを動かすためのApacheモジュールです。

Passengerをインストールしていきます。
Passengerはgemでインストール可能みたいです。

# gem install passenger
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed fastthread-1.0.7
Successfully installed passenger-2.2.7
2 gems installed
Installing ri documentation for fastthread-1.0.7...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing ri documentation for passenger-2.2.7...
Installing RDoc documentation for fastthread-1.0.7...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing RDoc documentation for passenger-2.2.7...

次に、今インストールしたpassenger-install-apache2-moduleを実行して
Apacheモジュールのビルドとインストールを行います。

# passenger-install-apache2-module

対話形式で開始

Welcome to the Phusion Passenger Apache 2 module installer, v2.2.7.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

(Enterを押す)

                                                                                      • -
Checking for required software... * GNU C++ compiler... not found * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /usr/local/bin/rake * Apache 2... found at /usr/sbin/httpd * Apache 2 development headers... not found * Apache Portable Runtime (APR) development headers... not found * Apache Portable Runtime Utility (APU) development headers... not found Some required software is not installed. But don't worry, this installer will tell you how to install them. Press Enter to continue, or Ctrl-C to abort.

あれ、ログを見ると必要なソフトウェアが無いという事なので、
Ctrl-Cを押して処理を中断し、必要なソフトウェアのインストールを行います。

  • ソフトウェアのインストール

上記より
* GNU C++ compiler... not found
* Apache 2 development headers... not found
* Apache Portable Runtime (APR) development headers... not found
* Apache Portable Runtime Utility (APU) development headers... not found
が無いという事なので、インストールを行っちゃいましょう。

# yum install gcc-c++
# yum install httpd-devel


再度実行。

# passenger-install-apache2-module

対話形式で開始

Welcome to the Phusion Passenger Apache 2 module installer, v2.2.7.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

(Enterを押す)


                                                                                      • -
Checking for required software... * GNU C++ compiler... found at /usr/bin/g++ * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /usr/local/bin/rake * Apache 2... found at /usr/sbin/httpd * Apache 2 development headers... found at /usr/sbin/apxs * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config
                                                                                      • -
Compiling and installing Apache 2 module... cd /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7 /usr/local/bin/ruby -S /usr/local/bin/rake clean apache2 # /usr/local/bin/ruby -S /usr/local/bin/rake clean apache2 (in /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7) rm -rf ext/apache2/libboost_oxt.a ext/apache2/libboost_oxt rm -rf ext/apache2/libpassenger_common.a ext/apache2/ApplicationPoolServerExecutable ext/apache2/libpassenger_common rm -rf ext/apache2/Configuration.o ext/apache2/Bucket.o ext/apache2/Hooks.o ext/apache2/mod_passenger.o ext/apache2/mod_passenger.so rm -rf ext/nginx/libboost_oxt.a ext/nginx/libboost_oxt rm -rf ext/nginx/libpassenger_common.a ext/nginx/libpassenger_common rm -rf ext/nginx/HelperServer rm -rf test/libboost_oxt.a test/libboost_oxt rm -rf test/libpassenger_common.a test/ApplicationPoolServerExecutable test/libpassenger_common rm -rf test/oxt/oxt_test_main test/oxt/*.o test/CxxTests test/*.o rm -r pkg cd ext/phusion_passenger && make clean rm -f ext/phusion_passenger/Makefile mkdir -p ext/apache2/libpassenger_common g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libpassenger_common/Utils.o -c ext/common/Utils.cpp g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libpassenger_common/Logging.o -c ext/common/Logging.cpp g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libpassenger_common/SystemTime.o -c ext/common/SystemTime.cpp g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libpassenger_common/CachedFileStat.o -c ext/common/CachedFileStat.cpp g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libpassenger_common/Base64.o -c ext/common/Base64.cpp mkdir -p ext/apache2/libpassenger_common rm -rf ext/apache2/libpassenger_common.a ar cru ext/apache2/libpassenger_common.a ext/apache2/libpassenger_common/*.o ranlib ext/apache2/libpassenger_common.a mkdir -p ext/apache2/libboost_oxt/boost g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/boost/exceptions.o -c ext/boost/src/pthread/exceptions.cpp g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/boost/thread.o -c ext/boost/src/pthread/thread.cpp g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/boost/once.o -c ext/boost/src/pthread/once.cpp mkdir -p ext/apache2/libboost_oxt/oxt g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/oxt/thread.o -c ext/oxt/thread.cpp g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/oxt/backtrace.o -c ext/oxt/backtrace.cpp g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/oxt/tracable_exception.o -c ext/oxt/tracable_exception.cpp g++ -Iext -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/libboost_oxt/oxt/system_calls.o -c ext/oxt/system_calls.cpp mkdir -p ext/apache2/libboost_oxt/boost ext/apache2/libboost_oxt/oxt rm -rf ext/apache2/libboost_oxt.a ar cru ext/apache2/libboost_oxt.a ext/apache2/libboost_oxt/boost/*.o ext/apache2/libboost_oxt/oxt/*.o ranlib ext/apache2/libboost_oxt.a g++ ext/common/ApplicationPoolServerExecutable.cpp -o ext/apache2/ApplicationPoolServerExecutable -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS ext/apache2/libpassenger_common.a ext/apache2/libboost_oxt.a -lpthread gcc -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/mod_passenger.o -c ext/apache2/mod_passenger.c g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/Configuration.o -c ext/apache2/Configuration.cpp g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/Bucket.o -c ext/apache2/Bucket.cpp g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS -o ext/apache2/Hooks.o -c ext/apache2/Hooks.cpp g++ -shared ext/apache2/Configuration.o ext/apache2/Bucket.o ext/apache2/Hooks.o ext/apache2/mod_passenger.o -fPIC -o ext/apache2/mod_passenger.so -fPIC -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/apr-1 -I/usr/include/apr-1 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -fno-strict-aliasing -I/usr/include/httpd -D_REENTRANT -I/usr/local/include -Wall -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS ext/apache2/libpassenger_common.a ext/apache2/libboost_oxt.a -fPIC -lapr-1 -laprutil-1 -lpthread cd ext/phusion_passenger && /usr/local/bin/ruby extconf.rb creating Makefile cd ext/phusion_passenger && make gcc -I. -I/usr/local/lib/ruby/1.8/i686-linux -I/usr/local/lib/ruby/1.8/i686-linux -I. -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -c native_support.c gcc -shared -o native_support.so native_support.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L. -rdynamic -Wl,-export-dynamic
                                                                                      • -
The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7 PassengerRuby /usr/local/bin/ruby After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration! Press ENTER to continue. (Enterを押す)
                                                                                      • -
Deploying a Ruby on Rails application: an example Suppose you have a Rails application in /somewhere. Add a virtual host to your Apache configuration file and set its DocumentRoot to /somewhere/public: ServerName www.yourhost.com DocumentRoot /somewhere/public # <-- be sure to point to 'public'! AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off And that's it! You may also want to check the Users Guide for security and optimization tips, troubleshooting and other useful information: /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7/doc/Users guide Apache.html Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-) http://www.modrails.com/ Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.


おぉ今度はちゃんとうまくいったぞ。

途中にあった
Please edit your Apache configuration file, and add these lines:
以下の内容や最後に出来た
VirtualHostの設定部分をhttpd.confに設定するんだな。


という訳でApachehttpd.confに設定してみましょうか。
各環境にあるhttpd.confに最後に教えてくれた内容を記述していきましょう。


その前に、
URLはhttp://www.hogehoge.com/redmine/
というようにしたかったので、
標準のドキュメントルートにシンボリックリンクを貼って対応します。
例えばドキュメントルートが
/var/www/html/
だった場合

# ln -s /usr/local/redmine/public /var/www/html/redmine

とします。


Apacheyumでインストールしたので、
/etc/httpd/conf
直下に
httpd.conf
がありますが、
直接記述せずconf.dにredmineファイルを用意しそこに記述するようにしています。

# cd /etc/httpd/conf.d
# vi redmine.conf

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.7
PassengerRuby /usr/local/bin/ruby

RailsBaseURI /redmine

VirtualHostで動かしたい場合、
VirtualHostで設定してください。
今回は設定する必要がなかったので書いてません。

後、RailsBaseの設定を追加しました。


その後、Apacheを再起動して接続してみましょう。

# service httpd restart

http://www.hogehoge.com/redmine

あれ、エラー500だ・・・

Apacheのエラーログを見るとこんな記述が

# view /var/log/httpd/error_log

Apache/2.2.3 (CentOS) configured -- resuming normal operationsRails Error: Unable to access log file. Please ensure that /usr/local/redmine/log/production.log exists a
nd is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

なるほど、パーミッションの設定ね。
という訳で
/usr/local/redmine/log/production.log
パーミッションを変更

# chmod 666 /usr/local/redmine/log/production.log

あれ、それでもエラー500だ。
今度はエラーログに何の記述もない・・・
恐らく所有者の問題だろう(/usr/local/redmine以下はオーナーが1000:1000になってました)の問題だろうということで
/usr/local/redmine/public
ディレクトリ以下のオーナーをnobodyとして一気に変えてみる。

# chown -fR nobody:nobody /usr/local/redmine/public

まだエラー500が出るorz

今度は
/usr/local/redmine/log/production.log
を見ると、そこに

Status: 500 Internal Server Error
Permission denied - /usr/local/redmine/tmp/sessions//ruby_sess.b07770ed6a354169

とあった。
これもオーナーだろうかという事で、
/usr/local/redmine/tmp
のオーナーを変更する。

# chown -fR nobody:nobody /usr/local/redmine/tmp

これで再度接続。。。


やった。表示された。うれしい♪

ここまで長い道のりだった。

次にやるのはredmineの設定ですね。


今日はここまで。設定はまた翌日へ続くのである。

という訳で、みんなも作ってアラモード