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
最初のステップは、ファイアウォールを構成することです。 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
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
このチュートリアルでは、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
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
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
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
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ヘルプデスクシステムをインストールしました。ご不明な点がございましたら、下のコメント欄に投稿してください。