如何在 CentOS 7 上安装 Streama
在此页
- 第 1 步 - 安装 Streama
Streama 是一个免费的开源媒体流应用程序。它是 Netflix 的自托管替代品。它具有许多功能,例如轻松拖放媒体管理、漂亮的媒体播放器、实时同步观看、多用户、字幕和恢复功能等。
在本教程中,我们将在 CentOS 7 服务器上安装 Streama。
先决条件
- 最小的 CentOS 7 服务器
- 根权限
第 1 步 - 安装 Streama
建议在安装任何包之前更新服务器,以便更新现有的包和存储库。
yum -y update
您可以在 OpenJDK 或 Oracle JAVA 上安装 Streama。在本教程中,我们将在服务器中安装最新版本的 Oracle Java。同样运行以下命令。
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"
如果你没有安装 wget,你可以运行 yum -y install wget 来安装 wget。现在使用以下命令安装下载的 RPM。
yum -y localinstall jdk-8u131-linux-x64.rpm
您可以运行以下命令来验证是否安装了 Java。
java -version
上面的命令将打印您安装的 JAVA 版本。您应该会得到类似的输出,如下所示。
[ ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
现在我们已经成功安装了 Java,我们可以使用以下链接下载 Streama War 包。
wget https://github.com/dularion/streama/releases/download/v1.1/streama-1.1.war
一个 War 包或 web 存档包含一个 web 项目的所有文件。您始终可以使用 Streama 下载页面检查指向最新版本 Streama 的链接。
使用以下命令重命名 war 文件并将其移动到安全位置。
mkdir /opt/streama
mv streama-1.1.war /opt/streama/streama.war
现在您可以立即启动应用程序,运行以下命令。
java -jar /opt/streama/streama.war
按 ctrl+C 停止执行。通过键入以下命令创建一个新目录来存储上传到 Streama 的媒体文件:
mkdir /opt/streama/media
使用以下命令为目录提供适当的权限。
chmod 664 /opt/streama/media
现在我们已经准备好环境,我们可以创建一个 systemd 服务来运行 Streama 服务器。将 Streama 作为服务运行将确保服务器在后台运行。它将在系统重启和进程失败时自动启动。要创建新的 systemd 服务文件,请键入:
nano /etc/systemd/system/streama.service
现在将以下行添加到文本文件中。
[Unit]
Description=Streama Server
After=syslog.target
After=network.target
[Service]
User=root
Type=simple
ExecStart=/bin/java -jar /opt/streama/streama.war
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Streama
[Install]
WantedBy=multi-user.target
保存文件并退出编辑器。您现在可以使用以下命令直接运行 Streama 服务器。
systemctl start streama
要使应用程序在引导时自动启动,请运行以下命令。
systemctl enable streama
要检查服务的状态,请运行以下命令。
systemctl status streama
您可能会看到以下输出。
[ ~]# systemctl status streama
? streama.service - Streama Server
Loaded: loaded (/etc/systemd/system/streama.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2017-06-22 19:02:32 UTC; 19s ago
Main PID: 20053 (java)
CGroup: /system.slice/streama.service
??20053 /bin/java -jar /opt/streama/streama.war
Jun 22 19:02:32 ip-172-31-0-204 systemd[1]: Started Streama Server.
Jun 22 19:02:32 ip-172-31-0-204 systemd[1]: Starting Streama Server...
Jun 22 19:02:37 ip-172-31-0-204 Streama[20053]: INFO streama.Application - Starting Application on ip-172-31-0-204...in /)
Jun 22 19:02:37 ip-172-31-0-204 Streama[20053]: DEBUG streama.Application - Running with Spring Boot v1.3.8.RELEAS...LEASE
Jun 22 19:02:37 ip-172-31-0-204 Streama[20053]: INFO streama.Application - The following profiles are active: production
Jun 22 19:02:47 ip-172-31-0-204 Streama[20053]: Configuring Spring Security Core ...
Jun 22 19:02:48 ip-172-31-0-204 Streama[20053]: ... finished configuring Spring Security Core
Hint: Some lines were ellipsized, use -l to show in full.
默认情况下,Streama 将在端口 8080 上运行。我们可以使用 Apache 创建反向代理,以便 Streama 应用程序将在端口 8080 上运行,但 Apache 将监听端口 80 和 443,这是默认的 HTTP 和 HTTPS 端口。我们还将使用 Let's Encrypt 免费 SSL 保护与服务器的连接。使用以下命令安装 Apache Web 服务器和 mod_ssl。
yum -y install httpd mod_ssl
现在启动 Apache Web 服务器并使用以下命令使其在启动时自动启动。
systemctl start httpd
systemctl enable httpd
现在我们需要从 Let's Encrypt 客户端生成 SSL 证书。 Certbot,这是 Let's Encrypt 证书客户端,在默认的 YUM 存储库中不可用。您需要为此安装 EPEL 存储库。要安装 EPEL,请键入:
yum -y install epel-release
yum -y update
现在使用以下命令安装 Certbot。
yum -y install python-certbot-apache
完成安装后,运行下面的命令只获取证书。 Let's Encrypt 客户端在提供证书之前检查域权限。因此,请确保您的域指向服务器的 IP 地址。
certbot certonly --apache -d streama.yourdomain.com
上述命令将运行 Certbot 实用程序以仅获取证书。 Certbot 不会安装证书,也不会更改服务器上的任何配置。它可能会询问您在身份验证期间使用哪个 SSL 配置,请选择 ssl.conf。最后,提供您的电子邮件地址并接受条款和条件。生成证书后,它们很可能存储在以下目录中。
/etc/letsencrypt/live/streama.yourdomain.com
其中 streama.yourdomain.com 是您的实际域。在该目录中,您会找到 cert.pem,这是您域的 SSL 证书和 privkey.pem,这是您的 SSL 证书的私钥。
Let's Encrypt SSL 在 90 天后过期,因此建议为您的证书设置自动续订。运行以下命令以打开您的 crontab 文件。
crontab -e
Enter the following line into the crontab file.
30 1 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
上述 cron 作业将在每周一凌晨 1:30 自动运行,如果您的证书到期,它将自动更新它们。
现在我们的 SSL 证书已经生成,继续为您的应用程序创建一个新的虚拟主机。键入以下命令以创建新的虚拟主机。
nano /etc/httpd/conf.d/streama.yourdomain.com.conf
将 streama.yourdomain.com 替换为您的实际域。将以下行添加到文件中。
<VirtualHost *:80>
ServerName streama.yourdomain.com
Redirect permanent / https://streama.yourdomain.com/
TransferLog /var/log/httpd/streama.yourdomain.com_access.log
ErrorLog /var/log/httpd/streama.yourdomain.com_error.log
</VirtualHost>
<VirtualHost *:443>
ServerName streama.yourdomain.com
ServerAdmin
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/streama.yourdomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/streama.yourdomain.com/privkey.pem
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
TransferLog /var/log/httpd/streama.yourdomain.com_ssl_access.log
ErrorLog /var/log/httpd/streama.yourdomain.com_ssl_error.log
</VirtualHost>
在上面的配置中,将 streama.yourdomain.com 更改为您的实际域。您还需要确保 SSL 证书的路径正确。如果配置有任何错误,Apache Web 服务器将不会启动。
完成后,重新启动 Apache Web 服务器,以使配置中所做的更改生效。
systemctl restart httpd
此外,您还需要禁用 SELinux。要在不重新启动服务器的情况下临时禁用 SELinux,请运行以下命令。
setenforce 0
要完全禁用 SELinux,您需要编辑 /etc/selinux/config 文件。
nano /etc/selinux/config
找到以下行:
SELINUX=enforcing
将其更改为:
SELINUX=disabled
重新启动服务器后,新配置就会生效。现在您可以启动 Streama 服务(如果未运行),使用以下命令。
systemctl start streama
使用以下命令将防火墙配置为允许端口 80 和 443。
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
您现在可以在您喜欢的浏览器中浏览以下 URL。
https://streama.yourdomain.com
您将看到以下登录界面。使用用户名 admin 和密码 admin 登录。

首次成功登录后,您需要为 Streama 服务器配置一些设置。您将被自动重定向到“设置”页面。

提供我们创建的用于存储媒体的上传目录的路径。提供应用程序的基本 URL。您还可以配置应用程序的应用程序名称和徽标。完成后单击保存设置以保存设置。您现在可以访问仪表板。

要添加新的电视节目或电影,请单击“管理内容”选项卡。

您可以单击“管理内容”页面上的“文件管理器”选项卡来管理文件。

您现在可以使用 Streama 来播放您喜爱的电视节目和电影。