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.
Bật tường lửa.
Cho phép các cổng HTTP và HTTPS.
Kiểm tra trạng thái của tường lửa.
Bạn sẽ thấy đầu ra tương tự.
Kiểm tra xem Node đã được cài đặt đúng chưa.
Bạn sẽ thấy kết quả tương tự.
Kiểm tra xem Yarn có hoạt động chính xác không.
Bạn sẽ thấy một kết quả tương tự đầu ra.
Kiểm tra xem PHP có hoạt động chính xác không.
Bạn sẽ thấy kết quả tương tự.
Kiểm tra xem MariaDB đã được cài đặt đúng chưa.
Bạn sẽ thấy kết quả sau.
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 có cho mọi thứ và thiết lập mật khẩu gốc.
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.
Bây giờ hãy nhập các lệnh sau để vô hiệu hóa xác thực plugin.
Sau đó, hãy khởi động lại dịch vụ MariaDB của bạn.
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
Nhập mật khẩu root của bạn khi được nhắc.
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.
Kiểm tra xem nó có hoạt động chính xác không.
Bạn sẽ thấy kết quả sau.
Chạy lệnh sau để thêm tệp cấu hình cho Koel.
Dán đoạn mã sau vào trình soạn thảo.
Tệp này giả định rằng chúng ta sẽ cài đặt Koel vào miền
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
Kiểm tra cấu hình.
Bạn sẽ thấy đầu ra sau cho biết cấu hình của bạn là chính xác.
Tải lại dịch vụ Nginx.
Nhập các lệnh sau để cài đặt Composer.
Kiểm tra xem nó có hoạt động chính xác không.
Bạn sẽ thấy đầu ra sau.
Đối số -p đảm bảo rằng các thư mục cha
Điều hướng đến thư mục gốc của tài liệu.
Đổi quyền sở hữu gốc của tài liệu thành
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 đó.
Cài đặt các phần phụ thuộc.
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:
Đổi quyền sở hữu thư mục gốc của tài liệu trở lại
Quá trình thiết lập đã hoàn tất. Mở
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.
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.
Bạn sẽ thấy kết quả sau.
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.
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.
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.
Thêm kho lưu trữ.
Cài đặt Certbot.
Cài đặt chứng chỉ.
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,
Chọn 2 rồi nhấn
Đ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
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
Mã:
$ sudo ufw bật
Mã:
$ sudo ufw cho phép http
$ sudo ufw allow https
Mã:
$ sudo ufw status
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
Mã:
$ node --version
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
Mã:
$ yarn --version
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
Mã:
$ php --version
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
Mã:
$ mysql --version
Mã:
mysql Ver 15.1 Distrib 10.1.41-MariaDB, cho debian-linux-gnu (x86_64) sử dụng readline 5.2
Mã:
$ sudo mysql_secure_installation
Để 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
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
Mã:
$ sudo systemctl khởi động lại mariadb.service
Mã:
$ sudo mysql -u root -p
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
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
Mã:
$ nginx -v
Mã:
Phiên bản nginx: nginx/1.14.0 (Ubuntu)
Mã:
$ sudo nano /etc/nginx/sites-available/koel.conf
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;
}
}
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/
Mã:
$ sudo nginx -t
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
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
Mã:
$ composer --version
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
var
và www
đượ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
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
Mã:
$ git clone --recurse-submodules https://github.com/phanan/koel.git .
$ git checkout v4.1.1
Mã:
$ composer install
/home/user/songs
.
Mã:
$ php artisan koel:init
www-data
user.
Mã:
$ sudo chown -R www-data:www-data /var/www/koel
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 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
Mã:
$ php artisan koel:sync
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ệ.
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
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
Để 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
Mã:
$ sudo apt install python-certbot-nginx
Mã:
$ sudo certbot --nginx -d koel.example.com
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):
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.