GNU/Linux >> Linux の 問題 >  >> Rocky Linux

RockyLinux8にUVdeskヘルプデスクシステムをインストールする方法

UVdeskは、企業が顧客と対話し、24時間サポートを提供するためのオープンソースのSaasベースのヘルプデスクシステムです。その機能には、チケット管理、ナレッジベースサポート、定型返信、および電子メールに基づく自動チケット生成が含まれます。 Uvdeskの機能は、外部モジュールを使用して拡張できます。特定のトリガーに基づいて特定のアクションを自動化し、ワークフローを改善できます。

このチュートリアルでは、Nginx、MySQL、およびPHPを使用してRockyLinux8ベースのサーバーにUvdeskをインストールする方法を学習します。

前提条件
  • RockyLinux8を実行しているサーバー。

  • サーバーを指すヘルプデスクのドメイン名。チュートリアルでは、uvdesk.example.comを使用します ドメイン。

  • sudo権限を持つ非rootベースのユーザー。

  • すべてが更新されていることを確認してください。

    $ sudo dnf update
    
  • 基本的なユーティリティパッケージをインストールします。それらのいくつかはすでにインストールされている可能性があります。

    $ sudo dnf install wget curl nano unzip yum-utils -y
    
ステップ1-ファイアウォールを構成する

最初のステップは、ファイアウォールを構成することです。 RockyLinuxはFirewalledFirewallを使用しています。ファイアウォールのステータスを確認してください。

$ sudo firewall-cmd --state
running

ファイアウォールはさまざまなゾーンで機能し、パブリックゾーンがデフォルトで使用されます。ファイアウォールでアクティブなすべてのサービスとポートを一覧表示します。

$ sudo firewall-cmd --permanent --list-services

次の出力が表示されます。

cockpit dhcpv6-client ssh

HTTPおよびHTTPSポートを許可します。

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

ファイアウォールのステータスを再確認してください。

$ sudo firewall-cmd --permanent --list-services

同様の出力が表示されるはずです。

cockpit dhcpv6-client http https ssh

ファイアウォールをリロードして変更を有効にします。

$ sudo firewall-cmd --reload
ステップ2-Nginxをインストールする

Rocky Linuxには、古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

/etc/yum.repos.d/nginx.repoを作成して開きます 公式のNginxリポジトリを作成するためのファイル。

$ sudo nano /etc/yum.repos.d/nginx.repo

次のコードを貼り付けます。

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

Nginxをインストールします。

$ sudo dnf install nginx

インストールを確認します。

$ nginx -v
nginx version: nginx/1.20.2

Nginxサービスを有効にします。

$ sudo systemctl enable nginx
ステップ3-PHPと拡張機能をインストールする

このチュートリアルでは、Remiのリポジトリを使用して最新バージョンのPHPをインストールする必要があります。最初のステップは、Epelリポジトリを取得することです。

$ sudo dnf install epel-release

次に、Remiリポジトリをインストールします。

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

利用可能なPHPストリームを確認してください。

$ dnf module list php -y
Last metadata expiration check: 0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.
Rocky Linux 8 - AppStream
Name                Stream                 Profiles                                 Summary
php                 7.2 [d]                common [d], devel, minimal               PHP scripting language
php                 7.3                    common [d], devel, minimal               PHP scripting language
php                 7.4                    common [d], devel, minimal               PHP scripting language

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name                Stream                 Profiles                                 Summary
php                 remi-7.2               common [d], devel, minimal               PHP scripting language
php                 remi-7.3               common [d], devel, minimal               PHP scripting language
php                 remi-7.4               common [d], devel, minimal               PHP scripting language
php                 remi-8.0               common [d], devel, minimal               PHP scripting language
php                 remi-8.1               common [d], devel, minimal               PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

デフォルトのバージョンは7.2です。 RemiのPHP8.0リポジトリを有効にします。

$ sudo dnf module reset php
$ sudo dnf module enable php:remi-8.0

次に、UVDeskに必要なPHPとその拡張機能をインストールします。

$ sudo dnf install php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-cli php-intl php-bcmath php-gd php-tokenizer php-imap php-pear php-mailparse

インストールを確認します。

$ php --version
PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
ステップ4-MySQLサーバーのインストールと構成

MySQLデータベースを使用してデータを保存します。 Rocky LinuxのAppstreamリポジトリには、最新バージョンのMySQLが付属しています。

MySQLをインストールします。

$ sudo dnf install mysql-server

MySQLサービスを有効にして開始します。

$ sudo systemctl enable mysqld --now

安全なMySQLのインストール。

$ sudo mysql_secure_installation

最初のステップとして、MySQLパスワードの強度をテストするために使用できるValidatePasswordPluginをセットアップするかどうかを尋ねられます。 Yを選択します 続行します。次のステップで、パスワード検証レベルを選択するように求められます。 2を選択します これは最強のレベルであり、パスワードは8文字以上で、大文字、小文字、数字、特殊文字が混在している必要があります。

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

次のステップでrootパスワードを選択するように求められます。パスワード検証プラグインの要件を満たす強力なパスワードを選択してください。次のステップでは、選択したパスワードで続行するかどうかを尋ねられます。 yを押します 続行します。

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Yを押します 次にENTER 次のすべてのプロンプトのキーを押して、匿名ユーザーとテストデータベースを削除し、rootログインを無効にして、新しく設定されたルールをロードします。

...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.
 - Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
...
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!

MySQLシェルに入ります。ルートパスワードを入力して続行します。

$ mysql -u root -p

uvdeskを作成します ユーザー。パスワードが前に設定した要件を満たしていることを確認してください。

mysql> CREATE USER 'uvdesk'@'localhost' IDENTIFIED BY 'Your_password2';

uvdeskdbを作成します データベース。

mysql> CREATE DATABASE uvdeskdb;

uvdeskdbに対するユーザー権限を付与します データベース。

mysql> GRANT ALL PRIVILEGES ON uvdeskdb.* TO 'uvdesk'@'localhost';

シェルを終了します。

mysql> exit

ステップ5-UVdeskをダウンロード

UVdeskの最新の安定バージョンをダウンロードします。

$ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip

ダウンロードしたファイルを解凍します。

$ unzip uvdesk-*.zip

抽出したディレクトリを/var/www/uvdeskに移動します 場所。

$ sudo mv uvdesk-community-v1.0.18 /var/www/uvdesk

UVdeskのディレクトリに切り替えます。

$ cd /var/www/uvdesk

環境ファイル(.env)を開きます )編集用。

$ sudo nano .env

APP_ENV=devという行を見つけます 次のように変更します。

APP_ENV=prod

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

ルートディレクトリの所有権をNginxユーザーに変更します。

$ sudo chown -R nginx:nginx /var/www/uvdesk
ステップ6-SELinuxパーミッションを設定する

SELinuxのchconを使用する /var/www/uvdeskから提供されるウェブコンテンツのファイルセキュリティコンテキストを変更するコマンド ディレクトリ。

$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R
$ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -R

UVDeskのネットワーク接続を許可するようにSELinuxを構成します。

$ sudo setsebool -P httpd_can_network_connect on
ステップ7-SSLのインストールと構成

Let's Encryptを使用してSSL証明書をインストールするには、Certbotツールをダウンロードする必要があります。 CertbotをインストールするにはEpelリポジトリが必要ですが、チュートリアルの前半でインストールしたため、この手順をスキップできます。

Certbotをインストールします。

$ sudo dnf install certbot

SSL証明書を生成します。

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d uvdesk.example.com

上記のコマンドは、証明書を/etc/letsencrypt/live/uvdesk.example.comにダウンロードします。 サーバー上のディレクトリ。

Diffie-Hellmanグループを生成します 証明書。

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Let'sEncryptの自動更新用のチャレンジWebルートディレクトリを作成します。

$ sudo mkdir -p /var/lib/letsencrypt

Cronジョブを作成してSSLを更新します。証明書を確認し、必要に応じて更新するために毎日実行されます。そのためには、まず、ファイル/etc/cron.daily/certbot-renewを作成します。 開いて編集します。

$ sudo nano /etc/cron.daily/certbot-renew

次のコードを貼り付けます。

#!/bin/sh
certbot renew --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

タスクファイルの権限を変更して実行可能にします。

$ sudo chmod +x /etc/cron.daily/certbot-renew
ステップ8-NginxとPHPを構成する

PHP-FPMを構成する

ファイル/etc/php-fpm.d/www.confを開きます 。

$ sudo nano /etc/php-fpm.d/www.conf

Unixユーザー/PHPプロセスのグループをnginxに設定する必要があります 。 user=www-dataを見つけます およびgroup=www-data ファイル内の行をnginxに変更します 。

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

PHPサービスを有効にして開始します。

$ sudo systemctl enable php-fpm --now

PHPセッションディレクトリのグループをNginxに変更します。

$ sudo chgrp -R nginx /var/lib/php/session

Nginxを構成する

ファイル/etc/nginx/conf.d/uvdesk.confを作成して開きます 編集用。

$ sudo nano /etc/nginx/conf.d/uvdesk.conf

次のコードを貼り付けます。

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  uvdesk.example.com;

    access_log  /var/log/nginx/uvdesk.access.log;
    error_log   /var/log/nginx/uvdesk.error.log;
    
	# SSL
    ssl_certificate      /etc/letsencrypt/live/uvdesk.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/uvdesk.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/uvdesk.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;

    root /var/www/uvdesk/public;
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # Pass PHP Scripts To FastCGI Server
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass unix:/run/php-fpm/www.sock; # Depends On The PHP Version
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
        try_files $uri =404;
    }    
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  uvdesk.example.com;
    return 301   https://$host$request_uri;
}

Nginx構成で使用されるルートディレクトリが/var/www/uvdesk/public/であることに注意してください。 /var/www/uvdesk/ではありません 。

Ctrl + Xを押してファイルを保存します Yと入力します 終了したらプロンプトが表示されたら。

ファイル/etc/nginx/nginx.confを開きます 編集用。

$ sudo nano /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;の行の前に次の行を追加します 。

server_names_hash_bucket_size  64;

Ctrl + Xを押してファイルを保存します Yと入力します プロンプトが表示されたら。

Nginx構成ファイルの構文を確認します。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginxサービスを開始します。

$ sudo systemctl start nginx

ステップ9-UVdeskをインストールします

URL https://uvdesk.example.comを起動します ブラウザで、次の画面が表示されます。

始めましょうをクリックします ボタンをクリックして、インストールプロセスを開始します。インストーラーは、次のページでPHP設定とファイル権限を確認します。

続行をクリックします 続ける。次のページでデータベースの詳細を入力するように求められます。手順4で構成したデータを入力します。

続行をクリックします 続ける。次に、スーパー管理者アカウントを作成するように求められます。詳細を入力してください。

続行をクリックします 続ける。次に、メンバーとカスタマーパネルのプレフィックスに名前を付けてWebサイトを構成するように求められます。これらのプレフィックスは、WebサイトのURLで使用されます。

続行をクリックします 続ける。最終的なインストールページが表示されます。

今すぐインストールをクリックします インストールを開始します。完了すると、次の画面が表示されます。

表示されたリンクから、管理パネルとフロントエンドWebサイトにアクセスできます。 UVDeskインストールを使用する準備が整いました。

結論

Nginx、MySQL、およびPHPを使用して、RockyLinux8ベースのサーバーにUVdeskヘルプデスクシステムをインストールしました。ご不明な点がございましたら、下のコメント欄に投稿してください。


Rocky Linux
  1. RockyLinuxにNextcloudをインストールする方法

  2. RockyLinuxにPostgreSQL13をインストールして使用する方法

  3. AlmaLinuxとRockyLinuxにPHP8をインストールする方法

  1. RockyLinuxに最新のPHP8をインストールする方法

  2. RockyLinuxにphpMyAdminをインストールする方法

  3. RockyLinux8にPython3.9をインストールする方法

  1. RockyLinux8にPHPComposerをインストールする方法

  2. RockyLinuxにNginxでJoomlaをインストールする方法

  3. Rocky LinuxにOTRS(CE)チケットシステムをインストールする方法