Skip to content

Install Pleasanter on Red Hat Enterprise Linux 8 using the installer

Overview

This procedure is for building a Pleasanter operating environment using the "Installer". You can still install it using the previous procedure of manually placing modules and setting parameters. Please refer to the following for manual installation procedures.
Install Pleasanter on Red Hat Enterprise Linux 8

Target Body
OS Red Hat Enterprise Linux 8
DB PostgreSQL 17
Web Server nginx 1.24
Platform .NET 8.0
Pleasanter Pleasanter 1.4

Cautions

  1. MySQL can be used with ver1.4.9.0 and later. Pleasanter earlier than ver1.4.9.0 does not support MySQL.
  2. To use MySQL in a configuration where the web server and the DB server are separated, refer to "Configure MySQL to be used in a configuration where the web server and DB server are separated (Ver.1.4.18.0 and later)" or "Configure the Web Server and DB Server to Use MySQL Separately (Ver.1.4.17.1 and earlier)".

Limitations

Installation using the "Installer" is for versions 1.4.0.0 onward. Please refer to the manual installation procedures when installing versions 1.3.50.2 and earlier.
Install Pleasanter on Red Hat Enterprise Linux 8

Prerequisites

  1. We will not cover how to set up the OS. We assume that the OS has already been set up.
  2. Please check here for details on the operating environment and specifications.
    FAQ: I want to know the operating environment and recommended specifications
  3. Decide in advance which user will launch Pleasanter. The <User who will launch Pleasanter> mentioned in the procedure refers to this user.

Procedure

The construction procedure is as follows.
1. .NET setup
1. Set up the database:
Set up either PostgreSQL or MySQL as follows.
* The following may not match the order in which the settings are made.
1. Install the database
1. Set up the database administrator user
1. Set up the database log output
1. Register the database as a service and enable automatic startup
1. Setup for allowing external access to the database
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 starting the service
1. Set up Reverse proxy (nginx)
1. Change SELinux settings
1. Install nginx
1. Set reverse proxy
1. Allow access to Http(80)
1. Check that Pleasanter is running

1. Set up .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, Scripted Install.
https://learn.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#scripted-install

Also, there are cases where an error occurs regarding a specific file when executing the dotnet command. In that case, please refer to the following page.
https://learn.microsoft.com/en-us/dotnet/core/install/linux-package-mixup?pivots=os-linux-redhat

2. Set up the Database

Refer to either "Setting Up PostgreSQL" or "Setting Up MySQL" below and set up the database.

1. Setting Up PostgreSQL

The setup procedure for PostgreSQL is as follows.

1. Install PostgreSQL

Execute the following command to install PostgreSQL.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install -y postgresql17-server postgresql17-contrib

2. Initialize the PostgreSQL database

Execute the following command to initialize the database. * -A: Specify authentication method, -W: Option to display password input prompt

After execution, a password input prompt will be displayed, so enter your password. The password set here will be used in step 3.2, so please make a note of it so you do not forget it.

sudo su - postgres -c '/usr/pgsql-17/bin/initdb -E UTF8 -A scram-sha-256 -W'

3. Set PostgreSQL log output

Open /var/lib/pgsql/17/data/postgresql.conf and edit the following settings.

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

4. Restart the PostgreSQL service and enable it as a service

Execute the following commands to restart the PostgreSQL service and enable automatic service startup.

sudo systemctl restart postgresql-17.service
sudo systemctl enable postgresql-17.service

5. Setup for allowing external access to the database

  1. Uncomment the following two lines in /var/lib/pgsql/17/data/postgresql.conf and set them as follows:

    # - Connection Settings -
    listen_addresses = '*'  # what IP address(es) to listen on;
    port = 5432             # (change requires restart)
    
  2. Add the following line to /var/lib/pgsql/17/data/pg_hba.conf. In the Address field, specify the range of IP addresses that are allowed access.

    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    host    all             all             192.168.1.0/24          scram-sha-256
    
  3. After the settings are complete, run the following command to restart the PostgreSQL service.

    sudo systemctl restart postgresql-17
    
2. Setting Up MySQL

The setup procedure for MySQL is as follows.

1. Install MySQL

  1. Execute the following commands to install the MySQL package and the MySQL server.

    sudo dnf install -y https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm
    sudo dnf install mysql-server
    

    The URL specified in the command is the same as the one specified in the official repository below.
    https://dev.mysql.com/downloads/repo/yum/

  2. Execute the command to display the status of the service.

    systemctl status mysqld.service
    
  3. Check that "Active: inactive (dead)" is displayed as follows and that the service is stopped.

    ● mysqld.service - MySQL 8.0 database server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    

2. Enable automatic startup of the MySQL service

  1. Execute the following command to start the MySQL service.

    sudo systemctl start mysqld
    
  2. Execute the following command to enable automatic startup of the MySQL service.

    sudo systemctl enable mysqld
    

3. Set up the MySQL user

  1. Add the following setting under [mysqld] in /etc/my.cnf.

    [mysqld]
    skip-grant-tables
    

    The path of the configuration file may differ depending on the OS or the MySQL version.

  2. Execute the following command to restart the MySQL service.

    sudo systemctl restart mysqld
    
  3. Execute the following command to log in to MySQL with the root account (without specifying a password).

    mysql -u root
    
  4. Execute the following SQL to set the password of the MySQL root account.

    flush privileges;
    alter user 'root'@'localhost' identified by '<new password for the MySQL root account*>';
    
  5. Execute the following command to log out of the root account from MySQL.

    quit;
    
  6. Delete the description added under [mysqld] in /etc/my.cnf. Do not delete [mysqld] itself.

    skip-grant-tables
    
  7. Execute the following command to restart the MySQL service.

    sudo systemctl restart mysqld
    
  8. Execute the following command and check that you can log in to MySQL with the root account.

    mysql -u root -p
    
  9. Execute the following command to log out of the root account from MySQL.

    quit;
    

4. Set MySQL log output

  1. Check the path of the log file described in log-error under [mysqld] in /etc/my.cnf.
    The path of the configuration file may differ depending on the OS or the MySQL version.

    [mysqld]
    log-error=/var/log/mysqld.log
    
  2. To change the output destination of the error log, edit the my.cnf file and then execute the following command to restart the MySQL service.

    sudo systemctl restart mysqld
    

5. Setup for allowing external access to the database

Follow the steps in the manuals below to add a MySQL user.

This is not necessary if you do not separate the web server and the DB server.

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, please install using the following procedure.

(Click here to open/close details)
  1. Open the Nuget Gallery for Implem.PleasanterSetup from here and download the .nupkg file from "Download package".
    The NuGet Gallery page for Implem.PleasanterSetup, with "Download package"

  2. 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
    

  3. Place the .nupkg file downloaded in 3.1 in /dotnet-tools.

  4. Run the following command to install the installer.

    dotnet tool install -g --add-source /dotnet-tools 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
    

4. Set up Pleasanter

1. Run the installer

Using the installer will automatically download the latest version resources and automatically set the values ​​in Service.json and Rds.json based on the values ​​you enter.

  1. Run the installer by executing the following command.

    pleasanter-setup
    

    If you are not connected to a network environment, please follow the steps below

(Click here to open/close details)
  1. Download the latest version of Pleasanter from the Download Center and place it in "/web/".

  2. Run the following command.
    /web/ Please confirm that the directory structure is as follows:
    /web/Pleasanter_1.4.x.x.zip
    pleasanter-setup -r /web/Pleasanter_1.4.x.x.zip

  1. Enter the directory where you want to install Pleasanter.
    If you want to install it in "/web/pleasanter", leave it blank and press the Enter key.
    The installer prompt for the directory where Pleasanter is installed

  2. Enter <User who will launch Pleasanter>.
    The installer prompt for the user account that will run Pleasanter

  3. Enter the service name.
    If you want to install it in "Implem.Pleasanter", leave it blank and press the Enter key.
    The installer prompt for the service name

  4. Enter the number corresponding to the DBMS you want to use.
    Here, enter "2" and press the Enter key.
    The installer prompt for the DBMS, with "2" entered for PostgreSQL

  5. 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.
    The installer prompt for the port number of the database

  6. Enter the value to be set in Server in the connection string.
    If it is "localhost", leave it blank and press the Enter key.
    The installer prompt for the Server value of the connection string

  7. Enter the value to be set in UID of SaConnectionString.
    If it is "postgres", leave it blank and press the Enter key.
    The installer prompt for the UID of SaConnectionString, defaulting to "postgres"

  8. Enter the value to be set in PWD of SaConnectionString.
    *The password will be displayed in a masked state.
    The installer prompt for the PWD of SaConnectionString, shown masked

  9. Enter the value to be set in PWD of OwnerConnectionString.
    *The password will be displayed in a masked state.
    The installer prompt for the PWD of OwnerConnectionString, shown masked

  10. Enter the value to be set in PWD of UserConnectionString.
    *The password will be displayed in a masked state.
    The installer prompt for the PWD of UserConnectionString, shown masked

  11. Enter the "Default language".
    Enter the number of the corresponding language.
    The installer prompt for the number of the default language

  12. Enter the time zone for "Default time zone".
    Enter the number of the corresponding time zone.
    *If you entered "3", enter the time zone available on the OS you are using.
    The installer prompt for the number of the default time zone

  13. The summary screen will be displayed.
    If the entered values ​​are correct, enter y after "Shall I install Pleasanter with this content? Please enter ‘y(yes)' or 'n(no)'. :" and press Enter to execute.
    *The password is masked.
    The installer summary of the entered values, asking whether to install

  14. When "Type "y" (yes) if the license is correct, otherwise type "n" (no)" is displayed, enter y and execute.
    When the following log is displayed, 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.
    

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

    The Enterprise Edition trial information page opened in the browser after setup

2. Check that Pleasanter is running

  1. Run the following command to start Pleasanter with a predefined user.

    cd /web/pleasanter/Implem.Pleasanter
    sudo -u <User who will launch Pleasanter> /usr/local/bin/dotnet Implem.Pleasanter.dll
    
  2. While Pleasanter is running, run the following command in another terminal to check that Pleasanter is running. Exit with "Ctrl+C".

* Execution command

curl -v http://localhost:5000/

* Execution result

*   Trying ::1:5000...
* Connected to localhost (::1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.76.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Content-Length: 0
< Date: Tue, 25 Jul 2023 02:42:19 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. For User below, specify the user who will launch Pleasanter.

[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 = <User who launches Pleasanter>
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 "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

*By changing the above Boolean values ​​of SELinux, all network connections via scripts and modules will be allowed on the corresponding server.

2. Install nginx

Run the following command to install nginx.

sudo dnf install -y nginx
sudo systemctl enable nginx

3. Set reverse proxy

  1. Create /etc/nginx/conf.d/pleasanter.conf with the following contents. In the server_name line, specify the host name or IP address of the server you want to access.

    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
    

4. Permission To Access Http(80)

Execute the following command to set permission to access Http (port:80) to allow clients to access the web service.

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

6. Check the Operation of Pleasanter

  1. 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

  2. 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

Please check that the nginx settings are correct. Operation 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 have been completed without any errors, but a page such as "Welcome to nginx!" (not an error message) appears when you access it in a browser, the security settings of the browser may be preventing you from transitioning to the Pleasanter login screen.
Please check the security settings of your browser.

Supported Versions

Supported versions Body
1.4.9.0 and later Supports MySQL
1.4.10.0 and later Fixed an issue where Owner and User connections could be rejected by MySQL's access control function
*Also added a link to "Configure the Web Server and DB Server to Use MySQL Separately (Ver.1.4.17.1 and earlier)" in the notes
1.4.18.0 and later Added the ability to specify a host other than localhost (the same server as the DB) as the source host for connecting to the MySQL DB

FAQ: I want to install Pleasanter 1.3.43.0 or earlier in a Linux environment