Skip to content

Install Pleasanter on Amazon EC2's Red Hat Enterprise Linux 10 Using the Installer

Overview

This procedure is for building a Pleasanter operating environment using the "Installer". You can also install it using the previous procedure of manually placing modules and setting parameters. Please refer to the following for manual installation procedures.
Installing Pleasanter on Amazon EC2's Red Hat Enterprise Linux 10

Target Body
Service Amazon EC2 and Amazon RDS
OS Red Hat Enterprise Linux 10 (HVM), SSD Volume Type
DB MySQL 8.4.5
Web Server nginx 1.26.3
Platform .NET 8.0.410
Pleasanter Pleasanter 1.4.18.0 or later

Prerequisites

  1. The EC2 instance is set up under the following conditions.
    1. The security group rules must allow SSH traffic, HTTP traffic, and HTTPS traffic.
    2. The private key of the key pair for the EC2 instance has been downloaded.
    3. The default user for the EC2 instance, ec2-user, exists.
  2. The RDS instance is assumed to be set up under the following conditions.
    1. The connection to the EC2 instance has been configured.
    2. The master user name and master password have been set, and password authentication can be performed.
  3. This procedure explains the case where .NET is installed in /usr/local/bin. If you install .NET in a different directory because multiple versions of .NET are required in the same environment, change the directory specified in ExecStart when running CodeDefiner or creating a script for the Pleasanter service to match the installation destination.

Procedure

The construction procedure is as follows.
1. SSH connection to EC2 instance
1. Set up .NET
1. Install the installer
1. Set up Pleasanter
1. Run the installer
1. Check that Pleasanter is running
1. Create a script for the Pleasanter service
1. Register as a service and start the service
1. Set up a reverse proxy (nginx)
1. Change SELinux settings
1. Install nginx
1. Set up the reverse proxy
1. Check the operation of Pleasanter

1. SSH Connection to EC2 Instance

In this procedure, use a client such as TeraTerm and a file transfer tool such as WinSCP to connect to the EC2 instance from the client's PC via SSH.

  1. Open the management screen of the EC2 instance and check the public IP address.

  2. Start a client such as TeraTerm and a file transfer tool such as WinSCP, and connect to the EC2 instance with the following connection settings.

    1. Destination: Public IP address of EC2 instance
    2. User name: ec2-user
    3. Password: Leave blank
    4. Other: Use private key

2. Setup .NET

Run the following command to install .NET.

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

For details, please refer to the official page below, Installation by script.
https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#scripted-install

Tip

When you run the dotnet --version command, you may see an error message requesting the installation of ICU (an open source library that provides various functions related to handling Unicode).

Example error message
Process terminated. Couldn't find a valid ICU package installed on the system.
Please install libicu (or icu-libs) using your package manager and try again.
Alternatively you can set the configuration flag
System.Globalization.Invariant to true if you want to run with no
globalization support.
Please see https://aka.ms/dotnet-missing-libicu for more information.

In that case, run the following command to install ICU.

Command to execute
sudo yum install libicu-devel wget -y

3. Install the installer

Execute the following command to install the installer.

dotnet tool install -g Implem.PleasanterSetup
echo 'export PATH="$PATH:~/.dotnet/tools"' >> ~/.bashrc
echo 'export DOTNET_ROOT=/usr/local/bin' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT' >> ~/.bashrc
source ~/.bashrc

If you are not connected to a network environment, install it using the following procedure.

(Click here to open/close details)
  1. Execute the following command to create a folder of your choice to place the .nupkg file.

    ※This procedure explains how to create /dotnet-tools.
    sudo mkdir /dotnet-tools
    
  2. Open the Nuget Gallery for Implem.PleasanterSetup from here and download the .nupkg file from "Download package" in the image ①.
    The NuGet Gallery page for Implem.PleasanterSetup, with "Download package"
  3. Place the .nupkg file downloaded in step 2.2 in /dotnet-tools.
  4. Copy the command in ② in the image.
  5. Execute the following command.
<Command copied in step 2.4> --add-source /dotnet-tools
echo 'export PATH="$PATH:~/.dotnet/tools"' >> ~/.bashrc
echo 'export DOTNET_ROOT=/usr/local/bin' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT' >> ~/.bashrc
source ~/.bashrc

Example: If the Implem.PleasanterSetup version is 1.0.1

 dotnet tool install --global Implem.PleasanterSetup --version 1.0.1 --add-source /dotnet-tools
 echo 'export PATH="$PATH:~/.dotnet/tools"' >> ~/.bashrc
 echo 'export DOTNET_ROOT=/usr/local/bin' >> ~/.bashrc
 echo 'export PATH=$PATH:$DOTNET_ROOT' >> ~/.bashrc
 source ~/.bashrc
 ```

</details>

## 4. Set up Pleasanter

### 1. Run the installer
By using the installer, the latest version resources are automatically downloaded and the values ​​in Service.json and Rds.json are automatically set based on the values ​​you enter.

#### The procedure when using MySQL is as follows.

1. Execute the following command to run the installer.

```text
 pleasanter-setup
 ```
**If you are not connected to a network environment, please follow the steps below**

<details markdown="1">
<summary>(Click here to open/close details) </summary>

1. Download the latest version of Pleasanter from the [Download Center](https://pleasanter.org/dlcenter) and place it in "/web/".

1. Run the following command.
**/web/** Make sure the configuration under the directory is as follows:
/web/Pleasanter_1.4.x.x.zip
  ```text
 pleasanter-setup -r /web/Pleasanter_1.4.x.x.zip
 ```
 </details>

2. Enter the directory where you want to install Pleasanter.
If you want to install it to "/web/pleasanter", leave it blank and press Enter.
```text
Install Directory [Default: /web/pleasanter] :
  1. Enter the user who will start Pleasanter. Enter ec2-user and press Enter.

    Please enter the user who will execute Pleasanter.
    

  2. Enter the service name.
    If you are using "Implem.Pleasanter", leave it blank and press Enter.

    ServiceName [Default: Implem.Pleasanter] :
    

  3. Enter the number that corresponds to the DBMS you are using.
    Here, enter "3" (MySQL) and press Enter.

    DBMS [1: SQL Server, 2: PostgreSQL, 3: MySQL] :
    

  4. Enter the port number to be used.
    If it is the default port number for the DBMS, leave it blank and press the Enter key.

    Please enter port number[Default: 3306]
    

  5. Enter the value to be set in Server in the connection string.
    Enter the endpoint of the RDS instance and press the Enter key.
    E.g.: {DB identifier string, etc.}.rds.amazonaws.com

    ConnectionString Server [Default: localhost] :
    

  6. Enter the value to be set for UID in SaConnectionString.
    Enter the master user name set for the RDS instance and press the Enter key.

    SaConnectionString UID [Default: root] :
    

  7. Enter the value to be set for PWD in SaConnectionString.
    Enter the master password set for the RDS instance and press the Enter key.
    ※The password will be displayed in a masked state.

    SaConnectionString PWD :
    Enter your password:
    

  8. Enter the value to be set for PWD in OwnerConnectionString.
    ※The password will be displayed in a masked state.

    OwnerConnectionString PWD :
    Enter your password:
    

  9. Enter the value to be set for PWD in UserConnectionString.
    ※The password will be displayed in a masked state.

    UserConnectionString PWD :
    Enter your password:
    

  10. Enter the value to be set for MySqlConnectingHost.
    If it is "%", leave it blank and press the Enter key.

    MySQL Connecting Host [Default: %] :
    

About "MySqlConnectingHost"

For details about "MySqlConnectingHost" in "Rds.json" added in Ver.1.4.18.0 and later, please see below.

(Click here to open/close details)
  • If the following requirements are not met (default value): "%"
  • If you want to prohibit access to MySQL from hosts other than the specified external hosts: "Host name/IP address that allows connection (in the case of AWS, set the private IP address)". Multiple names can be specified by separating them with a comma (e.g. "hostname01,hostname02").
  1. Enter the "Default language".
    Enter the number of the corresponding language.

    DefaultLanguage [1: English(Default), 2: Chinese, 3: Japanese, 4: German, 5: Korean, 6: Spanish, 7: Vietnamese] :
    

  2. Enter the "Default time zone".
    Please enter the number of the corresponding time zone.
    ※3 If you enter "3", please enter a time zone that can be used by the OS you are using.

    Set the default time zone.
    TimeZoneDefault [1: UTC(Default), 2: Asia/Tokyo, 3: Other] :
    

  3. A summary screen will be displayed.
    If the values ​​entered are correct, enter y after "Shall I install Pleasanter with this content? Please enter 'y(yes)' or 'n(no)'. : " and press Enter.
    ※The password is masked.

    ――― Summary ―――
    Install Directory         : /web/pleasanter
    DBMS                      : MySQL
    SaConnectionString PWD    : ***
    OwnerConnectionString PWD : ***
    UserConnectionString PWD  : ***
    Port                      : 3306
    Server                    : {String such as DB identifier}.rds.amazonaws.com
    Service Name              : Implem.Pleasanter
    MySqlConnectingHost       : %
    DefaultLanguage           : en
    DefaultTimeZone           : UTC
    [Issues]
        Class       :
        Num         :
        Date        :
        Description :
        Check       :
        Attachments :
    [Results]
        Class       :
        Num         :
        Date        :
        Description :
        Check       :
        Attachments :
    ―――――――――
    Shall I install Pleasanter with this content? Please enter ‘y(yes)' or 'n(no)’.:
    

  4. When the message “Type "y" (yes) if the license is correct, otherwise type "n" (no)” appears, enter y and execute.
    When the following log appears, the setup is complete.

    <SUCCESS> Starter.ConfigureDatabase: Database configuration has been completed.
    <SUCCESS> Starter.Main: All of the processes have been completed.
    Setup is complete.
    

  5. When setup is complete, a web browser will launch and display the Enterprise Edition trial information page.

    ★Add a screenshot

2. Check that Pleasanter is running

  1. Run the following command to start Pleasanter with ec2-user.
cd /web/pleasanter/Implem.Pleasanter
sudo -u ec2-user /usr/local/bin/dotnet Implem.Pleasanter.dll
  1. While it is running, run the following command in another terminal to check that Pleasanter is running. Exit with "Ctrl+C".

  2. Execute command

curl -v http://localhost:5000/
````

* Execution result

* Host localhost:5000 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
* Trying [::1]:5000...
* Connected to localhost (::1) port 5000

GET / HTTP/1.1
Host: localhost:5000
User-Agent: curl/8.9.1
Accept: /

  • Request completely sent off
    < HTTP/1.1 302 Found
    < Content-Length: 0
    < Date: Tue, 24 Jun 2025 02:59:24 GMT
    < Server: Kestrel
    < 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
    ### 3. Create a script for the Pleasanter service
    
    Create /etc/systemd/system/pleasanter.service with the following content.
    

    [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 = ec2-user
Group = root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy = multi-user.target

### 4. Register as a Service and Start the Service

Execute the following command to start the Pleasanter service and enable automatic service startup.

sudo systemctl daemon-reload
sudo systemctl enable pleasanter
sudo systemctl start pleasanter
## 5. Set Up Reverse Proxy (nginx)

Configure the reverse proxy so that it can be accessed via Port 80, the same as a normal web server.

### 1. Change SELinux settings

Execute the following command.

getenforce
#### a. If the message "Command 'getenforce' not found," "Permissive," or "Disabled" is displayed

Proceed to "2. Install nginx."

#### b. If "Enforcing" is displayed

Execute the following command.

sudo setsebool -P httpd_can_network_connect on
*Changing the above SELinux Boolean value will allow all network connections by scripts and modules on the server.

### 2. Install nginx

Run the following command to install nginx.

sudo dnf install -y nginx
sudo systemctl enable nginx
### 3. Configure reverse proxy

1. Create /etc/nginx/conf.d/pleasanter.conf with the following contents. Specify the public IP address of the EC instance on the server_name line.

**Note**
The public IP address will change when the EC2 instance is restarted. Please consider using an Elastic IP address to obtain a fixed IP address.

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;
}
}
2. After creating the file, run the following command to restart the service.

sudo systemctl restart nginx
```

6. Check the operation of Pleasanter

  1. There are two addresses that can be used to check whether Pleasanter is running.
    You can check the public IP address and public DNS from the EC2 instance management screen.

    1. http://{EC2 public IP address}
    2. http://{EC2 public DNS}
      E.g.: http://{character string}.compute.amazonaws.com
  2. After starting Pleasanter, enter "Login ID: Administrator" and "Initial password: pleasanter" on the Pleasanter login screen and click the "Login" button.
    The Pleasanter login screen, where the login ID and initial password are entered

  3. After logging in, you will be asked to change the password for the "Administrator" user, so enter a password of your choice and click the "Change" button.
    The password change screen for the Administrator user, shown after the first login

If redirection is not correct

Check that the nginx settings are correct. The behavior may change depending on small differences such as the presence or absence of/in the description.

If the Pleasanter screen does not open

If the above steps were completed without any errors, but a page such as "Welcome to nginx!" (not an error message) is displayed when accessed through a browser, the security settings of the browser may be preventing you from transitioning to the Pleasanter login screen.

Upgrade Pleasanter

Please refer to the manual below for the procedure for upgrading Pleasanter installed in this procedure.
Upgrade Procedure Using the Installer (Linux)

Supported Versions

Supported versions Body
1.4.18.0 and later New manual created with the addition of a function to specify a host other than localhost (same server as the DB) as the source host for connecting to the MySQL DB

Upgrade Procedure Using the Installer (Linux)