UVdesk adalah sistem helpdesk berbasis Saas open-source bagi perusahaan untuk berinteraksi dengan pelanggan mereka dan menawarkan dukungan sepanjang waktu. Fitur-fiturnya termasuk manajemen tiket, dukungan basis pengetahuan, balasan kalengan, dan pembuatan tiket otomatis berdasarkan email. Kemampuan Uvdesk dapat diperluas menggunakan modul eksternal. Anda dapat mengotomatiskan tindakan tertentu berdasarkan pemicu tertentu untuk meningkatkan alur kerja Anda.
Dalam tutorial ini, Anda akan belajar cara menginstal Uvdesk di server berbasis Rocky Linux 8 menggunakan Nginx, MySQL dan PHP.
Prasyarat
-
Server yang menjalankan Rocky Linux 8.
-
Nama domain untuk meja bantuan yang menunjuk ke server. Untuk tutorial kita, kita akan menggunakan
uvdesk.example.com
domain. -
Pengguna berbasis non-root dengan hak istimewa sudo.
-
Pastikan semuanya diperbarui.
$ sudo dnf update
-
Instal paket utilitas dasar. Beberapa di antaranya mungkin sudah terpasang.
$ sudo dnf install wget curl nano unzip yum-utils -y
Langkah 1 - Konfigurasi Firewall
Langkah pertama adalah mengkonfigurasi firewall. Rocky Linux menggunakan Firewalld Firewall. Periksa status firewall.
$ sudo firewall-cmd --staterunning
Firewall bekerja dengan zona yang berbeda, dan zona publik adalah zona default yang akan kita gunakan. Buat daftar semua layanan dan port yang aktif di firewall.
$ sudo firewall-cmd --permanent --list-services
Ini akan menunjukkan output berikut.
kokpit dhcpv6-client ssh
Izinkan port HTTP dan HTTPS.
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Periksa kembali status firewall.
$ sudo firewall-cmd --permanent --list-services
Anda akan melihat keluaran serupa.
kokpit dhcpv6-klien http https ssh
Muat ulang firewall untuk mengaktifkan perubahan.
$ sudo firewall-cmd --reload
Langkah 2 - Instal Nginx
Rocky Linux dikirimkan dengan versi Nginx yang lebih lama. Anda perlu mengunduh repositori Nginx resmi untuk menginstal versi terbaru.
Buat dan buka /etc/yum.repos.d/nginx.repo
file untuk membuat repositori Nginx resmi.
$ sudo nano /etc/yum.repos.d/nginx.repo
Tempelkan kode berikut di dalamnya.
[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing. keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/ nginx_signing.keymodule_hotfixes=true
Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Instal Nginx.
$ sudo dnf install nginx
Verifikasi penginstalan.
$ nginx -vnginx versi:nginx/1.20.2
Aktifkan layanan Nginx.
$ sudo systemctl aktifkan nginx
Langkah 3 - Instal PHP dan ekstensi
Untuk tutorial kita, kita perlu menginstal versi terbaru PHP menggunakan repositori Remi. Langkah pertama adalah mengambil repositori Epel.
$ sudo dnf install epel-release
Selanjutnya, instal repositori Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Periksa aliran PHP yang tersedia.
$ dnf module list php -yLast metadata cek kedaluwarsa:0:00:12 yang lalu pada Jum 03 Des 2021 09:39:32 UTC.Rocky Linux 8 - AppStreamName Stream Profiles Summaryphp 7.2 [d] common [d], devel, minimal PHP scripting languagephp 7.3 umum [d], devel, minimal PHP scripting languagephp 7.4 umum [d], devel, minimal PHP scripting languageRemi's Modular repository for Enterprise Linux 8 - x86_64Name Stream Profiles Summaryphp remi-7.2 common [d], devel , bahasa skrip PHP minimalphp remi-7.3 umum [d], devel, bahasa skrip PHP minimalphp remi-7.4 umum [d], devel, skrip PHP minimal languagephp remi-8.0 umum [d], devel, bahasa skrip PHP minimalphp remi-8.1 umum [d], devel, bahasa skrip PHP minimalPetunjuk:[d]efault, [e]nabled, [x]disabled, [i]nstalledVersi defaultnya adalah 7.2. Aktifkan repositori PHP 8.0 Remi.
$ modul sudo dnf reset php$ modul sudo dnf mengaktifkan php:remi-8.0Selanjutnya, instal PHP dan ekstensinya yang diperlukan oleh UVDesk.
$ 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-mailparseVerifikasi penginstalan.
$ php --versionPHP 8.0.16 (cli) (dibuat:Feb 15 2022 21:34:32) ( NTS gcc x86_64 )Hak Cipta (c) PHP GroupZend Engine v4.0.16, Hak Cipta (c) Zend TechnologiesLangkah 4 - Instal dan Konfigurasi Server MySQL
Kami akan menggunakan database MySQL untuk menyimpan data. Repositori Appstream Rocky Linux dikirimkan dengan MySQL versi terbaru.
Instal MySQL.
$ sudo dnf install mysql-serverAktifkan dan mulai layanan MySQL.
$ sudo systemctl aktifkan mysqld --nowInstalasi MySQL aman.
$ sudo mysql_secure_installationUntuk langkah pertama, Anda akan ditanya apakah Anda ingin mengatur Plugin Validasi Kata Sandi, yang dapat Anda gunakan untuk menguji kekuatan kata sandi MySQL Anda. Pilih
Y
untuk melanjutkan. Anda akan diminta untuk memilih tingkat validasi kata sandi di langkah berikutnya. Pilih2
yang merupakan level terkuat dan akan mengharuskan sandi Anda setidaknya terdiri dari delapan karakter dan menyertakan campuran huruf besar, huruf kecil, angka, dan karakter khusus.Mengamankan penyebaran server MySQL. Menghubungkan ke MySQL menggunakan kata sandi kosong. KOMPONEN SANDI VALIDASI dapat digunakan untuk menguji kata sandi dan meningkatkan keamanan. Ini memeriksa kekuatan kata sandi dan memungkinkan pengguna untuk mengatur hanya kata sandi yang cukup aman. Apakah Anda ingin menyiapkan komponen VALIDATE PASSWORD? Tekan y|Y untuk Ya, tombol lain untuk Tidak:YAda tiga tingkat kebijakan validasi kata sandi:RENDAH Panjang>=8MEDIUM Panjang>=8, numerik, huruf besar campuran, dan karakter khususSTRONG Panjang>=8, numerik, huruf besar campuran, karakter khusus, dan file kamusMasukkan 0 =RENDAH, 1 =SEDANG dan 2 =KUAT:2Anda akan diminta untuk memilih kata sandi root pada langkah berikutnya. Pilih kata sandi yang kuat yang memenuhi persyaratan plugin validasi kata sandi. Pada langkah selanjutnya, Anda akan ditanya apakah akan melanjutkan dengan kata sandi yang dipilih. Tekan
y
untuk melanjutkan.Silakan setel kata sandi untuk root di sini.Kata sandi baru:Masukkan kembali kata sandi baru:Perkiraan kekuatan kata sandi:100Apakah Anda ingin melanjutkan dengan kata sandi yang diberikan?(Tekan y|Y untuk Ya, tombol lain untuk Tidak) :YTekan
Y
laluENTER
kunci untuk semua perintah berikut untuk menghapus pengguna anonim dan database pengujian, menonaktifkan login root dan memuat aturan yang baru ditetapkan....Hapus pengguna anonim? (Tekan y|Y untuk Ya, tombol lain untuk Tidak):YSuccess....Larang login root dari jarak jauh? (Tekan y|Y untuk Ya, tombol lain untuk Tidak) :YSuccess....Hapus database pengujian dan akses ke sana? (Tekan y|Y untuk Ya, tombol lain untuk Tidak):Y - Menjatuhkan database uji...Berhasil. - Menghapus hak istimewa pada basis data pengujian...Berhasil.Memuat ulang tabel hak istimewa akan memastikan bahwa semua perubahan yang dibuat sejauh ini akan segera berlaku....Muat ulang tabel hak istimewa sekarang? (Tekan y|Y untuk Ya, tombol lain untuk Tidak) :YSuccess.All done!Masukkan shell MySQL. Masukkan kata sandi root Anda untuk melanjutkan.
$ mysql -u root -pBuat
uvdesk
pengguna. Pastikan sandi memenuhi persyaratan yang ditetapkan sebelumnya.mysql> BUAT PENGGUNA 'uvdesk'@'localhost' DIIDENTIFIKASI DENGAN 'Your_password2';Buat
uvdeskdb
basis data.mysql> BUAT DATABASE uvdeskdb;Berikan hak istimewa pengguna pada
uvdeskdb
basis data.mysql> BERIKAN SEMUA HAK ISTIMEWA DI uvdeskdb.* KEPADA 'uvdesk'@'localhost';Keluar dari Shell.
mysql> keluarLangkah 5 - Unduh UVdesk
Unduh versi stabil terbaru dari UVdesk.
$ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zipBuka zip file yang diunduh.
$ unzip uvdesk-*.zipPindahkan direktori hasil ekstrak ke
/var/www/uvdesk
lokasi.$ sudo mv uvdesk-community-v1.0.18 /var/www/uvdeskBeralih ke direktori UVdesk.
$ cd /var/www/uvdeskBuka file lingkungan (
.env
) untuk diedit.$ sudo nano .envTemukan baris
APP_ENV=dev
dan ubah menjadi berikut.APP_ENV=prodSimpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Ubah kepemilikan direktori root menjadi pengguna Nginx.
$ sudo chown -R nginx:nginx /var/www/uvdeskLangkah 6 - Konfigurasi Izin SELinux
Gunakan
chcon
SELinux perintah untuk mengubah konteks keamanan file untuk konten web yang disajikan dari/var/www/uvdesk
direktori.$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R$ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -RKonfigurasikan SELinux untuk mengizinkan koneksi jaringan untuk UVDesk.
$ sudo setsebool -P httpd_can_network_connect onLangkah 7 - Instal dan Konfigurasi SSL
Untuk menginstal sertifikat SSL menggunakan Let's Encrypt, kita perlu mengunduh alat Certbot. Kami membutuhkan repositori Epel untuk menginstal Certbot, tetapi kami dapat melewati langkah ini karena kami telah menginstalnya sebelumnya di tutorial.
Instal Certbot.
$ sudo dnf install certbotBuat sertifikat SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d uvdesk.example.comPerintah di atas akan mengunduh sertifikat ke
/etc/letsencrypt/live/uvdesk.example.com
direktori di server Anda.Buat grup Diffie-Hellman sertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Buat direktori root web tantangan untuk pembaruan otomatis Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencryptBuat Pekerjaan Cron untuk memperbarui SSL. Ini akan berjalan setiap hari untuk memeriksa sertifikat dan memperbarui jika diperlukan. Untuk itu, buat dulu file
/etc/cron.daily/certbot-renew
dan buka untuk diedit.$ sudo nano /etc/cron.daily/certbot-renewTempelkan kode berikut.
#!/bin/shcertbot perbarui --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Ubah izin pada file tugas agar dapat dieksekusi.
$ sudo chmod +x /etc/cron.daily/certbot-renewLangkah 8 - Konfigurasi Nginx dan PHP
Konfigurasi PHP-FPM
Buka file
/etc/php-fpm.d/www.conf
.$ sudo nano /etc/php-fpm.d/www.confKita perlu mengatur pengguna/grup proses PHP Unix ke nginx . Temukan
user=www-data
dangroup=www-data
baris dalam file dan ubah menjadinginx
....; Pengguna/grup proses Unix; Catatan:Pengguna wajib. Jika grup tidak disetel, grup pengguna default; akan digunakan.; RPM:pengguna apache yang dipilih untuk menyediakan akses ke direktori yang sama dengan httpduser =nginx; RPM:Biarkan grup tetap diizinkan untuk menulis di log dir.group =nginx...Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Aktifkan dan Mulai layanan PHP.
$ sudo systemctl aktifkan php-fpm --nowUbah grup direktori sesi PHP ke Nginx.
$ sudo chgrp -R nginx /var/lib/php/sessionKonfigurasi Nginx
Buat dan buka file
/etc/nginx/conf.d/uvdesk.conf
untuk diedit.$ sudo nano /etc/nginx/conf.d/uvdesk.confTempelkan kode berikut di dalamnya.
server { dengarkan 443 ssl http2; dengarkan [::]:443 ssl http2; nama_server 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 dibagikan:MozSSL:10m; ssl_session_tickets mati; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers aktif; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDALY -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapel aktif; ssl_stapling_verifikasi aktif; ssl_dhparam /etc/ssl/certs/dhparam.pem; penyelesai 8.8.8.8; root /var/www/uvdesk/public; indeks indeks.php; lokasi / { try_files $uri $uri/ /index.php?$args; } # Kirim Skrip PHP Ke lokasi Server FastCGI ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/run/php-fpm/www.sock; # Tergantung Pada Versi PHP fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; termasuk fastcgi_params; try_files $uri =404; } }# menegakkan HTTPSserver { mendengarkan 80; dengarkan [::]:80; nama_server uvdesk.example.com; kembalikan 301 https://$host$request_uri;}Perhatikan direktori root yang akan digunakan dalam konfigurasi Nginx adalah
/var/www/uvdesk/public/
dan bukan/var/www/uvdesk/
.Simpan file dengan menekan Ctrl + X dan memasukkan Y ketika diminta setelah selesai.
Buka file
/etc/nginx/nginx.conf
untuk diedit.$ sudo nano /etc/nginx/nginx.confTambahkan baris berikut sebelum baris
include /etc/nginx/conf.d/*.conf;
.server_names_hash_bucket_size 64;Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.
Verifikasi sintaks file konfigurasi Nginx.
$ sudo nginx -tnginx:file konfigurasi /etc/nginx/nginx.conf sintaksnya oknginx:file konfigurasi /etc/nginx/nginx.conf tes berhasilMulai layanan Nginx.
$ sudo systemctl start nginxLangkah 9 - Instal UVdesk
Luncurkan URL
https://uvdesk.example.com
di browser Anda, dan Anda akan mendapatkan layar berikut.
Klik tombol Mari Mulai tombol untuk memulai proses instalasi. Pemasang akan memeriksa pengaturan PHP dan izin file di halaman berikutnya.
Klik Lanjutkan untuk melanjutkan. Anda akan diminta untuk mengisi rincian database pada halaman berikutnya. Masukkan data seperti yang dikonfigurasi pada langkah 4.
Klik Lanjutkan untuk melanjutkan. Selanjutnya, Anda akan diminta untuk membuat akun administrator super. Isi detail Anda.
Klik Lanjutkan untuk melanjutkan. Selanjutnya, Anda akan diminta untuk mengkonfigurasi website dengan memberikan nama awalan Panel Anggota dan Pelanggan. Awalan ini digunakan di URL situs web.
Klik Lanjutkan untuk melanjutkan. Anda akan mencapai halaman penginstalan terakhir.
Klik Pasang Sekarang untuk memulai instalasi. Setelah selesai, Anda akan mendapatkan layar berikut.
Anda dapat mengakses panel admin dan situs web frontend melalui tautan yang diberikan. Instalasi UVDesk Anda siap digunakan.
Kesimpulan
Anda telah menginstal sistem Helpdesk UVdesk pada server berbasis Rocky Linux 8 menggunakan Nginx, MySQL dan PHP. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.
Cara Memasang Pengelola Kata Sandi Passbolt di Rocky Linux Cara Menginstal Oracle Java JDK 18 di LinuxRocky Linux