0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

プリザンターをUbuntu22.04に入れてみた

Last updated at Posted at 2023-04-06

はじめに

今回はプリザンターのユーザーマニュアルをもとにさらに詳しく個人的に起きたエラーへの対処も記載しようと思います。

プリザンター導入マニュアル

プリザンター導入前に

環境構築

今回はVMWare環境でUbuntu22.04のイメージファイルを使ってOSを構築します。まずは設定後OSを起動します。

インストール

キャプチャのようにインストール画面が表示されたので、Ubuntuをインストールを選択します。
image.png
私の場合、そのあとは特に設定を変えることなく次へなどをクリックしていきます。最後にユーザーとパスワードを入力することでインストールが開始されます。インストールされるまで待機です。

画面起動

インストールがされたら再起動が促されたため、再起動を実施します。起動中にエンターキーを押せと指示されるため、エンターを押します。
image.png

設定

設定から有線の歯車マークをクリックします。
image.png
アドレス・ネットマスク・ゲートウェイ・DNSを設定して右上の適用をクリックします。
image.png

SSHを使えるように

TeraTermから操作しようと思います。TeraTermではSSHを使って通信を行うのですが、UbuntuにはデフォルトでSSHはインストールされていません。そのため、下記コマンドでSSHをインストールしていきます。

sudo apt update
sudo apt install openssh-server

vimコマンドを使えるように

vimコマンドもインストールされていないようですね・・・。下記コマンドでインストールしましょう。

sudo apt install vim

curlコマンドを使えるように

curlコマンドもインストールが必要です。下記コマンドでインストールしましょう。

sudo apt install curl

環境

対象 内容
OS Ubuntu 22.04 LTS
DB PostgreSQL 14.7
Webサーバ Nginx 1.18.0
Platform .NET 6.0.407
Pleasanter プリザンター 1.3.35.1

.NET6.0 のセットアップ

.NETパッケージの削除

sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'

preferencesファイルの作成

sudo touch /etc/apt/preferences

下記コマンドでpreferencesを開いてください。

sudo vim /etc/apt/preferences

作成したファイルに下記内容を設定してください。
vimで開いたファイルを編集する場合は「i」コマンドを押下し、挿入モードにしてください。
「i」コマンドで挿入モードにした後、コマンドモードに戻す場合は「esc」キーを押下します。

Package: dotnet* aspnet* netstandard*
Pin: origin "packages.microsoft.com"
Pin-Priority: -10

vimで開いたファイルを保存して閉じる場合は「:wq」コマンドを押下します。

.NET のインストール

スクリプトでのインストール

sudo wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
sudo chmod +x ./dotnet-install.sh
sudo ./dotnet-install.sh -i /usr/local/bin

詳細につきましては下記公式ページの スクリプトでのインストール をご参照ください。
https://learn.microsoft.com/ja-jp/dotnet/core/install/linux-scripted-manual#scripted-install

GDI+のインストール

sudo apt install -y libgdiplus

PostgreSQLのセットアップ

リポジトリのインストール

sudo apt update
sudo apt -y install vim bash-completion
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

PostgreSQLのインストール

sudo apt update
sudo apt install -y postgresql-14 postgresql-client-14

PostgreSQLの認証方式の設定

/etc/postgresql/14/main/pg_hba.confを開ます。

sudo vim /etc/postgresql/14/main/pg_hba.conf

METHODの設定を以下のように変更します。「shift + G」でファイルの最終行に飛びます。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

PostgreSQLのログ出力設定

/etc/postgresql/14/main/postgresql.confを開きます。

sudo vim /etc/postgresql/14/main/postgresql.conf

以下の設定を編集します。「/ + 検索文字列」でファイル内を検索できます。ヒットした箇所で作業したい場合、エンターキーを押下します。

log_destination = 'stderr'
logging_collector = on
log_line_prefix = '[%t]%u %d %p[%l]'

PostgreSQLのサービス再起動、サービス化

sudo systemctl restart postgresql
sudo systemctl enable postgresql

PostgreSQLユーザの設定

PostgreSQL管理用のユーザー"postgres"(OSのユーザー)にパスワードを設定します。

sudo passwd postgres

上記コマンド入力後パスワードの入力を促されます。

新しい パスワード:<新しいパスワード>
新しい パスワードを再入力してください:<新しいパスワード>
passwd: パスワードは正しく更新されました

ユーザー"postgres"にユーザーを切り替えます。

sudo su - postgres
psql -U postgres

PostgreSQLの管理ユーザー "postgres" のパスワードを設定します。「new password」に任意のパスワードを入力してください。コマンドを入力するときは「''」も含めてください。また、「;」も含めてください。

postgres=# alter role postgres with password 'new password';

下記のように表示されます。

ALTER ROLE

プリザンター用のデータベース作成

データベース "Implem.Pleasanter" を作成します。

postgres=# create database "Implem.Pleasanter";

以下のコマンドで作成したDBの確認を行います。

postgres=# \l

全文検索用モジュール(pg_trgm)のインストール

テキストの全⽂検索に必要なモジュール(pg_trgm)をインストールします。
下記コマンドでImplem.Pleasanterにスイッチします。

postgres=# \c "Implem.Pleasanter"

下記のように表示されます。

データベース"Implem.Pleasanter"にユーザー"postgres"として接続しました。

下記コマンドでインストールします。

Implem.Pleasanter=# create extension pg_trgm;

ログアウト

下記コマンドでログアウトしてください。

Implem.Pleasanter=# exit
$ exit

下記のように表示されます。

ログアウト

外部からDBへのアクセスを許可する場合の設定

/etc/postgresql/14/main/postgresql.conf の以下の2行のコメントを解除して下記のように設定します。

sudo vim /etc/postgresql/14/main/postgresql.conf
listen_addresses = '*'
port = 5432

/etc/postgresql/14/main/pg_hba.conf を開きます。

sudo vim /etc/postgresql/14/main/pg_hba.conf

下記内容を追加します。Address欄にはアクセスを許可するIPアドレスの範囲を指定します。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.1.0/24          md5

設定後、PostgreSQLのサービスを再起動します。

systemctl restart postgresql

コマンド入力後、パスワードの入力を促されますので、入力してください。

プリザンターのセットアップ

アプリケーションの準備

下記コマンドでzipファイルをダウンロードします。プリザンター 1.3をダウンロードします。ダウンロードボタンをクリックし、「Latest」の「Pleasanter~.zip」ファイルにマウスを当て、右クリックでリンクをコピーします。下記コマンドのリンクURLにコピーしたリンクを貼り付けます。ダウンロードしたファイルは「/home/implem」というフォルダに格納されました。

wget リンクURL

ダウンロードしたzipファイルを下記コマンドで解凍します。

unzip ダウンロードしたファイル名

ルートディレクトリ("/")に"/web"フォルダーを作成します。

sudo mkdir /web

/WEBに先ほど解凍した際にできたpleasanterフォルダを移動します。

sudo mv /home/implem/pleasanter /web/pleasanter

データベースの構成

/web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json を開来ます。

sudo vim /web/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
}

CodeDefinerの実行

cd /web/pleasanter/Implem.CodeDefiner
dotnet Implem.CodeDefiner.dll _rds

Pleasnterの起動確認

cd /web/pleasanter/Implem.Pleasanter
dotnet Implem.Pleasanter.dll

別のターミナルで以下のコマンドを実行し、プリザンターが起動していることを確認します。「Ctrl+C」で終了します。

$ curl -v http://localhost:5000/
*   Trying 127.0.0.1:5000...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Date: Tue, 23 Feb 2021 09:04:33 GMT
< Server: Kestrel
< Content-Length: 0
< Location: http://localhost:5000/users/login?ReturnUrl=%2F
< X-Frame-Options: SAMEORIGIN
< X-Xss-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< 
* Connection #0 to host localhost left intact

Pleasanterサービス用スクリプトの作成

/etc/systemd/system/pleasanter.service を開きます。

sudo vim /etc/systemd/system/pleasanter.service

下記内容を転記し、「loginUser」はログインユーザーを指定してください。

[Unit]
Description = Pleasanter
Documentation =
Wants=network.target
After=network.target

[Service]
ExecStart = /usr/local/bin/dotnet Implem.Pleasanter.dll
WorkingDirectory = /web/pleasanter/Implem.Pleasanter
Restart = always
RestartSec = 10
KillSignal=SIGINT
SyslogIdentifier=dotnet-pleasanter
User = loginUser
Group = root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy = multi-user.target

サービスとして登録・サービスの起動

sudo systemctl daemon-reload
sudo systemctl enable pleasanter
sudo systemctl start pleasanter

リバースプロキシ(NginX)のセットアップ

通常のwebサーバと同じ Port80 でアクセスできるようにリバースプロキシの設定を行います。

NginXのインストール

sudo apt install -y nginx
sudo systemctl enable nginx

リバースプロキシの設定

/etc/nginx/conf.d/pleasanter.conf を開きます。

sudo vim /etc/nginx/conf.d/pleasanter.conf

server_name 行には実際アクセスする際のホスト名を指定して作成します。

server {
    listen  80;
    server_name   192.168.1.100;
    client_max_body_size 100M;
    location / {
       proxy_pass         http://localhost:5000;
       proxy_http_version 1.1;
       proxy_set_header   Upgrade $http_upgrade;
       proxy_set_header   Connection keep-alive;
       proxy_set_header   Host $host;
       proxy_cache_bypass $http_upgrade;
       proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

サービスを再起動します。

sudo systemctl restart nginx

Http(80) へのアクセス許可

クライアントからWebサービスへアクセスさせるため、 Http(port:80)へのアクセス許可設定を行います。

sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status numbered

接続を試みる

VM環境・自端末からプリザンターのログイン画面にアクセスすることができました。「localhost」では接続できませんでしたので、IPアドレスを指定したらアクセスできました。「localhost」でアクセスできない原因は教えていただいたのですが、忘れてしまいました・・・うっすらと残っている記憶ですが、「再帰的に読み込まれるスクリプトに80番ポートでアクセスしたものはnginxに遷移するというような処理があるから」というような内容だったかと・・・わかる方はコメントください!

さいごに

上記の手順で接続を確認できました。OSの立ち上げからやったので上記以外の設定などは一切していません。そのため、上記でアクセスできないなどエラーが起きた場合はお手持ちの環境の設定を確かめてください。今後の環境構築に役立てていこうと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?