2021/07/21

MANUAL

プリザンターをUbuntuにインストールする

## 概要 本説明は、以下に示す環境にプリザンターの動作環境を構築するための手順を示したものです。 |対象|内容| |---|---| |OS|Ubuntu| |DB|PostgreSQL| |Webサーバ|Nginx| |Framework|.NET 5.0| |Pleasanter|プリザンター 1.2(1.2.〇.〇)| ## 前提条件 1. OSのセットアップ方法については記載しません。予めOSはセットアップされていることとします。 1. 動作環境やスペックについての詳細はこちらをご確認ください。 [FAQ:プリザンターの動作環境や推奨スペックが知りたい](/manual/faq-recommended-specifications) ## .NET5.0 のセットアップ #### Gitのインストール ``` $ sudo apt install -y git $ sudo apt update ``` #### Microsoftパッケージリポジトリを有効にする ``` $ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb $ sudo dpkg -i packages-microsoft-prod.deb ``` #### .NET SDKのインストール ``` $ sudo apt install -y apt-transport-https $ sudo apt update $ sudo apt install -y dotnet-sdk-5.0 ``` #### 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-13 postgresql-client-13 ``` #### PostgreSQLの認証方式の設定 /etc/postgresql/13/main/pg_hba.confを開き、METHODの設定を以下のように変更します。 ``` # 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/13/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 ``` ``` $ sudo su - postgres $ psql -U postgres ``` PostgreSQLの管理ユーザー "postgres" のパスワードを設定 ``` postgres=# alter role postgres with password 'SetSaPWD'; ``` #### プリザンター用のデータベース作成 データベース "Implem.Pleasanter" を作成します。 ``` postgres=# create database "Implem.Pleasanter"; ``` 以下のコマンドで作成したDBの確認を行います。 ``` postgres=# \l ``` #### 全文検索用モジュール(pg_trgm)のインストール テキストの全⽂検索に必要なモジュール(pg_trgm)をインストールします。 ``` postgres=# \c "Implem.Pleasanter" Implem.Pleasanter=# create extension pg_trgm; ``` #### 外部からDBへのアクセスを許可する場合の設定 /etc/postgresql/13/main/postgresql.conf の以下の2行のコメントを解除して下記のように設定します。 ``` # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on; port = 5432 # (change requires restart) ``` /etc/postgresql/13/main/pg_hba.conf に以下の行を追加します。Address欄にはアクセスを許可するIPアドレスの範囲を指定します。 ``` # TYPE DATABASE USER ADDRESS METHOD host all all 192.168.1.0/24 md5 ``` 設定後、PostgreSQLのサービスを再起動します。 ``` # systemctl restart postgresql ``` ### プリザンターのセットアップ #### アプリケーションの準備 [プリザンター 1.2](https://pleasanter.org/dlcenter)をダウンロードします。 ルートディレクトリ("/")に"/web"フォルダーを作成し、そこに"pleasanter" フォルダーを配置するものとして記述します。 /web/pleasanter/Implem.Pleasanter /web/pleasanter/Implem.CodeDefiner /web/pleasanter/Tools #### データベースの構成 /web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Rds.json を以下のように設定します。 ``` { "Dbms": "PostgreSQL", "Provider": "Local", "TimeZoneInfo": "Tokyo Standard Time", "SaConnectionString":"Server=localhost;Port=5432;Database=postgres;UID=postgres;PWD=SetSaPWD", "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.NetCore.dll _rds ``` #### Pleasnterの起動確認 ``` $ cd /web/pleasanter/Implem.Pleasanter $ dotnet Implem.Pleasanter.NetCore.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 を以下の内容で作成します。 ``` [Unit] Description = Pleasanter Documentation = Wants=network.target After=network.target [Service] ExecStart = /usr/bin/dotnet Implem.Pleasanter.NetCore.dll WorkingDirectory = /web/pleasanter/Implem.Pleasanter Restart = always RestartSec = 10 KillSignal=SIGINT SyslogIdentifier=dotnet-pleasanter User = root 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 を以下の内容で作成します。 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 ``` #### 正しくリダイレクトされない場合 NginXの設定が正しいか確認してください。記述内容の / の有無など細かな違いで動作が変わる場合があります。 #### プリザンターの画面が開かない場合 上記までの手順において特にエラーも出ずに完了したにも関わらず、ブラウザでアクセスすると「Welcome to nginx!」といったページ(エラー表示ではない)が表示される場合、ブラウザのセキュリティ設定により、プリザンターのログイン画面に遷移できていない可能性があります。 お使いのブラウザのセキュリティ設定を確認してください。 ### その他設定 #### 初期アカウント ログインID "Administrator" が初期ユーザーとして作成されます。 初期ユーザーのパスワードは、既定では"pleasanter"(※)です。初回ログイン時にパスワード変更ダイアログが表示されますので、任意のパスワードを設定してください。このパスワードは、"/web/pleasanter/Implem.Pleasanter/App_Data/Parameters/Service.json" の "DefaultPassword" で指定可能です。 #### リマインダーの設定 /web/pleasanter/Tools/Reminder.py を開き、"localhost/pleasanter" 部分を書き換え、クライアントからアクセス可能なURLに変更します。 ``` urllib.request.Request("http://192.168.1.100/reminderschedules/remind?NoLog=1") ``` リマインダーを動作させるために必要な「Python3.6」をインストールします。 ``` $ sudo apt install -y python3-pip ``` Reminder.py を cron に登録します。 ``` $ sudo crontab -e @reboot python3 /web/pleasanter/Tools/Reminder.py ``` #### データベースの移行 1. SQL ServerからPostgreSQLに移行する場合の手順は以下のマニュアルをご参照ください。 [プリザンターのDBをSQL ServerからPostgreSQLへ移行する手順](/manual/migrate-sql-server-to-postgresql)
このページをシェアする