#はじめに
プリザンターのGitHubで、Windowsで.NET Core版のプリザンターを動かしてみたという書き込みを見つけたので試してみました。
.NET Framework版はSQLServer Expressを使うため格納できるデータ量が10GBに制限されてしまいますが、.NET Core版はPostgreSQLを使うのでこの制限を回避できます。
.NET Core版はLinux系OS向けとなっていますが、Windowsで動くか試してみます。
###環境
Windows 10 64bit バージョン1809
###手順
1. プリザンター(.NET Core版)のダウンロード
2. IISのセットアップ
3. PostgreSQLのインストール
4. PostgreSQLのDB作成
5. .NET Coreのインストール
6. プリザンターのセットアップ
7. プリザンターをIISに配置
#1. プリザンター(.NET Core版)のダウンロード
https://pleasanter.org/dlcenter からダウンロードして解凍します。
- pleasanterフォルダ:プログラムです。適当な場所(
C:\inetpub\wwwroot\
やD:\
)に置きます。 - PDFファイル:CentOS向けのセットアップ手順です。これを参考にWindowsでセットアップします。
#2. IISのセットアップ
プリザンターユーザーマニュアルの「機能の有効化」に従いIISをセットアップします。
#3. PostgreSQLのインストール
https://www.postgresql.org/download/windows/ からインストーラをダウンロードします。
インストーラを実行します。
(以下、変更を加えた箇所のみ記載します)
PostgreSQL管理アカウントのパスワードをセットします。
インストールできました。
#4. PostgreSQLのDB作成
プリザンター用DBを作成します。
まず、コマンドプロンプトでPostgreSQLにログインします。
> "C:\Program Files\PostgreSQL\13\bin\psql.exe" -U postgres
ユーザ postgres のパスワード: [PostgreSQL管理アカウントのパスワードを入力]
psql (13.1)
"help"でヘルプを表示します。
postgres=# _
続いて、DBを作成します。
postgres=# create database "Implem.Pleasanter";
#5. .NET Coreのインストール
.NET Coreをインストールします。
- プリザンターのセットアップ手順書に合わせて、バージョン3.1をインストールしました。
- 「うまく動かない場合は32bitに固定する」という記述があったので32bit版にしました。
https://dotnet.microsoft.com/download/dotnet-core/3.1 から、SDKの32bit版とHosting Bundleをダウンロード、インストールしました。
#6. プリザンターのセットアップ
セットアップ手順書「3.2 DBの構成」を実施します。
C:\inetpub\wwwroot\pleasanter\Implem.Pleasanter/App_Data/Parameters/Rds.json
を以下の様に設定します。(設定したパスワードに書き換えます)
{
"Dbms": "PostgreSQL",
"Provider": "Local",
"TimeZoneInfo": "Asia/Tokyo",
"SaConnectionString":"Server=localhost;Port=5432;Database=postgres;UID=postgres;PWD=<設定したパスワード>",
"OwnerConnectionString":"Server=localhost;Port=5432;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD","UserConnectionString":"Server=localhost;Port=5432;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD",
"SqlCommandTimeOut": 600,
"MinimumTime": 3,
"DeadlockRetryCount": 4,
"DeadlockRetryInterval": 1000
}
コマンドプロンプトでImplem.CodeDefinerフォルダーに移動し、CodeDefinerを実⾏します。
cd C:\inetpub\wwwroot\pleasanter\Implem.CodeDefiner
dotnet Implem.CodeDefiner.NetCore.dll _rds
以下のコマンドでPleasnterを実⾏し、起動確認を⾏います。
cd ..\Implem.Pleasanter
dotnet Implem.Pleasanter.NetCore.dll
Webブラウザで http://localhost:5000 を開いて確認します。
動きました!!!
確認できたらCtrl+cで終了します。
#7. プリザンターをIISに配置
IISでプリザンターを動かすようにします。
IISマネージャを起動し、アプリケーションプールを追加します。
.Net CLR バージョンは「マネージドコードなし」を選択します。
Default Web Siteにアプリケーションを追加します。
- エイリアス:pleasanter-netcore ※物理パスのフォルダ名と重複しないよう-netcoreを付けた
- アプリケーションプール:NetCoreAppPool
- 物理パス:C:\inetpub\wwwroot\pleasanter\Implem.Pleasanter
イベントビューアの「Windows ログ > Application」を確認すると、以下のようなメッセージがありました。
Exception Info: System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\pleasanter\Implem.Pleasanter\App_Data\Temp\E37A3745F4014141B6A960A24E200A4E.xlsm' is denied.
アクセス権限が原因みたいですね。
C:\inetpub\wwwroot\pleasanter\Implem.Pleasanterに適当な共有設定を追加します。
#まとめ
Windowsにプリザンター.NET Core(PostgreSQL対応)版をインストールして、ログインできることを確認しました。
.NET Framework版のデータを移行して、動作確認していきたいと思います。
(PostgreSQLの全文検索モジュールpg_trgmのインストール方法がわからず、飛ばしてしまいました。インストール方法をご存知の方は教えてもらえると嬉しいです)
#追記(2021/08/01)
プリザンター1.2.0.0(.NET Core統合版)を試してみました。
IISやPostgreSQLはセットアップ済みだったので、手順1, 5, 6, 7でいけました。
- プリザンター(.NET Core版)のダウンロード ・・・ ver. 1.2をダウンロード
- (実施済み)IISのセットアップ
- (実施済み)PostgreSQLのインストール
- (実施済み)PostgreSQLのDB作成
- .NET Coreのインストール ・・・ .NET Core 5.0 Hosting Bundleをインストール
- プリザンターのセットアップ ・・・ 同じ手順を実施
- プリザンターをIISに配置 ・・・ 同じ手順を実施