2010年9月17日金曜日

HTML5 in IE9 Beta

Platform Previewとして公開されてきたInternet Explorer 9がBeta版として公開されました。

XPは未対応で、日本語版ではWindows Vista(32bit)とWindows 7(32bit/64bit)が提供されている※一部の言語では64bit Vista 版も提供されています

Check!
尚、このBeta版をインストールすると既存のIEがバージョンアップされます。ただしIE9をアンインストールすることで旧バージョンを復元することができます。
 
また、このベータ版に関するインストールの必要条件(更新プログラム等)が自動的にインストールされます(詳しくはこちら)。

ご自分のWindowsが32ビット版、64ビット版なのかわからない方は、こちらでお調べください。
あくまでもBeta版ですのご自分の責任でインストールしてください。

私はWindows 7 Ultimate (64bit)にインストールしてみました。尚、既存のIEは8で更新プログラム等最新状態にしてあります。

では、早速インストールしてみたいと思います。
ダウンロードページへ移動して、指定の言語とWindows バージョンを選択します。私はWindows 7 64bitなので「Windows 7 64ビット」を選択します。これによりIEは32bit版と64bit版の両方がバージョンアップされます。尚、インストール後は再起動が必要です。




初回起動時、IEの設定を行います。「推奨されるセキュリティと互換性の設定を使用する」を選択します。


起動しました。かなりシンプルです。Google Chromeを意識しているのでしょうか。


32ビット版               64ビット版

ツールバーの表示方法 キーボードの「Alt」キーを押すことにより表示させることができます。



IE8より高速で(当たり前か!)体感できるほどである。ただしGoogleの「Chrome」ほどのスピードはない。Beta版としては非常に安定しているように思える。

HTML5にも対応しており様々な公開サイトがある。またIE9のTest Driveサイトでも様々な機能を使ったサイトを公開している。

新JavaScriptエンジンによるものサンプル
※録画ツールを起動しているためやや処理が遅いですが実際はもっと早いです。




2010年9月5日日曜日

VMware vSphere Hypervisor(VMware ESXi)

ESXi 5.0はこちらからどうぞ。


今までサーバ仮想環境を構築する際、主にMicrosoftのHyper-VやVitual Server 2005等を使っていたがちょっと飽きてきたので、VMware vSphere 4.1 シリーズで無償提供されているVMware vSphere Hypervisor 4.1(無償のESXiパッケージ)を利用してみようと思う。
4.1ベースでは64bitハードウェア(CPU)が必要なので注意です。尚、32bitハードウェアの場合は、VMware vSphere Hypervisor ESXi 3.5ベースを使用してください。

また、仮想マシン管理をWindows PCから行うためVMware vSphere ClientをWindows 7 Ultimate(64bit)にインストールしました。

VMware vSphere Hypervisorとは・・・
VMware vSphereシリーズの無償バージョンで、VMware ESXi Single Server (または無償の ESXi) の新しい名称です(vSphere のハイパーバイザー機能のみを利用)。またVMware Serverと違いWindowsやLinuxといったOS上で稼働するアプリケーションではないので物理環境に近いパフォーマンスが期待できます。ただVMware vSphere Hypervisorのインストールできるハードには制限が多くどんなマシンでも・・・という訳にはいきません。VMware vSphere HypervisorにはVMware ESXi4.1, VMware vSphere Clint, VMware Goが含まれている。


VMware ESXiとは・・・
実際の仮想マシンでありその仮想マシンのプロセッサ、メモリ、ストレージ等を提供します。

今回インストールするハード環境
  • 本  体: Dell PowerEdge SC1435
  • BIOS: Version 2.2.3
  • CPU1: Quad Core AMD Opteron 2376(2.3GHz/6MB L3キャッシュ)
  • CPU2: Quad Core AMD Opteron 2376(2.3GHz/6MB L3キャッシュ)
  • メモリ: 4GB(DDR2/667MHz 1GB×4)
  •  HDD: 160GB×2 RAID1構成(3.5インチSATAⅡ 7200RPM)
  •   NIC: Broadcom NetXtreme BCM5721 Gigabit Rthernet × 2
ダウンロード
VMware vSphere Hypervisor(無償 ESXiパッケージ)を以下よりダウンロードします。
https://www.vmware.com/jp/tryvmware/index.php?p=free-esxi&lp=1
ダウンロードにはユーザ名、メールアドレスが必要となり、登録したアドレス宛てに「VMware ESXi 4ダウンロードとアクティベートのご案内」メールが届きます。その本文内にある「VMware vSphere Hypervisor ライセンスのアクティベーションとファイルのダウンロード」からダウンロードページへ移動します。
アクティベートで使用する(無償)ライセンスキーが表示されていますので控えておきます。
今回は新規にインストールするので、ESXi 4.1 (CD ISO)を「ダウンロードマネージャ」または「クリックして手動でダウンロード」でイメージファイルをダウンロードします。
ダウンロードしたISOをイメージをCD等のメディアに焼いて準備完了です。

VMware vSphere Hypervisorのインストール
CDやDVDドライブから起動できるようにBIOSの設定を変更しておき、メディアから起動させます。
●「ESXi Installer」を指定してインストーラーを起動します。
●インストーラーが起動するまでやや時間がかかりますので気長に待ちましょう。
メディア読み込み中
おっ起動してきた!
●ようこそ画面でそのまま「Enter」を押しインストールを開始します。
●使用許諾です。「F11」で承諾して続けます。
●インストール先を選択します。(イエローのところにインストールされる)
●確認メッセージです、そのまま「Enter」を押す。
●インストール確認メッセージ、そのまま「Enter」を押す。
●インストールが完了しますので、インストールディスクを取り出しEnterを押し再起動します。
●起動後、NICが正しく認識されれば管理用IPがDHCPより割り当てされます。インストールが完了します。
初期設定
●このままでも運用ができますが、最低限管理者パスワードの設定および管理IPを固定化します。
F2を押してシステムのカスタマイズ画面へ移行します。初期の管理者はrootでパスワードは未設定なのでそのまま「Enter」を押します。※システムにはLinuxが使われているそうです。
●「Configure Password」でrootのパスワードを設定します。あと「Configure Management Network」でIPアドレスをStatic(固定)で設定します。「Restart Management Network」でネットワークを再起動して変更IPアドレスを有効にします。
●とりあえず簡単な設定変更は終了です。Escキーでログアウトします。
管理ツールVMware vSphere Clientのインストール
VMware vSphere Hypervisorのコンソールでは仮想マシンを管理する機能はないが、リモートで管理できる機能は備わっています。従ってvCenter Serverや仮想マシンを管理するツールをクライアントPCにインストールします。非常に簡単です。
●先ほどインストールしたVMware vSphere Hypervisorへブラウザでアクセスして、左上にある「Download vSphere Client 」からツールをダウンロードします。
●EXEを実行します。
●言語を「日本語(日本)」にします。
●次へを押します。
●次へを押します。
●使用許諾に同意して次へを押します。
●ユーザー名、組織名を適当に入力し次へを押します。※組織名も埋める必要があります。
●インストール先は特に変える必要はありませんのでデフォルトのままでOKです。
●「インストール」を押して開始します。
●完了しました。
●実行してみましょう。
VMware vSphere HypervisorのインストールしたマシンのIPアドレス、ユーザー名にroot、および設定したパスワードを入力し「ログイン」を押します。
セキュリティ警告が出ますが気にせず「無視」を押します。※「この証明書をインストールし、・・・・」にチェックを入れておくと次回から警告は表示されません。
 ログインできました。
●ライセンス登録
VMware vSphere Hypervisorのインストール直後は60日間の使用期限が定められているので、無期限利用できるようライセンスコードを入力します。VMware vSphere Hypervisorをダウンロードした際に控えたライセンスキー*****-*****-*****-*****-*****を登録します。
無償版ESXiでは、仮想マシンを停止せずに仮想ホストを移動する「VMotion」などの機能は利用できないが、1台の仮想ホストで複数の仮想マシンを動かすような小規模な用途では十分に活用できます。
「構成」タブを開き「ソフトウェア」の中にある「ライセンス機能」を選択して右上にある編集を押します。
「このホストに新しいライセンスキーを割り当て」を選択して「キーを入力」を押します。
ライセンスキーを入力します。
●時刻の調整
手動で合わせても良いが仮想マシンにも影響するものなのでNTPサーバから取得するようにします。同じく「構成」タブ内の「ソフトウェア」の中にある「時間の構成」を選択して右上にあるプロパティを押します。
オプションを押します。
「NTP設定」を指定し「追加」を押します。
ntp.nict.jpなどの公開NTPサーバを設定します。
「変更を適用するにはNTPサービスを再開」にチェックを入れて「OK」を押す。
 ●複数の物理NICの有効化
VMware vSphere Hypervisorインストール時は仮想スイッチと物理NICが1つしか設定されませんので、複数の物理NICがある場合はそれぞれに仮想スイッチを割り当てます。
管理用IPは最初の物理NICに割り当てられます。
同じく「構成」タブのネットワークという項目を押すと仮想スイッチの状態が表示されますので、右上の「ネットワークの追加」を押します。
接続タイプに「仮想マシン」を選択します。
追加する物理NICのを選択します。(ここではvmnic1)
必要に応じてネットワークラベル名を変更します。
構成を確認します。
仮想スイッチ2つがそれぞれ別の物理NICへ割り当てられました。
一度、VMware vSphere Hypervisorを再起動します。
本日はここまで・・・次回仮想マシンを作成してゲストOS(CentOS)を入れてみたいと思います。

2010年9月1日水曜日

Redmine1.0.1へアップデート(svn)

日本時間8/23にRedmine 1.0.1が正式リリースされました。
前回1.0.0 RCをインストールしたのでこれをアップデートします。(開発版です)

私がインストールした手順についてはこちらです。(CentOS+PostgreSQL)

データベースのバックアップ
# /usr/local/pgsql/bin/pg_dump -U [db username] -Fc --file=[backup filename] [dbname]

Redmineのインストールディレクトリへ移動
# cd /home/redmine/

SVN レポジトリからチェックアウト
# svn update
U test/unit/issue_status_test.rb

A test/unit/helpers/issue_moves_helper_test.rb
U test/unit/helpers/application_helper_test.rb
U test/unit/lib/redmine/menu_manager_test.rb
U test/unit/lib/redmine/scm/adapters/git_adapter_test.rb
U test/unit/lib/redmine/menu_manager/menu_item_test.rb
U test/unit/lib/redmine_test.rb
U test/unit/user_test.rb
U test/unit/query_test.rb
U test/unit/mailer_test.rb
U test/exemplars/attachment_exemplar.rb
U test/test_helper.rb
U test/functional/issues_controller_test.rb
A test/functional/auto_completes_controller_test.rb
A test/functional/context_menus_controller_test.rb
U test/functional/account_controller_test.rb
U test/functional/calendars_controller_test.rb
U test/functional/journals_controller_test.rb
U test/functional/gantts_controller_test.rb
U test/functional/users_controller_test.rb
A test/functional/issue_moves_controller_test.rb
A test/functional/activities_controller_test.rb
U test/functional/projects_controller_test.rb
A test/functional/files_controller_test.rb
A test/functional/previews_controller_test.rb
U test/functional/auth_sources_controller_test.rb
U test/functional/versions_controller_test.rb
U test/integration/issues_api_test.rb
U test/integration/routing_test.rb
U test/integration/issues_test.rb
A test/integration/layout_test.rb
U test/fixtures/enabled_modules.yml
U app/helpers/projects_helper.rb
A app/helpers/calendars_helper.rb
U app/helpers/issues_helper.rb
U app/helpers/queries_helper.rb
U app/helpers/journals_helper.rb
A app/helpers/issue_moves_helper.rb
U app/helpers/application_helper.rb
U app/models/change.rb
U app/models/query.rb
U app/models/member.rb
U app/models/mailer.rb
U app/models/user.rb
U app/models/issue_status.rb
U app/models/changeset.rb
U app/controllers/issues_controller.rb
A app/controllers/auto_completes_controller.rb
A app/controllers/context_menus_controller.rb
U app/controllers/journals_controller.rb
U app/controllers/timelog_controller.rb
U app/controllers/users_controller.rb
A app/controllers/issue_moves_controller.rb
A app/controllers/files_controller.rb
U app/controllers/application_controller.rb
A app/controllers/previews_controller.rb
U app/controllers/versions_controller.rb
U app/controllers/boards_controller.rb
U app/controllers/groups_controller.rb
U app/controllers/projects_controller.rb
U app/controllers/account_controller.rb
U app/controllers/calendars_controller.rb
U app/controllers/gantts_controller.rb
A app/controllers/activities_controller.rb
A app/views/auto_completes
A app/views/auto_completes/issues.html.erb
A app/views/context_menus
A app/views/context_menus/issues.html.erb
U app/views/welcome/index.rhtml
A app/views/journals/index.rxml
U app/views/layouts/base.rhtml
A app/views/issue_moves
A app/views/issue_moves/new.rhtml
U app/views/users/_memberships.rhtml
U app/views/users/show.rhtml
A app/views/files
A app/views/files/index.html.erb
A app/views/previews
A app/views/previews/issue.html.erb
U app/views/messages/show.rhtml
A app/views/versions/index.html.erb
U app/views/versions/show.rhtml
U app/views/boards/index.rhtml
U app/views/attachments/_form.rhtml
U app/views/news/_news.rhtml
U app/views/news/index.rhtml
U app/views/repositories/diff.rhtml
U app/views/admin/_menu.rhtml
U app/views/admin/projects.rhtml
D app/views/projects/activity.rhtml
D app/views/projects/list_files.rhtml
D app/views/projects/roadmap.rhtml
U app/views/projects/show.rhtml
U app/views/projects/_form.rhtml
A app/views/projects/_members_box.html.erb
U app/views/projects/index.rhtml
U app/views/calendars/show.html.erb
U app/views/gantts/show.html.erb
U app/views/wiki/special_date_index.rhtml
A app/views/activities
A app/views/activities/index.html.erb
D app/views/issues/changes.rxml
D app/views/issues/preview.html.erb
D app/views/issues/move.rhtml
D app/views/issues/context_menu.rhtml
D app/views/issues/auto_complete.html.erb
U app/views/issues/_relations.rhtml
U app/views/issues/_action_menu.rhtml
U app/views/issues/_history.rhtml
U app/views/issues/_form.rhtml
U app/views/issues/bulk_edit.rhtml
U app/views/issues/index.rhtml
U app/views/issues/_sidebar.rhtml
U app/views/issues/show.rhtml
U app/views/issues/_changesets.rhtml
U app/views/issues/_list_simple.rhtml
U app/views/issues/_edit.rhtml
U app/views/issues/new.rhtml
A db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb
U db/migrate/20100705164950_change_changes_path_length_limit.rb
U vendor/plugins/open_id_authentication/lib/open_id_authentication.rb
U config/settings.yml
D config/locales/sr-CY.yml
U config/locales/lt.yml
A config/locales/sr-YU.yml
U config/locales/ro.yml
U config/locales/lv.yml
U config/locales/zh.yml
U config/locales/pt.yml
U config/locales/ca.yml
U config/locales/pt-BR.yml
U config/locales/tr.yml
U config/locales/ru.yml
U config/locales/en-GB.yml
U config/locales/id.yml
U config/locales/el.yml
U config/locales/en.yml
U config/locales/gl.yml
U config/locales/cs.yml
U config/locales/es.yml
A config/locales/mk.yml
U config/locales/zh-TW.yml
U config/locales/eu.yml
U config/locales/ko.yml
U config/locales/mn.yml
U config/locales/it.yml
U config/locales/sk.yml
U config/locales/sl.yml
U config/locales/uk.yml
U config/locales/sr.yml
U config/locales/da.yml
U config/locales/sv.yml
U config/locales/de.yml
U config/locales/bg.yml
U config/locales/ja.yml
U config/locales/he.yml
U config/locales/fi.yml
U config/locales/bs.yml
U config/locales/fr.yml
U config/locales/nl.yml
U config/locales/hr.yml
U config/locales/pl.yml
U config/locales/th.yml
U config/locales/no.yml
U config/locales/hu.yml
U config/locales/vi.yml
U config/routes.rb
U doc/CHANGELOG
U lib/redmine/export/pdf.rb
U lib/redmine/scm/adapters/git_adapter.rb
U lib/redmine/version.rb
U lib/redmine/helpers/gantt.rb
U lib/redmine.rb
A lib/tasks/permissions.rake
U lib/tasks/yardoc.rake
A lib/tasks/ci.rake
U public/javascripts/jstoolbar/lang/jstoolbar-mk.js
A public/javascripts/jstoolbar/lang/jstoolbar-sr-yu.js
U public/javascripts/jstoolbar/lang/jstoolbar-it.js
U public/javascripts/jstoolbar/lang/jstoolbar-sr.js
D public/javascripts/calendar/lang/calendar-sr-CY.js
U public/javascripts/calendar/lang/calendar-mk.js
A public/javascripts/calendar/lang/calendar-sr-yu.js
U public/javascripts/calendar/lang/calendar-it.js
U public/javascripts/calendar/lang/calendar-sr.js
U public/javascripts/application.js
U public/stylesheets/calendar.css
A public/stylesheets/context_menu_rtl.css
A public/stylesheets/rtl.css
G public/stylesheets/application.css
Updated to revision 4051.

db:migrateの実行
# rake db:migrate RAILS_ENV="production"
(in /home/redmine)

== ChangeChangesPathLengthLimit: migrating ===================================
-- change_column(:changes, :path, :text, {:null=>true, :default=>nil})
-> 0.2495s
-- change_column(:changes, :path, :text, {:null=>false})
-> 0.0728s
-- change_column(:changes, :from_path, :text)
-> 0.0443s
== ChangeChangesPathLengthLimit: migrated (0.3670s) ==========================

== EnableCalendarAndGanttModulesWhereAppropriate: migrating ==================
== EnableCalendarAndGanttModulesWhereAppropriate: migrated (0.0298s) =========

プラグイン関連(0.8.xから継続してアップグレードしてきた場合)
# rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production

ちなみに私は1.0.0 からですので実行する必要がないのですが、どうなるか行ってみたところ・・・旧バージョンに関するものがないので実行する必要なしと表示されました。
(in /home/redmine)

Cannot find old migration table - assuming nothing needs to be done

プラグイン関連
# rake db:migrate_plugins RAILS_ENV=production
(in /home/redmine)
Migrating engines...
Migrating acts_as_activity_provider...
Migrating acts_as_attachable...
Migrating acts_as_customizable...
Migrating acts_as_event...
Migrating acts_as_list...
Migrating acts_as_searchable...
Migrating acts_as_tree...
Migrating acts_as_versioned...
Migrating acts_as_watchable...
Migrating awesome_nested_set...
Migrating classic_pagination...
Migrating coderay-0.9.2...
Migrating gravatar...
Migrating open_id_authentication...
Migrating prepend_engine_views...
Migrating rfpdf...
Migrating ruby-net-ldap-0.0.4...
Migrating trunk...
 
Clean upの実行
# rake tmp:cache:clear
# rake tmp:sessions:clear
 
アプリケーションサーバの再起動(Apache)
# /usr/local/apache/bin/apachectl restart
 
 
完了です。
参照した本家のページ http://www.redmine.org/wiki/redmine/RedmineUpgrade

2010年7月21日水曜日

CentOS+Redmine+PostgreSQL

Redmine 1.0.0 release candidateがリリースされたのでインストールしてみました。
また、RORがApache上で稼働できるようPassengerをインストールしています。
※Apacheではバーチャルホストを利用して公開

●構成
CentOS 5.5
Apache 2.2.15 + Passenger(mod_rails)
PostgreSQL 8.4.3
Ruby 1.8.7-p299
RubyGems 1.3.7
Rails 2.3.5
Redmine Checked out revision 3858.

※私は、Apache, PostgreSQLをソースからインストールしていますがRPMでの構成でもいけると思います。(試していないので保障はできません)

●準備
OSのインストールは省略します。

開発ツール群やその他ライブラリが必要
# yum -y groupinstall "Development Tools"
# yum -y install openssl-devel readline-devel zlib-devel

※RPMでhttpd・postgresqlをインストールした方は、以下も必要かと・・・
# yum -y install httpd-devel postgresql-devel

●Rubyのインストール
# cd /usr/local/src/
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p299.tar.gz
# tar xzvf ruby-1.8.7-p299.tar.gz
# cd ruby-1.8.7-p299
# ./configure --prefix=/usr/local
# make
# make install
# ruby -v
1.8.7

●RubyGemsのインストール
# cd ../
# pwd
/usr/local/src
# wget http://rubyforge.org/frs/download.php/55066/rubygems-1.3.1.tgz
# tar xzvf rubygems-1.3.1.tgz
# cd rubygems-1.3.1
# ruby setup.rb
# gem -v
1.3.1

※以下db:migrateの時にわかるのですがRubyGems1.3.2以上が必要です。
私は、gem update --systemで最新版にしてしまいました。
# gem update --system
# gem -v
1.3.7

●Railsのインストール
# gem install rails -v=2.3.5
# gem install rake -v=0.8.3
# export PATH=$PATH:/usr/local/pgsql/bin/ ← PostgreSQL
# gem install postgres-pr
# gem install pg -- --with-pgsql-dir=/usr/local/pgsql

●Redmine
# mkdir /home/redmine
# cd /home/redmine
# svn checkout http://redmine.rubyforge.org/svn/trunk/ ./
# cp ./config/database.yml.example ./config/database.yml
# vi ./config/database.yml
事前に空データベースと運用ユーザを作成しておく(こちらを参照ください)

production:
 adapter: postgresql
 database: redmine
 host: localhost
 username: redmine
 password: "redmine"
 encoding: utf8
 schema_search_path: public

セッションストアの作成
# rake generate_session_store
※/home/redmine/config/initializers/session_store.rbが作成されます

# rake db:migrate RAILS_ENV=production
(in /home/redmine)
** Invoke db:migrate (first_time)

** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== Setup: migrating ==========================================================
-- create_table("attachments", {:force=>true})
-> 0.0519s
-- create_table("auth_sources", {:force=>true})
-> 0.0609s
-- create_table("custom_fields", {:force=>true})
-> 0.0806s
-- create_table("custom_fields_projects", {:force=>true, :id=>false})
-> 0.0020s




デフォルトデータ
# rake redmine:load_default_data RAILS_ENV="production"
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 ← 入力

●Passenger(mod_rails)のインストール
# gem install passenger
# export APXS2=/usr/local/apache/bin/apxs
# export PATH=/usr/local/apache/bin:$PATH
# passenger-install-apache2-module

ビルドに成功すると、Passengerを組み込むためのhttpd.confの設定が表示されるのでコピーしておく。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/local/bin/ruby

次にvirtualhostの設定のサンプルが表示されるのでコピーしておく。

<VirtualHost *:80>
 ServerName www.yourhost.com
 DocumentRoot /somewhere/public
 <Directory "/home/somewhere/pubic">
  AllowOverride all
  Options -MultiViews
 </Directory>


</VirtualHost>


●Apacheの変更
# vi /usr/local/apache/conf/httpd.conf

末尾にでも追記する
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/local/bin/ruby

バーチャルホスト
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf


<VirtualHost *:80>
 ServerName redmine.example.com
 DocumentRoot /home/redmine/public
 <Directory "/home/redmine/public">
  AllowOverride All
  Options -MultiViews
  Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>


Apache運用ユーザがredmineディレクトリの読み書きができるようにパーミッションを設定する。
# cd /home/redmine
# mkdir tmp public/plugin_assets
mkdir: cannot create directory `tmp': File exists ← 既に存在している(無視)
mkdir: cannot create directory `public/plugin_assets': File exists ← 既に存在している(無視)
# chown -R daemon:daemon files log tmp public/plugin_assets config/environment.rb
# chmod -R 755 files log tmp public/plugin_assets
 
Apacheの再起動
# vi /usr/local/apache/bin/apachectl restart
 

http://redmine.example.comにアクセスしてみましょう。
初回はadmin/adminです。
 
参考サイト(本家)
 

2010年7月20日火曜日

PostgreSQL ソースからインストール

●構成
CentOS 5.5
PostgreSQL 8.4.3

●運用ユーザ
今さらですがpostgresqlはrootでは運用できませんので、専用ユーザを作成します。
ここでは専用ユーザをpostgresとします。
# adduser postgres
# passwd postgres ※ログオンしなければパスワードを設定する必要はありません。

●作業ディレクトリ
# mkdir /usr/local/src/postgresql
# chown postgres:postgres /usr/local/src/postgresql

●インストール先ディレクトリ
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql

●インストール
# cd /usr/local/src/postgresql
# wget ftp://ftp2.jp.postgresql.org/pub/postgresql/source/v8.4.3/postgresql-8.4.3.tar.gz
# chown postgres:postgres ./postgresql-8.4.3.tar.gz
# chmod 755 postgresql-8.4.3.tar.gz
# yum -y install readline readline-devel zlib-devel

【readlineについて】
psqlコマンドによるコマンドの記憶やコマンド履歴の参照を使わない場合readlineとreadline-develは不要です。ただしconfigureで--without-readlineオプションを指定します。

【zlibについて】
pg_dumpおよびpg_restore内の圧縮アーカイブサポートを無効化にしたい場合zlib-devel(zlib含む)は不要です。ただしconfigureで--without-zlibオプションを指定します。

(ここからはpostgresユーザで作業します)
# su - postgres
$ cd /usr/local/src/postgresql
$ tar zxvf postgresql-8.4.3.tar.gz
$ cd ./postgresql-8.4.3
$ ./configure
(デフォルトのインストールディレクトリは/usr/local/pgsqlとなります)
$ gmake
 All of PostgreSQL successfully made. Ready to install.
$ gmake check
All 120 tests passed.
$ gmake install
PostgreSQL installation complete.

環境変数の設定
$ cd /home/postgres
$ vi .bashrc

最後に追記
PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PGLIB

再読み込み→pathチェック
$ source .bashrc
$ printenv

●初期化
デフォルト文字コードはEUC_JPですが、DB作成時に指定すればUTF8も大丈夫です。
ロケールは設定しません(日本語ソートがおかしくなるので必須です)。
$ initdb --encoding=EUC_JP --no-locale

●アクセス権限等の設定
$ vi /usr/local/pgsql/data/postgresql.conf
ローカルホスト以外からのアクセスを許可(私は別途WindowsPCからエディタを接続するため)
#listen_addresses = 'localhost' → listen_addresses = '*'
※IPv4のみに強制にしたい場合はlisten_addresses = '0.0.0.0'

ログはsyslog
#log_destination = 'stderr' → log_destination = 'syslog'

$ vi /usr/local/pgsql/data/pg_hba.conf
host all all 192.168.0.0/24 md5の1行を追記(アクセス可能なネットワーク)

●syslog設定
(ここからはrootで作業します)
$ exit
# vi /etc/syslog.conf
※ちなみにCentOS6では、/etc/rsyslog.confです。
以下を最終行に追記する
local0.* /var/log/postgresql.log

#/etc/init.d/xinetd restart
※ちなみにCentOS6では、/etc/init.d/rsyslog restartでよいかも。

ログローテーション設定
# vi /etc/logrotate.d/postgresql
/var/log/postgresql.log {
rotate 12
weekly
missingok
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd (CentOS6ではrsyslogd)
endscript
}

●起動
(ここからはpostgresで作業します)
# su - postgres
$ pg_ctl -w start

●データベースユーザの追加
---------------------------------------------------
因みにPostgreSQL9.2ではロールの割り当て方法が変わった

DB作成許可のユーザを作成
$ createuser username -d -P

-d:DB作成許可
-P:パスワード設定

詳しいオプションは、createuser --help
---------------------------------------------------

$ createuser -P username

Enter password for new role:パスワード入力(username)
Enter it again:確認のためもう一回入力

※スーパーユーザにしますか?
Shall the new role be a superuser? (y/n) n

※データベース作成を許可しますか?
Shall the new role be allowed to create databases? (y/n) y

※新しいユーザを作成できるよう許可しますか?
Shall the new role be allowed to create more new roles? (y/n) n

●データベースの作成
$ createdb DB名 --owner=username --encoding=UNICODE --template=template0
$ psql -l

●停止
$ pg_ctl -w stop

●自動起動
(ここからはrootで作業します)
$ exit
# cd /etc/rc.d/init.d/
# cp -p /usr/local/src/postgresql/postgresql-8.4.3/contrib/start-scripts/linux postgresql
# chown root.root postgresql
# chmod 755 postgresql
# chkconfig --level 2345 postgresql on

これでサーバ起動時PostgreSQLも起動します。

rootによる起動・停止方法
# /etc/init.d/postgresql start
# /etc/init.d/postgresql stop

●PL/pgsqlのインストール(開発言語なので開発をしない方は不要)
 # su - postgres
 $ pg_ctl -w start (/usr/local/pgsql/bin/pg_ctl)
  postmaster started
 $ createlang plpgsql template1

 9.0からPL/pgsqlはデフォルトでインストールされています。
 

2010年7月13日火曜日

デフォルトencodeと違う文字コードでDB作成

CentOS5.4にPostgreSQL8.4を構築する機会があり、initdbでencodingをEUC_JPにして構築していた。Redmineを同データベースで運用するため今まで通りデータベース作成コマンドを実行したらエラーが出た。いつもなら大丈夫なのに・・・8.4から仕様が変わったみたい。

$ createdb redmine --owner redmine --encoding=UNICODE
createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (EUC_JP)
HINT:  Use the same encoding as in the template database, or use template0 as template.

UTF8はテンプレートと互換性がない
ヒント:同じ文字コードにするかテンプレートとしてテンプレート0を使用してください。

と表示された。initdbと異なる値でcreatedbするときは個別にオプション指定しないとダメみたいです。なので以下のようにクリアなテンプレート0データベースを使い解決。
$ createdb redmine --owner redmine --encoding=UNICODE --template=template0

また8.4からデータベースごとにロケールも持てるようになったようです。
こちらに詳しく解説がされています。

※リンク先の「Let's Postgres」ですが非常に優しく書かれていてわかりやすいと思います。今年で開設3年目ということなのでこれから期待できそうですね。

2010年7月9日金曜日

Windows 7 BCDEdit コマンドラインツール

Windows Vista 以降のOSで利用できるBoot環境を操作するコマンド

XPまではboot.iniがありましたがVista以降は存在しません。すべての情報はバイナリデータベースとなり直接操作できなくなりました。それを補うToolがBCDEditです。


----------

BCDEDIT - ブート構成データ ストア エディター

Bcdedit.exe コマンド ライン ツールは、ブート構成データ ストアを修正します。ブート構成データ ストアにはブート構成パラメーターが含まれ、オペレーティングシステムのブート方法を制御します。これらのパラメーターは、以前は Boot.iniファイル (BIOS ベースのオペレーティング システム内) か、不揮発性 RAM エントリ (拡張ファームウェア インターフェイスベースのオペレーティング シスシステム内)にありました。Bcdedit.exe を使用して、ブート構成データ ストアのエントリを追加、削除、編集、および付加することができます。

詳細なコマンドとオプション情報については、「bcdedit.exe /? / <コマンド>を入力してください。たとえば、/createstore コマンドについて詳細情報を表示するには以下のように入力します。
※コマンドプロンプトは管理者権限で実行する必要があります。

     bcdedit.exe /? /createstore

ヘルプ ファイルのトピック順の一覧を参照するには、"bcdedit /? TOPICS" を実行します。

ストアの操作のコマンド
======================
/createstore  新しい空のブート構成データ ストアを作成します。
/export     システム ストアの内容をファイルにエクスポートします。
               このファイルは、システム ストアの状態を復元するために後から使用することができます。
/import         /export コマンドで作成されたバックアップ ファイルを使用して、
                  システム ストアの状態を復元します。
/sysstore       システム ストア デバイスを設定します (EFI システムにのみ有効
                  です。設定内容は再起動後は維持されません。システムストア
                  デバイスが明確に指定されていない場合にのみ使用されます)。

ストア内のエントリの操作のコマンド
==================================
/copy           ストアにエントリのコピーを作成します。
/create         ストアに新しいエントリを作成します。
/delete         ストアからエントリを削除します。
/mirror         ストアにエントリのミラーを作成します。

これらのコマンドで使用する ID の情報については bcdedit /? ID を実行してください。

エントリ オプションの操作のコマンド
===================================
/deletevalue    ストアからエントリ オプションを削除します。
/set            ストアにエントリ オプションの値を設定します。

これらのコマンドで使用するデータの種類の一覧については bcdedit /? TYPES を実行 してください。
有効なデータ形式の一覧については bcdedit /? FORMATS を実行してください。

出力を制御するコマンド
======================
/enum           ストアのエントリを一覧表示します。
/v              既知の識別子名を使用するのではなく、エントリ識別子を完全な
                形式で表示するコマンド ライン オプションです。
                ACTIVE な種類のエントリ識別子の完全な形式を表示するコマンド
                として /v を使用します。

"bcdedit" の実行は "bcdedit /enum ACTIVE" の実行と同じです。

ブート マネージャーを制御するコマンド
===================================
/bootsequence   ブート マネージャーの 1 回限りのブート シーケンスを設定します。
/default          ブート マネージャーが使用する既定のエントリを設定します。
/displayorder    ブート マネージャーがマルチブート メニューを表示する順序を設定します。
/timeout          ブート マネージャーのタイムアウト値を設定します。
/toolsdisplayorder  ブート マネージャーがツール メニューを表示する順序を設定
                   します。

ブート アプリケーションの緊急管理サービスを制御するコマンド
===========================================================
/bootems        ブート アプリケーションの緊急管理サービスを有効または無効にします。
/ems             オペレーティング システム エントリの緊急管理サービスを有効または無効にします。
/emssettings    グローバルな緊急管理サービスのパラメーターを設定します。

デバッグを制御するコマンド
==========================
/bootdebug      ブート アプリケーションのブート デバッグを有効ままたは無効にします。
/dbgsettings    グローバル デバッガー パラメーターを設定します。
/debug          オペレーティング システム エントリのカーネル デバッグを有効または無効にします。
/hypervisorsettings  ハイパーバイザー パラメーターを設定します。

----------

これを使用することにより仮想化されたVHD形式のディスクから起動したりすることもできます。

Google検索