Cài đặt Plex Media Server trên Ubuntu 20.04

theanh

Administrator
Nhân viên
Plex là một máy chủ phát trực tuyến phương tiện mạnh mẽ và giàu tính năng có thể được sử dụng để sắp xếp video, nhạc và ảnh của bạn và phát trực tuyến chúng đến các thiết bị từ xa từ bất kỳ đâu. Nó hỗ trợ nhiều hệ điều hành bao gồm Linux, Windows, FreeBSD, macOS và nhiều hệ điều hành khác. Bạn có thể truy cập phương tiện được lưu trữ trên máy chủ Plex từ TV thông minh, điện thoại thông minh và hộp phát trực tuyến bằng ứng dụng khách phương tiện Plex.

Plex có rất nhiều tính năng, một số tính năng được liệt kê dưới đây:
  • Truyền hình trực tiếp và DVR.
  • Đồng bộ hóa trên thiết bị di động.
  • Đồng bộ hóa đám mây.
  • Các tính năng âm nhạc cao cấp.
  • Thư viện ảnh cao cấp.
  • Phát trực tuyến được tăng tốc bằng phần cứng.
  • Kiểm soát của phụ huynh.
  • Tải lên từ máy ảnh.
  • Giới hạn băng thông và chuyển mã.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt máy chủ phương tiện Plex với Nginx làm proxy ngược trên máy chủ Ubuntu 20.04.

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

  • Một máy chủ chạy Ubuntu 20.04.
  • Một mật khẩu gốc đã được định cấu hình.

Bắt đầu​

Trước tiên, bạn sẽ cần cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
Sau khi các gói của bạn được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cài đặt Plex Media Server​

Trước tiên, bạn sẽ cần tải xuống phiên bản mới nhất của Plex media server từ trang web chính thức của Plex. Bạn có thể tải xuống bằng lệnh sau:
Mã:
wget https://downloads.plex.tv/plex-media-server-new/1.20.1.3252-a78fef9a9/debian/plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb
Sau khi tải xuống gói máy chủ phương tiện Plex, bạn có thể cài đặt bằng lệnh sau:
Mã:
dpkg -i plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb
Sau khi cài đặt máy chủ phương tiện Plex, hãy khởi động dịch vụ Plex và cho phép dịch vụ này khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start plexmediaserver
systemctl enable plexmediaserver
Tiếp theo, bạn có thể xác minh trạng thái của dịch vụ Plex với lệnh sau:
Mã:
systemctl status plexmediaserver
Bạn sẽ thấy đầu ra sau:
Mã:
? plexmediaserver.service - Plex Media Server Đã tải: đã tải (/lib/systemd/system/plexmediaserver.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2020-09-05 06:48:06 UTC; 17 giây trước Tiến trình: 38369 ExecStartPre=/bin/sh -c /usr/bin/test -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" || /bin/mkdir -p "${PLEX_MEDIA_SERV> PID chính: 38371 (Plex Media Serv) Nhiệm vụ: 120 (giới hạn: 2353) Bộ nhớ: 215,0M CGroup: /system.slice/plexmediaserver.service ??38371 /usr/lib/plexmediaserver/Plex Media Server ??38405 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Contents/Resourc> ??38451 /usr/lib/plexmediaserver/Plex Tuner Service /usr/lib/plexmediaserver/Resources/Tuner/Private /usr/lib/plexmediaserver/Res> ??38474 Plex Plug-in [com.plexapp.agents.plexthememusic] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/C> ??38477 Tiện ích bổ sung Plex [com.plexapp.agents.themoviedb] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Conte> ??38533 Tiện ích bổ sung Plex [org.musicbrainz.agents.music] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Conten> ??38544 Tiện ích bổ sung Plex [com.plexapp.agents.thetvdb] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Contents> ??38638 Tiện ích bổ sung Plex [com.plexapp.agents.opensubtitles] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Co> ??38710 Tiện ích bổ sung Plex [com.plexapp.agents.fanarttv] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Content>05/09 06:48:06 ubuntu2004 systemd[1]: Đang khởi động Plex Media Server...05/09 06:48:06 ubuntu2004 systemd[1]: Đã khởi động Plex Media Server.
Tại thời điểm này, Plex media server đã được khởi động và đang lắng nghe trên cổng 32400. Bạn có thể xác minh bằng lệnh sau:
Mã:
ss -lnpt | grep Plex
Bạn sẽ thấy đầu ra sau:
Mã:
NGHE 0 128 127.0.0.1:39851 0.0.0.0:* users:(("Plex Script Hos",pid=38739,fd=4))NGHE 0 128 127.0.0.1:46031 0.0.0.0:* users:(("Plex Script Hos",pid=38779,fd=4))NGHE 0 1024 127.0.0.1:32401 0.0.0.0:* users:(("Plex Media Serv",pid=38371,fd=61))NGHE 0 128 127.0.0.1:44661 0.0.0.0:* users:(("Plex Script Hos",pid=38533,fd=4))LISTEN 0 128 127.0.0.1:32600 0.0.0.0:* users:(("Plex Tuner Serv",pid=38451,fd=13))LISTEN 0 128 127.0.0.1:36637 0.0.0.0:* users:(("Plex Script Hos",pid=38544,fd=4))LISTEN 0 128 127.0.0.1:42973 0.0.0.0:* users:(("Plex Script Hos",pid=38405,fd=10))LISTEN 0 128 127.0.0.1:38467 0.0.0.0:* users:(("Plex Script Hos",pid=38824,fd=4))LISTEN 0 128 127.0.0.1:40035 0.0.0.0:* users:(("Plex Script Hos",pid=38477,fd=4))LISTEN 0 1024 *:32400 *:* users:(("Plex Media Serv",pid=38371,fd=60))
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Bật Plex Media Server Repository​

Theo mặc định, Plex media server repository bị vô hiệu hóa trong APT. Vì vậy, bạn nên bật nó để có thể cập nhật Plex media server bằng lệnh APT. Bạn có thể bật tính năng này bằng cách chỉnh sửa tệp sau:
Mã:
nano /etc/apt/sources.list.d/plexmediaserver.list
Bỏ chú thích cho dòng sau:
Mã:
deb https://downloads.plex.tv/repo/deb/ public main
Lưu và đóng tệp, sau đó thêm khóa Plex GPG bằng lệnh sau:
Mã:
wget -q https://downloads.plex.tv/plex-keys/PlexSign.key -O - | apt-key add -
Bây giờ, hãy cập nhật kho lưu trữ bằng lệnh sau để áp dụng các thay đổi:
Mã:
apt-get update -y
Sau khi kho lưu trữ được cập nhật, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx cho Plex​

Tiếp theo, bạn nên cài đặt và cấu hình Nginx làm proxy ngược cho Plex. Vì vậy, bạn có thể truy cập máy chủ phương tiện Plex bằng cổng 80.

Đầu tiên, hãy cài đặt máy chủ web Nginx bằng lệnh sau:
Mã:
apt-get install nginx -y
Sau khi máy chủ web Nginx được cài đặt, hãy tạo tệp cấu hình máy chủ ảo Nginx mới bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/plex.conf
Thêm các dòng sau:
Mã:
upstream plex_backend { server 127.0.0.1:32400; keepalive 32;}server { listen 80; server_name plex.example.com; send_timeout 100m; #Một số trình phát không mở lại ổ cắm và quá trình phát lại dừng hoàn toàn thay vì tiếp tục sau một thời gian tạm dừng kéo dài (ví dụ: Ch$ #Plex có RẤT NHIỀU javascript, xml và html. Điều này giúp ích rất nhiều, nhưng nếu nó gây ra sự cố phát lại với các thiết bị, hãy tắt nó đi. (Chưa enc$ gzip on; gzip_vary on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml; gzip_disable "MSIE [1-6]\."; #Kích thước máy khách_tối đa_cơ thể_mặc định của Nginx là 1MB, điều này làm hỏng tính năng Tải lên camera từ điện thoại. #Việc tăng giới hạn sẽ khắc phục được sự cố. Dù sao đi nữa, nếu dự kiến tải lên video 4K, thì kích thước có thể cần phải tăng thêm nữa client_max_body_size 100M; #Chuyển tiếp ip thực và máy chủ đến Plex proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions; proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key; proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version; #Websockets proxy_http_version 1.1; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối "Nâng cấp"; #Tắt bộ đệm gửi đến máy khách ngay khi dữ liệu được nhận từ Plex. proxy_redirect tắt; proxy_buffering tắt; location / { proxy_pass http://plex_backend; }}
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ nhận được kết quả sau:
Mã:
nginx: tệp cấu hình /etc/nginx/nginx.conf cú pháp là oknginx: tệp cấu hình /etc/nginx/nginx.conf thử nghiệm thành công
Tiếp theo, bật tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
ln -s nano /etc/nginx/sites-available/plex.conf /etc/nginx/sites-enabled/
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart nginx
Bây giờ bạn có thể kiểm tra trạng thái Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả sau:
Mã:
? nginx.service - Một máy chủ web hiệu suất cao và một máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Sat 2020-09-05 06:57:20 UTC; 1 phút 47 giây trước Tài liệu: man:nginx(8) Quy trình: 40059 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Quy trình: 40070 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 40072 (nginx) Nhiệm vụ: 3 (giới hạn: 2353) Bộ nhớ: 3,6M CGroup: /system.slice/nginx.service ??40072 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??40073 nginx: tiến trình công nhân ??40074 nginx: tiến trình công nhân05/09 06:57:20 ubuntu2004 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...05/09 06:57:20 ubuntu2004 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Plex Media Server​

Lúc này, dịch vụ Plex media đã được cài đặt và cấu hình với Nginx. Bây giờ, hãy mở trình duyệt web của bạn và truy cập máy chủ Plex media bằng URL http://plex.example.com. Bạn sẽ thấy trang sau:



Bây giờ, hãy đăng nhập bằng tài khoản Google hoặc Facebook của bạn. Bạn sẽ thấy bảng điều khiển máy chủ phương tiện Plex ở trang sau:


Bảo mật Plex bằng Let's Encrypt SSL​

Tiếp theo, bạn nên bảo mật Plex bằng Let's Encrypt SSL. Trước tiên, bạn sẽ cần cài đặt ứng dụng khách Certbot Let's Encrypt trong máy chủ của mình để cài đặt và quản lý SSL. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install python3-certbot-nginx -y
Sau khi cài đặt Certbot, hãy chạy lệnh sau để cài đặt Let's Encrypt SSL trên miền của bạn:
Mã:
certbot --nginx -d plex.example.com
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có muốn chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho plex.example.comĐang chờ xác minh...Dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/sites-enabled/plex.conf
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -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 tùy chọn này chocác trang web mới hoặc nếu bạn tin 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àybằng cách chỉnh sửa cấu hình máy chủ web của bạn.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] sau đó [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để hoàn tất cài đặt. Bạn sẽ thấy đầu ra sau:
Mã:
Chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/sites-enabled/plex.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://plex.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=plex.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/plex.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/plex.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 30-10-2020. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le - Chúng tôi không thể đăng ký cho bạn danh sách gửi thư EFF vì địa chỉ email của bạn có vẻ không hợp lệ. Bạn có thể thử lại sau bằng cách truy cập https://act.eff.org.
Bây giờ bạn có thể truy cập máy chủ phương tiện Plex của mình một cách an toàn bằng URL https://plex.example.com.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công máy chủ phương tiện Plex với Nginx làm proxy ngược trên máy chủ Ubuntu 20.04. Bây giờ bạn có thể tải phương tiện, nhạc và ảnh của mình lên và truy cập chúng từ điện thoại thông minh, TV hoặc các hộp phát trực tuyến khác. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên