Cách cài đặt Koel Music Streaming Server trên Ubuntu 18.04

theanh

Administrator
Nhân viên
Koel là ứng dụng phát trực tuyến âm thanh cá nhân trên nền tảng web được viết bằng Vue.js ở phía máy khách và Laravel ở phía máy chủ. Hướng dẫn này sẽ trình bày cách cài đặt Koel trên máy chủ chạy Ubuntu 18.04.

Điều kiện tiên quyết​


  • Máy chủ chạy Ubuntu 18.04.

  • Người dùng sudo không phải root.

  • Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade

  • Một số gói mà hệ thống của bạn cần.
    Mã:
    $ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y
    Một số gói này có thể đã được cài đặt trên hệ thống của bạn.

Cấu hình tường lửa​

Bước đầu tiên là cấu hình tường lửa. Trước khi bật tường lửa, chúng ta cần cho phép các cổng SSH, nếu không, chúng ta sẽ bị khóa khỏi máy chủ.
Mã:
$ sudo ufw allow OpenSSH
Bật tường lửa.
Mã:
$ sudo ufw bật
Cho phép các cổng HTTP và HTTPS.
Mã:
$ sudo ufw cho phép http
$ sudo ufw allow https
Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Bạn sẽ thấy đầu ra tương tự.
Mã:
Trạng thái: đang hoạt động
Đến Hành động Từ
-- ------ ----
OpenSSH CHO PHÉP Ở Mọi Nơi
80/tcp CHO PHÉP Ở Mọi Nơi
443/tcp CHO PHÉP Ở Mọi Nơi
OpenSSH (v6) CHO PHÉP Ở Mọi Nơi (v6)
80/tcp (v6) CHO PHÉP Bất kỳ nơi nào (v6)
443/tcp (v6) CHO PHÉP Bất kỳ nơi nào (v6)

Cài đặt Git​

Chúng ta sẽ bắt đầu bằng cách cài đặt Git.
Mã:
$ sudo apt install git -y
$ git config --global user.name "Tên của bạn"
$ git config --global user.email "[emailprotected]"

Cài đặt Node.js​

Chúng tôi sẽ cài đặt Node 10.x thay vì phiên bản 12.x mới nhất vì Koel đóng gói một số thư viện lỗi thời không tương thích với Node 12.
Mã:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
Kiểm tra xem Node đã được cài đặt đúng chưa.
Mã:
$ node --version
Bạn sẽ thấy kết quả tương tự.
Mã:
v10.17.0

Cài đặt Yarn​

Cài đặt trình quản lý gói Yarn.
Mã:
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update && sudo apt install -y yarn
Kiểm tra xem Yarn có hoạt động chính xác không.
Mã:
$ yarn --version
Bạn sẽ thấy một kết quả tương tự đầu ra.
Mã:
1.19.1

Cài đặt PHP​

Cài đặt PHP 7.2 với tất cả các tiện ích mở rộng cần thiết.
Mã:
$ sudo apt install -y php7.2-fpm php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-curl php7.2-zip
Kiểm tra xem PHP có hoạt động chính xác không.
Mã:
$ php --version
Bạn sẽ thấy kết quả tương tự.
Mã:
PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (xây dựng: Tháng 10 24 2019 18:29:11) (NTS)
Bản quyền (c) 1997-2018 Nhóm PHP
Zend Engine v3.2.0, Bản quyền (c) 1998-2018 Zend Technologies
 với Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Bản quyền (c) 1999-2018, của Zend Technologies

Cài đặt MariaDB​

MariaDB là giải pháp thay thế trực tiếp cho MySQL, có nghĩa là các lệnh để chạy và vận hành MariaDB cũng giống như các lệnh dành cho MySQL. Để cài đặt MariaDB, hãy đưa ra các lệnh sau.
Mã:
$ sudo apt install mariadb-server
Kiểm tra xem MariaDB đã được cài đặt đúng chưa.
Mã:
$ mysql --version
Bạn sẽ thấy kết quả sau.
Mã:
mysql Ver 15.1 Distrib 10.1.41-MariaDB, cho debian-linux-gnu (x86_64) sử dụng readline 5.2
Chạy lệnh sau để thực hiện cấu hình mặc định như cung cấp mật khẩu gốc, xóa người dùng ẩn danh, không cho phép đăng nhập gốc từ xa và xóa bảng thử nghiệm. Nhập cho mọi thứ và thiết lập mật khẩu gốc.
Mã:
$ sudo mysql_secure_installation
Có một cảnh báo khi thiết lập mật khẩu gốc. Theo mặc định, MariaDB cho phép người dùng gốc hệ thống đăng nhập vào MariaDB mà không cần mật khẩu. Nhưng nếu bạn định sử dụng ứng dụng của bên thứ 3 để truy cập thông qua root thì mật khẩu là bắt buộc, nếu không các ứng dụng như PHPMyAdmin sẽ không hoạt động. Để thực hiện việc này, bạn cần vô hiệu hóa xác thực dựa trên plugin, đây là tùy chọn mặc định trên MariaDB.

Để vô hiệu hóa xác thực plugin và khôi phục mật khẩu gốc, trước tiên hãy nhập dấu nhắc MySQL bằng lệnh sau.
Mã:
$ sudo mysql -u root
Bây giờ hãy nhập các lệnh sau để vô hiệu hóa xác thực plugin.
Mã:
sử dụng mysql;
cập nhật người dùng đặt plugin='' nơi Người dùng='root';
xả quyền;
thoát
Sau đó, hãy khởi động lại dịch vụ MariaDB của bạn.
Mã:
$ sudo systemctl khởi động lại mariadb.service
Vậy là xong. Lần tới khi bạn muốn đăng nhập vào MySQL, hãy sử dụng lệnh sau
Mã:
$ sudo mysql -u root -p
Nhập mật khẩu root của bạn khi được nhắc.

Cấu hình MariaDB cho Koel​

Bây giờ chúng ta cần thiết lập cơ sở dữ liệu để sử dụng cho ứng dụng Koel. Để thực hiện điều đó, hãy đăng nhập vào dấu nhắc MySQL. Chúng tôi sẽ giả định rằng bạn đang sử dụng phương pháp xác thực mặc định của MariaDB (tức là không sử dụng mật khẩu root) cho phần còn lại của hướng dẫn.
Mã:
$ sudo mysql -u root
Khi đến dấu nhắc, hãy nhập các lệnh sau để thiết lập cơ sở dữ liệu có tên koelmusic và một người dùng cơ sở dữ liệu có tên koeluser và cấp cho người dùng đó quyền truy cập vào cơ sở dữ liệu.
Mã:
mysql> CREATE DATABASE koelmusic;
mysql> TẠO NGƯỜI DÙNG 'koeluser'@'localhost' ĐƯỢC XÁC ĐỊNH BỞI 'yourpassword';
mysql> CẤP TẤT CẢ ĐẶC QUYỀN TRÊN koelmusic.* ĐẾN 'koeluser'@'localhost';
mysql> FLUSH ĐẶC QUYỀN;
mysql> thoát

Cài đặt Nginx​

Cài đặt máy chủ Nginx.
Mã:
$ sudo apt install nginx
Kiểm tra xem nó có hoạt động chính xác không.
Mã:
$ nginx -v
Bạn sẽ thấy kết quả sau.
Mã:
Phiên bản nginx: nginx/1.14.0 (Ubuntu)
Chạy lệnh sau để thêm tệp cấu hình cho Koel.
Mã:
$ sudo nano /etc/nginx/sites-available/koel.conf
Dán đoạn mã sau vào trình soạn thảo.
Mã:
máy chủ {
 lắng nghe *:80;
 tên_máy_chủ koel.example.com;
 gốc /var/www/koel;
 index index.php;

 gzip trên;
 gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json;
 gzip_comp_level 9;

 # Chỉ cho phép index.php, robots.txt và một số tuyến đường đặc biệt
 nếu ($request_uri !~ ^/$|index\.php|robot\.txt|(public|api)/|remote|api-docs|sw\.js) {
 trả về 404;
 }

 vị trí /media/ {
 nội bộ;

 bí danh $upstream_http_x_media_root;

 nhật ký truy cập /var/log/nginx/koel.access.log;
 nhật ký lỗi /var/log/nginx/koel.error.log;
 }

 vị trí / {
 tệp_thử $uri $uri/ /chỉ mục.php?$args;
 }

 vị trí ~ \.php$ {
 try_files $uri $uri/ /index.php?$args;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_param PATH_TRANSLATED$document_root$fastcgi_path_info;
 fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
 fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
 fastcgi_index index.php;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_intercept_errors on;
 include fastcgi_params;
 }
}
Tệp này giả định rằng chúng ta sẽ cài đặt Koel vào miền koel.example.com và trong thư mục /var/www/koel.

Kích hoạt tệp cấu hình này bằng cách liên kết nó với thư mục sites-enabled.
Mã:
$ sudo ln -s /etc/nginx/sites-available/koel.conf /etc/nginx/sites-enabled/
Kiểm tra cấu hình.
Mã:
$ sudo nginx -t
Bạn sẽ thấy đầu ra sau cho biết cấu hình của bạn là chính xác.
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok
nginx: thử nghiệm tệp cấu hình /etc/nginx/nginx.conf thành công
Tải lại dịch vụ Nginx.
Mã:
$ sudo systemctl reload nginx

Cài đặt Composer​

Đây là điều cuối cùng chúng ta cần trước khi tiến hành cài đặt.

Nhập các lệnh sau để cài đặt Composer.
Mã:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
Kiểm tra xem nó có hoạt động chính xác không.
Mã:
$ composer --version
Bạn sẽ thấy đầu ra sau.
Mã:
Phiên bản Composer 1.9.1 2019-11-01 17:20:17

Cài đặt Koel​

Tạo một thư mục gốc tài liệu trống cho Koel.
Mã:
$ sudo mkdir -p /var/www/koel
Đối số -p đảm bảo rằng các thư mục cha varwww được tự động tạo nếu chúng không tồn tại.

Điều hướng đến thư mục gốc của tài liệu.
Mã:
$ cd /var/www/koel
Đổi quyền sở hữu gốc của tài liệu thành user là người dùng không phải root mà chúng tôi đã sử dụng cho hướng dẫn này.
Mã:
$ sudo chown -R user:user /var/www/koel
Sao chép kho lưu trữ Koel Git và kiểm tra phiên bản mới nhất của kho lưu trữ này. Bạn có thể kiểm tra phiên bản mới nhất từ trang phát hành của phiên bản đó.
Mã:
$ git clone --recurse-submodules https://github.com/phanan/koel.git .
$ git checkout v4.1.1
Cài đặt các phần phụ thuộc.
Mã:
$ composer install
Chạy lệnh sau để thiết lập cơ sở dữ liệu và tài khoản quản trị. Nhập mysql làm loại cơ sở dữ liệu, bỏ qua cổng và nhập thông tin xác thực cơ sở dữ liệu mà chúng tôi đã tạo ở trên. Đối với thư mục phương tiện, bạn có thể nhập lệnh sau: /home/user/songs.
Mã:
$ php artisan koel:init
Đổi quyền sở hữu thư mục gốc của tài liệu trở lại www-data user.
Mã:
$ sudo chown -R www-data:www-data /var/www/koel
Quá trình thiết lập đã hoàn tất. Mở koel.example.com trong trình duyệt của bạn và đăng nhập bằng thông tin đăng nhập bạn đã tạo ở trên rồi bắt đầu phát trực tuyến. Trang web của Koel cũng có thể truy cập qua thiết bị di động.

Cấu hình Koel​

Bạn có thể cấu hình thêm nhiều chi tiết bằng cách chỉnh sửa tệp .env bằng lệnh sau.
Mã:
$ sudo nano /var/www/koel/.env
Tại đây, bạn có thể nhập thông tin SMTP, cấu hình Youtube và Last.fm cho Koel và thực hiện nhiều thao tác khác.

Tải lại máy chủ Nginx để triển khai các thay đổi.

Nếu bạn muốn đặt lại mật khẩu quản trị viên, bạn có thể thực hiện bằng cách nhập lệnh sau.
Mã:
$ php artisan koel:admin:change-password
Nếu bạn muốn quét thư viện phương tiện để tìm các tệp đã cập nhật, bạn có thể thực hiện bằng lệnh sau.
Mã:
$ php artisan koel:sync
Bạn sẽ thấy kết quả sau.
Mã:
Đồng bộ hóa Koel đã bắt đầu.
953/953 [????????????????????????????] 100%
Hoàn tất! 944 bài hát mới hoặc được cập nhật, 0 bài hát không thay đổi và 9 tệp không hợp lệ.
Thêm hậu tố cho lệnh -vcờ này sẽ cung cấp cho bạn nhiều thông tin chi tiết hơn như lỗi đồng bộ hóa.

Bạn thậm chí có thể đặt lệnh này dưới dạng cron công việc, ví dụ, chạy vào mỗi nửa đêm. Để thực hiện điều đó, hãy chạy lệnh sau.
Mã:
$ crontab -e
Chọn 1(nano) làm trình soạn thảo của bạn.

Dán dòng sau vào cuối tệp.
Mã:
0 0 * * * cd /var/www/koel && /usr/bin/php artisan koel:sync >/dev/null 2>&1
Lưu tệp bằng cách nhấn Ctrl + Xvà nhập Y khi được nhắc. Bây giờ, thư viện phương tiện của bạn sẽ được đồng bộ hóa vào mỗi nửa đêm.

Để biết thêm thông tin, hãy tham khảo Tài liệu chính thức của Koel.

Thiết lập HTTPS bằng Let's Encrypt​

Để sử dụng Let's encrypt, chúng ta cần cài đặt gói Certbot.

Thêm kho lưu trữ.
Mã:
$ sudo add-apt-repository ppa:certbot/certbot
Cài đặt Certbot.
Mã:
$ sudo apt install python-certbot-nginx
Cài đặt chứng chỉ.
Mã:
$ sudo certbot --nginx -d koel.example.com
Nếu đây là lần đầu tiên bạn sử dụng công cụ trên máy chủ này, bạn cần đồng ý với các điều khoản và nhập địa chỉ email của mình. Hãy nói không khi được hỏi bạn có muốn chia sẻ email của mình với tổ chức EFF không.

Nếu thành công, certbot sẽ hỏi bạn muốn định cấu hình cài đặt HTTPS của mình như thế nào.
Mã:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.
----------------------------------------------------------------------------------
1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.
2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn này cho
các trang web mới hoặc nếu bạntin chắc rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tác thay đổi này
bằng cách chỉnh sửa cấu hình máy chủ webcủa bạn.
----------------------------------------------------------------------------------
Chọn số thích hợp [1-2] sau đó [enter] (nhấn 'c' để hủy):
Chọn 2 rồi nhấn ENTER. Chứng chỉ của bạn hiện đã được cài đặt và kích hoạt. Chứng chỉ của bạn sẽ tự động gia hạn sau 90 ngày.

Kết luận​

Hướng dẫn của chúng tôi đến đây là kết thúc. Bạn có thể truyền phát phương tiện từ máy chủ theo ý muốn của mình.
 
Back
Bên trên