iPadに手書きした映像をZoomで配信してみる
目次
- 目次
- 概要
- 環境
- iPadの画面をパソコンにミラーリングする
- OBSStudioで画面をカメラ映像にする
- Microsoft Visual C++ Redistributable のインストール
- OBS VirtualCam をインストールする
- iPad の画面を Zoom で配信する
概要
オンラインでミーティングをするときに、図で描いて説明をしたくなることがあります。
例えばZoomには、ホワイトボード機能がありますが、マウスで描いても思うように書けません。
今回は、iPad Pro を使って、ペンで描いた映像を、Zoomで相手に配信してみましたので手順をメモしておきます。
以下のような構成になります。
[iPad Pro] ・・・Apple Pencil で図を描く
↓
[LetsView] ・・・iPadの画面ミラーリングを使い、パソコンで映像を受信する
↓
[OBS Studio] ・・・iPadの画面を受信している LetsViewの画面をキャプチャする
↓
[OBS VirtualCam ] ・・・OBSの映像を仮想的にカメラ映像として出力する
↓
Zoom ・・・カメラ映像としてOBSの仮想カメラ映像を送信する
環境
※iPad と Windows 端末は、同一のネットワーク(同じ無線LANに繋いでいるなど)上で繋がっている必要があります。
iPadの画面をパソコンにミラーリングする
iPadの画面をパソコンにミラーリングするためのツールとして、今回は LetsView というソフトを使用します。
LetsViewをダウンロードする
以下のサイトから、LetsView のインストーラーをダウンロードします。
LetsView 無料無線画面ミラーリング
https://letsview.com/jp/
この記事の時点では、以下のファイルがダウンロードされました。
ファイル名:letsview.exe
サイズ:33,734,152 バイト
バージョン:1.0.3.23
ハッシュ値(SHA1):784abd557c39ad953aea6890233a25cfc69005cbダウンロードしたファイルは、念のためウイルスチェックしておきましょう。
インストールする
インストーラーを実行します。
letsview.exe
インストール先の指定:C:\Program Files (x86)\LetsView\LetsView
初期値のまま[次へ]
[LetsView を実行する]のチェックを外して[完了] をクリック。
LetsView 設定、ミラーリング確認
Windows パソコンで、
[スタートメニュー]→[LetsView]→[LetsView]を実行します。
[更なる世界は更なる視界で見ましょう]の画面が表示したことを確認します。
画面右上の[三]をクリックし、→[設定]を開く。
LetsViewの設定をします。
[ディスプレイ設定]の中
AirPlay解像度:1080P 1920*1080 ・・・を選択
[ミラーリングサービス]の中の
AirPlay:有効 ・・・になっていることを確認
[設定]画面右上の[×]で閉じる([LetsView]画面右上の[×]は押してはダメ)
PC名、およびIPの欄に書かれている値を確認します。
[画面ミラーリング]をタップし上記 PC名の値を選択します。
正常に接続できると、パソコン上で iPadの画面が表示されます。
LetsViewの画面に「接続に成功しました~」のメッセージが表示されます。(裏に隠れている場合があります)
パソコン側に、iPadの画面が表示されます。
表示された画面は、いったん閉じておきます。
※うまく繋がらない場合。
- iPadで Wi-Fi の設定を確認します。
今接続している Wi-Fi の設定画面を開き、IPアドレス と サブネットマスクの値を確認します。
多くの場合、サブネットマスクが 255.255.255.0 になっていると思います。
この場合、パソコンの IPアドレスとiPadのIPアドレスを比較し、第3オクテット(.で区切られた3つ目の数字)までの値が一致していなければ、うまく通信できていない可能性が高いです。
OBSStudioで画面をカメラ映像にする
ダウンロード
以下のサイトから、OBSStudio のインストーラーをダウンロードします。
OBS Studio
https://obsproject.com/ja
→[ダウンロード]を開きます。
[ダウンロード インストーラ]をクリックすると、インストーラがダウンロードされます。
この記事の時点では、以下のファイルがダウンロードされました。
ファイル名:OBS-Studio-25.0.8-Full-Installer-x64.exe
サイズ:73,485,328 バイト
ハッシュ値(SHA1):f0036245bd7fa1c26c1abf4e51eab514806a9a18
ダウンロードしたファイルは、念のためウイルスチェックしておきましょう。
インストール
ダウンロードしたインストーラーを実行します。
OBS-Studio-25.0.8-Full-Installer-x64.exe
【警告メッセージが表示された場合】
前提となる runtime components が不足しています。
https://obsproject.com/visual-studio-2017-runtimes-64-bit先に「Microsoft Visual C++ Redistributable のインストール」の手順を行います。
特に表示されなければ、そのまま次のステップへ。
Destination Folder:C:\Program Files\obs-studio
初期値のまま[次へ]
チェックを外して、[Finish]クリック
実行
OBS Studio を起動します。
[スタートメニュー]→[OBS Studio]→[OBS Studio (64bit)]をクリックします。
[自動構成ウィザード]画面で、[いいえ]をクリック。
[OBS]画面は、いったん終了します。
Microsoft Visual C++ Redistributable のインストール
このインストールは、上記OBSのインストールの際に、前提となる runtime components が不足しています。の警告が表示された場合に行います。
特に表示されなければ、行う必要はありません。
ここでは、Microsoft から最新版をインストールする手順としていますが、OBSのサイトからダウンロードしてインストールしてもかまいません。
Visual C++ 2017 Redistributable [64 bit] - vc_redist.x64.exe
https://cdn-fastly.obsproject.com/downloads/vc_redist.x64.exe
ダウンロード
Microsoft Visual Studio - ダウンロード
https://visualstudio.microsoft.com/ja/downloads/
→[すべてのダウンロード]→[その他のツールとフレームワーク]→[Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージ]
OBSのインストーラーのファイル名に x64 の記載があれば、x64 をダウンロードします。
この記事の時点では、以下のファイルがダウンロードされました。
Microsoft Visual C++ 2015-2019 Redistributable (x64)
ファイル名:VC_redist.x64.exe
サイズ:14,974,616 バイト
バージョン:14.26.28720.3
インストール
インストーラーを実行します。
VC_redist.x64.exe
OBS VirtualCam をインストールする
OBSに映像を仮想的にカメラ映像とするための VirtualCam をインストールします。
ダウンロード
以下のサイトから、OBS-VirtualCam のインストーラーをダウンロードします。
Github - OBS-VirtualCam
https://github.com/CatxFish/obs-virtual-cam/releases
→OBS-VirtualCam2.0.4-Installer.exe
インストール
ダウンロードしたインストーラーを実行します。
OBS-VirtualCam2.0.4-Installer.exe
インストール先:C:\Program Files\obs-studio
OBS のインストール先と一致していることを確認し、[Next]クリック
iPad の画面を Zoom で配信する
Windows パソコンで、
[スタートメニュー]→[LetsView]→[LetsView]を実行します。iPad で、
画面右上を下に向けてスワイプし、コントロールセンターを表示します。
[画面ミラーリング]をタップし、[LetsView]画面に記載のPC名に接続します。
OBS を起動します
[ソース]ウインドウで、[+]を押して、[画面キャプチャ]を選択します。
[ソースを作成/選択]画面で名前をつけ、[OK]クリックします。
[ウインドウ]の項目で、LetsViewのキャプチャしている画面を選択(自動的に選択されている場合もあります)し、[OK]をクリックします。
必要に応じて、キャプチャ画面を最大化しておきます。
(赤枠線のハンドルをドラッグ)
OBSのメニューバー[ツール]→[VirtualCam]を選択する。
[VirtualCam]画面で、
[Keep Aspect Ratio]をON (*1)
Target Camera は、[OBS-Camera] のまま
Buffered Frames は、0
[Start]をクリック
Zoomを起動し、ミーティングを開始する。
Zoom画面下側バーの[ビデオの開始/停止]の右の[△]をクリックし、OBS-Camera (*2)を選択
続けて、[ビデオ設定...]を開き、
16:9(ワイドスクリーン)をON
HDを有効にする をON (*3)
以上で設定は完了です。
*1 縦横比がおかしい場合は、配信開始後に [Keep Aspect Ratio]の ON/OFF を選択しなおすと治ることが多いです。
*2 OBSで選択した Target Camera と合わせます。
*3 ONにしても、ホスト側での設定、パソコンのスペック、回線の品質など、環境により解像度が下がります。
640x360 の解像度で配信されることが多いようです。
配信されている画面の解像度は、設定画面から[統計情報]→[ビデオ]の画面で確認できます。
補足
iPad の画面の表示が大きく遅延する場合、ネットワークの負荷が大きくなっている可能性があります。
以下の設定を変更することで改善することがありますのでお試しください。ただし、画質は低下します。
LetsViewの Airplay解像度の設定値を小さく(720P 1280*720など)してみます。
Zoomのビデオ設定で、HDを有効にする を OFFにしてみます。
スマホをWebカメラとして使ってみた
目次
概要
ビデオ会議がよく行われるようになりましたが、わたしの自作デスクトップパソコンにはWebカメラが付いていません。
購入しようにも、めぼしい機種はすべて売り切れです。
そこで、今回は、AndroidスマホをパソコンのWebカメラとして使えるように構成しましたので、その時の手順をメモにまとめておきます。
とても綺麗に映りますし、ノートパソコン標準のカメラと違い、好きな角度で
自分を映すことができます。
今のパソコンに標準搭載のカメラに満足できない人にもおすすめです。
スマホに、Webカメラアプリをインストールする
AndroidスマホをWebカメラとして使用できるアプリはいくつかありますが、今回は、DroidCam Wireless Webcam というアプリを使用することにします。
Google Playから、[DroidCam Wireless Webcam] をインストールします。
こんな権限が必要です。
インストールが終われば、[DroidCam]を実行します。
初期画面で、画面下部の[Next]をクリック
使い方の画面で、画面下部の[Got It]をクリック
基本的なインストール・設定が終わりました。
パソコンにインストールする
同社サイトから、パソコン用のソフトをダウンロードします。
Dev47Apps
https://www.dev47apps.com/
[Download Windows Client]をクリックし、ダウンロード画面を開きます。
Windows用ダウンロード画面で、
[DroidCam Client v6.0.1 Official Download]をクリックし、DroidCam.Setup.6.0.1.exe をダウンロードします。
参考まで、ハッシュ値を確認しておきます。
dos>certutil -hashfile DroidCam.Setup.6.0.1.exe SHA1 ハッシュ (対象 DroidCam.Setup.6.0.1.exe): 672208e12f61df8e12f382c3db573a8d136dc262 CertUtil: -hashfile コマンドは正常に完了しました。
上記でダウンロードした DroidCam.Setup.6.0.1.exe をインストールします
Destination Folder :C:\Program Files (x86)\DroidCam
USBケーブルで接続し、ビデオカメラとして映す
スマホにUSBで接続する場合には、事前にスマホの設定を行う必要があります。
[設定]→[その他の設定]→[開発者オプション]を開き ONにする。続けて [USBデバッグ]を有効化する。
- 開発者オプションが表示されていない場合は、
[設定]→[端末情報]を開き、[ビルド番号]を連打すると[開発者オプション]が出てきます。
- 開発者オプションが表示されていない場合は、
パソコンと、スマホをUSBケーブルで接続します。
スマホで[DroidCam]を起動する
右上の設定[:]→[Settings]→[Camera]で、フロントカメラかメインカメラのどちらを使うかを設定できます。
[スタート]→[DroidCa]→[DroidCam Client]を起動します。
[USB]ボタンをクリックし、[Start]ボタンをクリックします。
Zoomで表示する
Zoom を起動し、ミーティングを開始する。
Zoomのビデオ会議画面で、
ビデオアイコンの右側の△をクリックすると、[DroidCam Source X]の名称でカメラが選択できますので、選択します。
これで、スマホのカメラの画像でZoomすることができます。
wipe-out を使用してHDDを消去してみた
目次
概要
別で使用していた3.5インチの SATA HDD を消去する必要があったので、「ハードディスク消去ツール「wipe-out」」を使用させていただきました。
その時の作業手順をメモにまとめておきます。
wipe-out 起動用のUSBメモリを作成する
wipe-out は、CD-ROM版、USBメモリ版、フロッピーディスク版が選べるようですが、使用するパソコンには CD-ROMドライブもフロッピーディスクドライブも無いので、 USBメモリ版で作業を進めます。
サイトから、wipe-out バージョン 1.8の「USBイメージ版」をダウンロードします。
http://www.wheel.gr.jp/~dai/software/wipe-out/history.html#download
ファイル名:wpout18t-2018-08-08.usb
サイズ:49,283,072 バイト
ハッシュ SHA1:9e8ab817f7902477da7073dc3fda410d6be92dac
USBメモリを1つ用意し、内容をすべて削除します。
USBメモリ内が複数のパーティションで分割されている場合は、「ディスクの管理」でUSBメモリ内のすべてのパーティションを削除し、その1つのパーティションを、FAT32でフォーマット(クイックフォーマットでOK)します。
誤って書き込むこむことを防ぐために、使用するUSB以外はすべて外しておくことをお勧めします。
イメージをUSBメモリに書き込むツールを用意します。
wipe-outのマニュアルには、[DD for Windows]が記載されていましたので、サイトのダウンロードページからダウンロードしました。
DD for Windows
https://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows
バージョン:Ver.0.9.9.8
ファイル名:DDWin_Ver0998.zip
ハッシュ SHA1:52f3439257a07722ae83da9be04afc80410a23aa
ダウンロードしたファイルを解凍し、中の [DDWin.exe] を [管理者として実行] します。
普通に実行すると、[対象ディスク]にドライブが表示されませんでした。ご注意ください。
対象ディスクに表示されているドライブが、書き込みたいUSBメモリであることを確認します。
[ファイルの選択]をクリックし、ダウンロードした USBファイルを選択します。
[<<書込<<]ボタンをクリックします。
書き込みが終了するまでしばらく待ちます。
USBメモリを取り外します。
参考
- USBメモリ書き込みツールとしては、他にも以下のものが使えそうです。
- Download USB Image Tool
https://www.alexpage.de/usb-image-tool/
- Download USB Image Tool
wipe-outの起動
- 作成したUSBメモリを接続し、パソコンの電源をONすることで、wipe-outが起動します。
削除したいHDDが外付けのUSB-HDDの場合は、起動時に接続しておきます。
が、私が使用しているパソコン(Fujitsu LIFEBOOK)では、背景が黒い画面で「選択したデバイスから起動できませんでした」と表示され起動できませんでした。
先に、次項の BIOSの設定を行う必要がある様です。
BIOSの設定
BIOS設定画面を開きます。
(私の使用している FMV LIFEBOOK では、電源投入直後に [F12]キーを連打することで、BIOS設定画面が開きます)
管理者パスワードを設定します。
BIOS設定画面で、[セキュリティ]→[管理者パスワード] で、パスワードを設定します。
これ以降、BIOS設定画面を開くときにパスワードが要求されるようになります。
セキュアブートを無効にします。
[セキュリティ]→[セキュアブート設定]→[セキュアブート機能] を [使用する]→[使用しない] に変更します。
※Windowsのパーティションを BitLockerで暗号化している場合、
セキュアブートを無効にすると Windows起動時に BitLocker回復モードに入るなど
Windowsの起動がややこしくなるのでご注意ください。
※上記の設定変更ができない場合は、いったん [F10] 保存して終了 を行い、
再度BIOS設定画面を開きます。
互換性サポートモジュールを有効にします
[詳細]→[起動設定]→[互換性サポートモジュール]を、[使用しない]→[使用する] に設定する。
起動メニューを有効にする
[セキュリティ]→[起動メニュー]で、[使用する]になっていることを確認。
[F10] 保存して終了
wipe-outで消去する
正常に起動できると、wipe-outのメニュー画面が表示されます。
メニューから [別のディスクを選択する] を選ぶと、接続されているディスクの一覧が表示されるので、消去したいディスクを選択します。
メニュー画面上部で、[現在選択中のディスク]が消去したいディスクになっていることを確認し、消去を実行します。
消去については、家庭やオフィスの一般的な利用であれば、
[0を上書きして、このディスクのデータを消す]
を実行すれば十分ですが、より高度なセキュリティ対策を要求される場合は、複数回上書き等の消去方法も選べるようです。
「~消去します。よろしいですか?」のメッセージが表示されるので、間違いないことを確認し [<Yes>] を選択します。
再度、確認のメッセージが表示されるので、再度確認し [<Yes>] を選択します。
消去が始まります。
動き出してしばらく待つと、残り時間が表示されるので、終わるまで待ちます。
終了したことを確認し、[<OK>] を選択します。
確認
消去されたことを確認してみます。
メニューから、[ディスクのデータを表示する] を選択すると、ディスクのデータを見ることができます。
しかし実際に見ていくのは大変なので、メニューから [データが消去されたか確認する] を実行します。
ここでは [高速] を選びましたが、重要なデータが入っていたHDDの場合は [通常] で確認した方がいいかもしれません。
チェックが始まるので、終わるまでしばらく待ちます。
チェックが終了したら、すべて消去されていることを確認します。
消去が終われば、メニューから[シャットダウンする] を選択します。
所要時間など
- 2TB の 3.5インチ SATA-HDD を、USB 2.0 変換アダプターを経由し接続した場合、消去に約1230分かかりました。
- 4TB の 3.5インチ SATA-HDD を、USB 3.0 変換アダプターを経由し接続した場合、消去に約900分かかりました。
- 4TB の 3.5インチ SATA-HDD を、USB 3.0 変換アダプターを経由し接続した場合、消去確認(高速)に約65分かかりました。
記事内の環境について
アプリケーションが使用するリソースをキャプチャして調査してみた
目次
概要
アプリケーションがどんなファイルを使用して、どのレジストリをアクセスして、どんな挙動しているのかを調べたくなる時があります。
今回は、Sysinternals の Process Monitor を便利に使用できたので、その時の手順をメモしておきます。
準備
Sysinternals のページから Process Monitor をダウンロードします。
- Process Monitor v3.53
https://docs.microsoft.com/ja-jp/sysinternals/downloads/procmon- ProcessMonitor.zip
- ProcessMonitor.zip
実行
[Procmon.exe]もしくは[Procmon64.exe]を実行します。
初回起動時は、ライセンス認証の画面が開きます。
キャプチャーが始まっている場合は、いったん停止します。
メニューバー[File]→[Capture Events] のチェックをOFFにします。もしくは [Ctrl]+[E]
キャプチャー中は、虫眼鏡が有効、キャプチャー停止中は 虫眼鏡が × されます。
調査対象のアプリケーションを特定する
すべてのアプリケーションのイベントを表示させてもよいのですが、とてもたくさんのログが出力されます。
ここでは例として Windows標準の [ペイント] の挙動を調査する想定でフィルター設定します。調査するアプリケーションのプロセス名が分かっている場合は、フィルター設定します。
メニューバー[Filter]→[Filter] を選択し、[Process Monitor Filter]画面で、
[Process Name] [contains] [mspaint] then [Include]
もしくは
[Process Name] [is] [mspaint.exe] then [Include]
とし、[Add]を押して追加します。
is を選択する場合は、プロセス名は拡張子まで書きます。 大/小文字の区別はしないようです。
画面が表示されるタイプのアプリケーションを調査する場合は、[Include Process From Window] アイコンで指定します。
ツールバー [Include Process From Window] アイコンを、マウスで対象のアプリケーションのタイトルバーまでもっていき離すと、自動的に[Process Monitor Filter]画面に登録されます。
※ただし、プロセスIDで登録されるため、ペイントを再度実行した場合はフィルターされない場合があるので注意。
それでもまだたくさんのイベントが表示されていると思いますので、ここでは処理に時間(0.00002ms以上)がかかったイベントをハイライトして見つけやすくしてみます。
- メニューバー[Option]→[Select Columns]で、[Duration]を ON にする。
- メニューバー[Filter]→[Highlight...] を選択。
[Process Monitor Highlighting]画面で、
[Duration] [more than] [0.0000200] then [Include]
とし、[Add]を押して追加します。
追加の設定など
Filter設定で対象としたものだけをキャプチャーしたい場合
メニューバー[Filter]→[Drop Filtered Events]を ONにします。いろいろフィルター設定したのをファイルに保存したい場合
メニューバー[File]→[Export Configuration] でファイル(~.pmc)に保存できます。
復元するときは、[Import Configuration]で保存した設定を読み込み、定義を適用します。フィルター設定などを読み込んだ状態で Process Monitor を起動したい場合
コマンドラインから、
Procmon64.exe /LoadConfig "(保存した設定ファイル名).pmc"Windows 起動時の状態をキャプチャーしたい場合
- メニューバー[Enable Boot Logging] をONにする
- [Enable Boot Logging]画面で、
実行中のすべてのアプリケーションの状態を保存する場合はチェックする。 - パソコンを再起動し、再度管理者ユーザでログオンする
- 再度、[Procmon64.exe]を起動する
[はい]クリックし、保存するファイル名(標準では Bootlog.pml)を指定する。
そのほかの画面など
[File]→[Backing Files...]
[Tools]→[Process Tree...]
[Tools]→[Process Activety Summary...]
[Tools]→[File Summary...]
[Tools]→[Registry Summary...]
[Tools]→[Stack Summary...]
[Tools]→[Network Summary...]
[Option]→[Configure Symbols...]
[Option]→[Select Columns...]
[Help]→[Command Line Options...]
記事内の環境について
- Windows 10 Pro バージョン 1909
■
目次
パフォーマンスモニタでリアルタイムに監視
MMC.exeを起動
perfmon.msc を直接起動してもよいけれど、設定したカウンターなどを保存できないので注意。
C:\Windows\System32\perfmon.msc もしくは、perfmon.exe[スナップインの追加と削除]→[パフォーマンス モニター]を[追加]する。
[コンソール1]画面に戻り、[パフォーマンス]→[モニター ツール]→[パフォーマンス モニター]を開く。
中央画面を開き、[+]ボタンを押し、必要なカウンターを追加する。
パフォーマンスモニタでバックグランド監視
ロギングの準備
MMC.exeを起動
[スナップインの追加と削除]→[パフォーマンス モニター]を[追加]する
[コンソール1]画面に戻り、[パフォーマンス]→[データ コレクター セット]→[ユーザー定義]
→[新規作成]→[データ コレクター セット]を開く。- 名前:測定データコレクターセット(任意)
- [手動で作成する]を選択
- [データ ログを作成する]を選択し、[パフォーマンス カウンター]をチェックする
- [データ ログを作成する]を選択し、[パフォーマンス カウンター]をチェックする
- 標準のまま
- 標準のまま
- [保存して閉じる]を選択。
- [完了]をクリックし、終了する。
ロギングの開始
作成したデータコレクターセットを右クリックし、[プロパティ]→[停止条件]タブを開き、終了の条件を指定する。
作成したデータコレクターセットを右クリックし、[開始]すると、[>]アイコンがつく。
ロギングデータの参照
コンソール画面で[パフォーマンス]→[モニター ツール]→[パフォーマンス モニター]
グラフの画面で[プロパティ]→[ソース]画面で、上記で出力したファイル(.blg) を指定する。グラフの画面で、[+]クリックし、参照したいカウンターを選択する。
補足
出力ディレクトリ
ログファイルは、標準では以下のディレクトリに出力されます。
C:\PerfLogs(ユーザ)(データコレクタセット名)(指定したフォーマット)(指定したログファイル名).blg
例)C:\PerfLogs\Admin\測定データコレクターセット\PC102_20200222-000001\DataCollector01.blg
ログファイルのサイズ
出力されるログファイルのサイズについて、上記の手順でProcessのすべてのインスタンスの情報を1秒間隔で1時間取得した場合、約47MBのファイルになりました。
動いているプロセスの状態によっても変わると思いますが、ご参考まで。
Processorのカウンターについて
[Processor]はCPU負荷を測定する際によく使用するカウンターかと思います。
これのインスタンスに[_Total]がありますが、どのように合計されるのか確認してみました。
図の通り Threadを4つ用意して、#1から順番にActiveにした状態をパフォーマンスモニタで測定しました。
[_Total]は4つのCPUの平均になっているようです。そらそうですよね。
記事内の環境について
- Windows Server 2012 R2 Standard 64bit バージョン 6.3 ビルド 9600
Redmine の設定
目次
Redmineのポート番号を変更する
ポート番号の空きを確認する
コマンドプロンプトを開く
以下を実行し、使用されているポート番号を確認する
dos>netstat -a アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:80 ********:0 LISTENING TCP 0.0.0.0:135 ********:0 LISTENING TCP 0.0.0.0:443 ********:0 LISTENING TCP 0.0.0.0:445 ********:0 LISTENING TCP 0.0.0.0:3389 ********:0 LISTENING TCP 0.0.0.0:5985 ********:0 LISTENING TCP 0.0.0.0:47001 ********:0 LISTENING TCP 0.0.0.0:49152 ********:0 LISTENING TCP 0.0.0.0:49153 ********:0 LISTENING :
ここでは、使用されていない「8888」を使うことにします。
Redmineのポート番号を変更する
Redmine 4.1用の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\Bitnami\redmine-4.1.0-0\manager-windows.exe
「Apache Web Server」を選択し、「Configure」クリック。
ポート番号を指定し、「OK」クリック
サービスが再起動されますので、問題なければ「はい」クリック
ポートの変更を確認する
コマンドプロンプトを開く
以下のコマンドを実行し、ポート番号が指定した番号に変わっていることを確認する。
dos>netstat -a -b アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:8888 ********:0 LISTENING [httpd.exe] :
Windowsで、Redmine2.3 を 4.1 にバージョンアップしてみた
目次
- 目次
- 概要
- 旧サーバ:Redmine 2.3 を確認する
- 旧サーバ:Redmine 2.3 のデータをエクスポートする
- Redmine 4.1 ダウンロード
- 新サーバ:Redmine 4.1 をインストール
- 新サーバ:Redmine 2.3 のデータをインポートし、マイグレーションする
- 記事内の環境について
概要
Windows Server 2008 R2 で Redmine 2.3 を使用していましたが、Windows Server 2008 の
サポート終了に伴い、Windows Server 2012 R2 でRedmine 4.1 に移行しましたので、その時の手順をメモしておきます。
作業の概要は以下の通りです。
旧サーバ(Windows Server 2008 R2)での作業
新サーバ(Windows Server 2012 R2)での作業
補足
旧サーバ:Redmine 2.3 を確認する
dos>cd /d C:\BitNami\redmine-2.3.0-0\apps\redmine\htdocs dos>ruby script\about Environment: Redmine version 2.3.0.stable Ruby version 1.9.3 (i386-mingw32) Rails version 3.2.13 Environment production Database adapter Mysql2 Redmine plugins: no plugin installed
旧サーバ:Redmine 2.3 のデータをエクスポートする
データベース設定を確認する
- メモ帳等で以下のファイルを開き、「production:」の値を確認する。
C:\BitNami\redmine-2.3.0-0\apps\redmine\htdocs\config\database.yml
production: ←★ adapter: mysql2 database: bitnami_redmine ←★ host: localhost port: 3306 username: bitnami ←★ password: "8888888888" ←★ encoding: utf8
使用しているポート番号を確認する
- コマンドプロンプトを開き、以下のコマンドを実行する
dos>netstat -a -b アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:80 xxxxxxxx:0 LISTENING [httpd.exe]
サービスを停止する
Redmine 2.3用の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\BitNami\redmine-2.3.0-0\manager-windows.exe「MySQL Database」以外のサービスをすべて止める。
とりあえず、上から順に不要なものを止めれば大丈夫っぽいです。
データベースをバックアップ
Redmineで使用している MySQLのデータベースをバックアップします。
次のバッチを実行し、Redmine用のコマンドプロンプトを開く。
C:\BitNami\redmine-2.3.0-0\use_redmine.batエクスポートするファイル一式を格納するフォルダを作成する。
フォルダ名は例です。
dos>mkdir C:\Backup2008-230\
- 以下のコマンドでエクスポートを実行します。
- 「データベース設定を確認する」の所で確認した値を使用します。
- 出力先のパス・ファイル名は任意です。ここでは例として db.dmp の名前で出力しています。
- passwordの値は、""で括っても、値だけでもどちらでも大丈夫なようです。
- 出力先のディレクトリは、あらかじめ作成しておく必要があります。
- エラーが出なければ、エクスポートできてると思われます。
dos>cd /d C:\BitNami\redmine-2.3.0-0\mysql\bin\ dos>mysqldump.exe --user=bitnami --password=8888888888 bitnami_redmine > C:\Backup2008-230\db.dmp
- エクスポートしたファイルを確認する。
- 最後に、以下が出力されていればエクスポートできていると思われます。
-- Dump completed on 2020-01-02 0:00:46
- 最後に、以下が出力されていればエクスポートできていると思われます。
dos>tail C:\Backup2008-230\db.dmp
ファイルのバックアップ
添付ファイルなどのファイルをバックアップします。
- エクスプローラでコピーしてもよいが、ここではコピー結果をログに残すため次のコマンドでコピーする。
- コピー先、ログの出力先は、上記で作成したフォルダに格納します。
- ログの出力は任意です。
- 実行後、ログファイルを開き、失敗していないことを確認する。
dos>robocopy "C:\BitNami\redmine-2.3.0-0\apps\redmine\htdocs\files" "C:\Backup2008-230\files" /E /R:3 /LOG:C:\Backup2008-230\CopyLog.txt
Redmine 4.1 ダウンロード
ダウンロード
BitNami Redmine のダウンロードサイトを開く
https://bitnami.com/stack/redmine/installer「On my computer」→「Win / Mac / Linux」→「Download for Windows 64-bit」をクリックしてダウンロードする。
ファイルのチェック
- 同「Checksum」をクリックし、ダウンロードしたファイルのハッシュ値が一致することを確認する。
CertUtil -hashfile <ダウンロードしたファイル名>
dos>CertUtil.exe -hashfile bitnami-redmine-4.1.0-0-windows-x64-installer.exe SHA1 ハッシュ (対象 bitnami-redmine-4.1.0-0-windows-x64-installer.exe): 955672d5850fc456519f79ee18a797333b3112a2 CertUtil: -hashfile コマンドは正常に完了しました。
古いバージョンのダウンロード
最新ではなく、特定の古いバージョンのRedmineを使いたい場合、Bitnamiのサイトではダウンロードが見つかりませんでしたが、直リンクならダウンロードできそうです。
いくつかリンクを貼っておきます。- https://downloads.bitnami.com/files/redmine/bitnami-redmine-2.3.0-0-windows-installer.exe
- https://downloads.bitnami.com/files/stacks/redmine/3.0.3-0/bitnami-redmine-3.0.3-0-windows-installer.exe
- https://downloads.bitnami.com/files/stacks/redmine/3.3.3-1/bitnami-redmine-3.3.3-1-windows-installer.exe
- https://downloads.bitnami.com/files/stacks/redmine/3.4.3-0/bitnami-redmine-3.4.3-0-windows-installer.exe
新サーバ:Redmine 4.1 をインストール
インストール
ダウンロードしたインストーラーを実行する
bitnami-redmine-4.1.0-0-windows-x64-installer.exe「Language Select」画面
[日本語]を選択する「コンポーネントを選択」画面
「Installation folder」画面
C:\Bitnami\redmine-4.1.0-0「管理者アカウントの作成」画面
項目 初期値 設定値 備考 表示用氏名 User Name admin 日本語は使用しないほう良さそう。
Internal Error が発生しました。Emailアドレス mail@example.com admin@example.com ログイン名 user admin パスワード <未設定> 任意 8文字以上 「Webサーバのポート番号」画面
標準のポート 80 が使用中の場合この画面が教示される。「データベースに保存する際の既定の言語」画面
“日本語”を選択
インターネットに接続できない環境で使用しているので ON → OFF
「終了」「Awesome! Redmine is now Installed!」画面が表示される
http://127.0.0.1/
確認
- 「Awesome! Redmine is now Installed!」画面で「Access Redmine」クリック、もしくは次のURLを開き、Redmineのトップ画面が開くことを確認する。
http://127.0.0.1/redmine/
新サーバ:Redmine 2.3 のデータをインポートし、マイグレーションする
Redmineの環境を確認する
dos>cd /d C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs dos>ruby bin\about Environment: Redmine version 4.1.0.stable Ruby version 2.5.7-p206 (2019-10-01) [x64-mingw32] Rails version 5.2.4.1 Environment production Database adapter Mysql2 Mailer queue ActiveJob::QueueAdapters::AsyncAdapter Mailer delivery smtp SCM: Git 2.19.1 Filesystem Redmine plugins: no plugin installed
データベース設定を確認する
- メモ帳等で以下のファイルを開き、「production:」の値を確認する。
C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs\config\database.yml
production: ←★ adapter: mysql2 database: bitnami_redmine ←★ host: 127.0.0.1 username: bitnami ←★ password: 9999999999 ←★ encoding: utf8mb4 port: 3306
サービスを停止する
Redmine 4.1用の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\Bitnami\redmine-4.1.0-0\manager-windows.exe「MySQL Database」以外のサービスをすべて止める。
とりあえず、上から順に不要なものを止めれば大丈夫っぽいです。
エクスポートファイルを取得
- 旧サーバで出力したファイル一式を持ってきます。
C:\Backup2008-230\
データベースをリストア
Redmineで使用している MySQLに、旧サーバでエクスポートした Redmine 2.3 のデータベースをリストアします。
dos>cd /d C:\Bitnami\redmine-4.1.0-0\mysql\bin dos>mysql.exe --user=bitnami --password=9999999999 bitnami_redmine < C:\Backup2008-230\db.dmp
- db.dmp は、エクスポートしたときのファイル名です。
- passwordの値は、上記「データベース設定を確認する」で確認した値です。
- 「mysql: [Warning] Using a password on the command line interface can be insecure.」が出力されました。
データベースマイグレーション
- 上記で開いたコマンドプロンプトで続ける
dos>cd /d C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs dos>bundle exec rake db:migrate RAILS_ENV="production"
- 以下の感じでエラーが出なければよしとする。
== 20151025072118 CreateCustomFieldEnumerations: migrating ==================== -- create_table(:custom_field_enumerations, {:options=>"ENGINE=InnoDB", :id=>:integer}) -> 0.0107s == 20151025072118 CreateCustomFieldEnumerations: migrated (0.0124s) =========== : : == 20190620135549 ChangeRolesNameLimit: migrating ============================= -- change_column(:roles, :name, :string, {:limit=>255, :default=>""}) -> 0.0551s == 20190620135549 ChangeRolesNameLimit: migrated (0.0567s) ====================
- 以下の感じのエラーが出たら、対象のテーブルを削除することで解消するようです。
Mysql2::Error: Table 'queries_roles' already exists: CREATE TABLE `queries_roles` (`query_id` int NOT NULL, `role_id` int NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'custom_fields_roles' already exists: CREATE TABLE `custom_fields_roles` (`custom_field_id` int NOT NULL, `role_id` int NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'email_addresses' already exists: CREATE TABLE `email_addresses` (`id` int NOT NULL AUTO_INCREMENTPRIMARY KEY, `user_id` int NOT NULL, `address` varchar(255) NOT NULL, `is_default` tinyint(1) DEFAULT FALSE NOT NULL, `notify` tinyint(1) DEFAULT TRUE NOT NULL, `created_on` datetime NOT NULL, `updated_on` datetime NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'roles_managed_roles' already exists: CREATE TABLE `roles_managed_roles` (`role_id` int NOT NULL, `managed_role_id` int NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'imports' already exists: CREATE TABLE `imports` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `type` varchar(255), `user_id` int NOT NULL, `filename` varchar(255), `settings` text, `total_items` int, `finished` tinyint(1) DEFAULT FALSE NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'import_items' already exists: CREATE TABLE `import_items` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `import_id` int NOT NULL, `position` int NOT NULL, `obj_id` int, `message` text) ENGINE=InnoDB Mysql2::Error: Table 'custom_field_enumerations' already exists: CREATE TABLE `custom_field_enumerations` (`id` int NOTNULL AUTO_INCREMENT PRIMARY KEY, `custom_field_id` int NOT NULL, `name` varchar(255) NOT NULL, `active` tinyint(1) DEFAULT TRUE NOT NULL, `position` int DEFAULT 1 NOT NULL) ENGINE=InnoDB
- テーブルの削除手順
- user、password、DB名は、上記で確認した値。
dos>cd /d C:\Bitnami\redmine-4.1.0-0\mysql\bin dos>mysql --user=bitnami --password=9999999999 bitnami_redmine mysql> drop table queries_roles; ←エラーの出たテーブルを指定する Query OK, 0 rows affected (0.05 sec) mysql> exit Bye
もういちど、「データベースマイグレーション」を実施する。
キャッシュのクリア
- 上記で開いたコマンドプロンプトで続ける
dos>cd /d C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs dos>bundle exec rake tmp:cache:clear ※エラーメッセージが出ずに終われば、正常終了なんだと思います。
dos>bundle exec rake tmp:sessions:clear ←こちらはエラーになった。 rake aborted! Don't know how to build task 'tmp:sessions:clear' (See the list of available tasks with `rake --tasks`) Did you mean? tmp:sockets:clear C:/Bitnami/redmine-4.1.0-0/apps/redmine/htdocs/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>' (See full trace by running task with --trace)
ファイルのリストア
添付ファイルなどのファイルをリストアします。
- エクスプローラでコピーしてもよいが、ここではコピー結果をログに残すため次のコマンドでコピーする。
- コピー元、ログの出力先は、上記で作成したフォルダに格納する。
- ログの出力は任意。
-実行後、 ログファイルを開き、失敗していないことを確認する。
dos>robocopy "C:\Backup2008-230\files" "C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs\files" /E /R:3 /LOG:C:\Backup2008-230\RestoreLog.txt
サービスの開始
Redmine の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\Bitnami\redmine-4.1.0-0\manager-windows.exe「Start All」クリック
すべてが緑色になったことを確認する。
確認
Redmineにログオンし、問題なく使えることを確認する。
旧Redmineのすべてのサービスを停止
旧VerのRedmine と 新VerのRedmineを同一サーバ上でバージョンアップする場合は、旧VerのRedmineをアンインストールもしくは無効化する必要があります(旧Verが自動起動するとまずいので)。無効化するときは以下の手順で。
dos>dir /X C:\BitNami\ 2020/01/03 14:48 <DIR> REDMIN~1.0-0 redmine-2.3.0-0 ←無効化したいのは Redmine 2.3 ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ 長い名前と、それの短い名前を確認
- サービスの一覧を取得し、上記ディレクトリ名のサービスを確認する。
dos>wmic SERVICE GET Caption,PathName | findstr BitNami redmineApache "C:\BitNami\REDMIN~1.0-0\apache2\bin\httpd.exe" -k runservice redmineMySQL C:\BitNami\redmine-2.3.0-0\mysql\bin\mysqld.exe --default・・・ redmineSubversion "C:\BitNami\redmine-2.3.0-0\subversion\scripts\winserv.exe" redmineThin1 (managed by WinServ) "C:\BitNami\redmine-2.3.0-0\apps\redmine\scripts\winserv.exe" redmineThin2 (managed by WinServ) "C:\BitNami\redmine-2.3.0-0\apps\redmine\scripts\winserv.exe"
Windowsの「サービス」を開き、上記の短い名前/長い名前のパスが設定されているサービスについて、「スタートアップの種類」を"自動" → "無効" にする
サーバーを再起動し、旧Verのサービスが自動的に起動してこないことを確認する。
記事内の環境について
- 旧サーバ
- Windows Server 2008 R2 Standard 64bit バージョン 6.1 ビルド 7600
- Bitnami版 Redmine 2.3.0
- 新サーバ
- Windows Server 2012 R2 Standard 64bit バージョン 6.3 ビルド 9600
- Bitnami版 Redmine 4.1.0