• SwitchHosts 一个修改、管理、切换多个 hosts 方案的开源工具

    Hosts 相关的小工具着实不少,大家需求最多的肯定是 hosts 切换工具了。SwitchHosts! 是一款可以方便你管理和一键切换多个 hosts 方案的免费开源工具,跨平台支持 Windows、macOS 和 Linux 系统。 SwitchHosts官网:https://oldj.github.io/SwitchHosts/#cn SwitchHosts 除了可以帮助你快速切换不同的 hosts 设置、编辑 hosts 文件外,它还有着一些很不错的特性,比如: 免费、开源、支持三大操作系统 系统托盘快速「一键切换」不同的 hosts 方案 支持 hosts 文件语法高亮,可以方便用户更直观地阅读和修改 Hosts 内容 编辑 hosts 时,可以点击行号可以对行进行快速注释或取消注释 支持远程 hosts,直接从指定网址读取 hosts 内容,方便多台机器同步 hosts 设置,这是一个很赞的特性! 支持 hosts 配置的导入、导出备份 macOS 系统下可以支持 Alfred workflow 快速切换 基本上,有了 SwitchHosts,你就可以对 hosts 为所欲为了,轻松一键切换毫无鸭梨。而且,远程 hsots 方案也可以非常方便经常换电脑使用的人,配置一次到处使用!这一点也是它的亮点。 不过值得注意的是,由于 SwitchHosts 修改 hosts 文件是属于修改系统文件的行为,比如macOS 和 Linux系统需要输入开机密码,Windows系统下某些安全软件可能会提示“有风险”,有问题的话试试将 SwitchHosts 加入排除列表或者信任列表里即可。 修改 hosts 后不生效怎么解决? 无论是手工修改 hosts 还是使用软件来修改,很多人都会遇到修改 hosts 后不生效的情况。其实,这一般是由于 DNS 缓存的原因导致的。 因为系统为了加快用户打开网站的速度,在首次访问网站成功之后,会把 DNS 解析的结果暂时性地保存在本地缓存 (称为 DNS 缓存) 里一小段时间,如果浏览器在“这段时间里”再次打开同一个网址,则会自动从 DNS 缓存里取出结果,而不会请求远程的 DNS 服务器,也不会查询 hosts 文件,从而节省时间提高打开速度。因此用户会遇到有时修改了 hosts 文件但并不生效的情况,一般这时候我们想办法清空 (刷新) 一下系统的 DNS 缓存即可。 怎样清空 DNS 缓存? 在 Windows 下命令行执行:ipconfig /flushdns 在 macOS 下执行命令:sudo killall -HUP mDNSResponder 如果你使用 Chrome 浏览器,那么可以访问:chrome://net-internals/#dns,然后点击「Clear host cache」按钮来清空浏览器里的 DNS 缓存。 如果这样还不生效,那么只能再试试重启电脑了,一般都OK了。要这样还是不行,可能就是你的 hosts 写错了。

    2021.10.30 浏览:3235
  • PowerDNS 安装与主从节点配置记录

    1.安装mariaDB apt update apt install mariadb-server -y 2.创建数据库表与用户 mysql -u root -p CREATE DATABASE powerdns; GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'CHANGEME'; FLUSH PRIVILEGES; USE powerdns; CREATE TABLE domains ( id INT AUTO_INCREMENT, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, type VARCHAR(6) NOT NULL, notified_serial INT UNSIGNED DEFAULT NULL, account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL, PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE UNIQUE INDEX name_index ON domains(name); CREATE TABLE records ( id BIGINT AUTO_INCREMENT, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(10) DEFAULT NULL, content VARCHAR(64000) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, disabled TINYINT(1) DEFAULT 0, ordername VARCHAR(255) BINARY DEFAULT NULL, auth TINYINT(1) DEFAULT 1, PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX ordername ON records (ordername); CREATE TABLE supermasters ( ip VARCHAR(64) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) CHARACTER SET 'utf8' NOT NULL, PRIMARY KEY (ip, nameserver) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE TABLE comments ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(10) NOT NULL, modified_at INT NOT NULL, account VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL, comment TEXT CHARACTER SET 'utf8' NOT NULL, PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); CREATE TABLE domainmetadata ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, kind VARCHAR(32), content TEXT, PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind); CREATE TABLE cryptokeys ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, flags INT NOT NULL, active BOOL, content TEXT, PRIMARY KEY(id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE INDEX domainidindex ON cryptokeys(domain_id); CREATE TABLE tsigkeys ( id INT AUTO_INCREMENT, name VARCHAR(255), algorithm VARCHAR(50), secret VARCHAR(255), PRIMARY KEY (id) ) Engine=InnoDB CHARACTER SET 'latin1'; CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm); ALTER table cryptokeys add column published BOOL DEFAULT 1 after active; 3.关闭可能回影响占用端口的系统应用 systemctl disable systemd-resolved systemctl stop systemd-resolved 4.开始安装后端 ###Debian 10: echo "deb [arch=amd64] http://repo.powerdns.com/debian buster-auth-master main" | sudo tee /etc/apt/sources.list.d/pdns.list apt install curl wget apt-transport-https gnupg2 -y curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add - apt-get update apt-get install pdns-server pdns-backend-mysql echo ' # MySQL Configuration # Launch gmysql backend launch+=gmysql gmysql-host=localhost gmysql-port=3306 gmysql-dbname=powerdns gmysql-user=powerdns gmysql-password=CHANGEME gmysql-dnssec=yes ' > /etc/powerdns/pdns.d/pdns.local.gmysql.conf systemctl restart pdns systemctl enable pdns 5.关于主从的配置 master ip : 10.1.1.1 master domain:ns1.mmcloud.com slave ip : 10.1.1.2 slave domain:ns2.mmcloud.com master pdns.conf: allow-axfr-ips=10.1.1.2/32 api=yes #用于开启weeb api api-key=CHANGEMEAPIKEY #用于开启weeb api daemon=yes guardian=yes include-dir=/etc/powerdns/pdns.d loglevel=7 master=yes #主从配置 slave=no #主从配置 webserver=yes #用于开启weeb api webserver-address=0.0.0.0 #用于开启weeb api webserver-allow-from=0.0.0.0/0 #用于开启weeb api xfr-cycle-interval=3 #4.5以上需要使用此选项 slave pdns.conf allow-notify-from=10.1.1.1/32 autosecondary=yes #4.5以上需要使用此选项 daemon=yes disable-axfr=yes include-dir=/etc/powerdns/pdns.d loglevel=7 slave=yes slave-cycle-interval=3 #4.5以下需要使用此选项 xfr-cycle-interval=5 #4.5以上需要使用此选项 slave和master安装方式相同,只有pdns.conf不同与数据库需要插入新的表。 mysql -u root -p USE powerdns; insert into supermasters values ('10.1.1.1', 'ns2.mmcloud.com', 'admin'); eixt; service pdns restart 至此你可以使用powerdns admin进行管理服务,添加域名选择master即可,注意域名需要增加相应的NS解析。

    2021.12.20 浏览:1586
  • 如何在Debian桌面/服务器上安装Syncthing

    本教程将向您展示如何在Debian上安装Syncthing。Syncthing是一个免费的点对点连续文件同步程序,允许您跨多个设备同步文件,可用于Linux、BSD、macOS、Windows、Android和Solaris。 它是流行的Resilio Sync(以前称为BitTorrent Sync)应用程序的开源替代方案。在一台机器上创建、修改或删除文件将自动复制到其他设备。Syncthing不会将文件上传到Nextcloud这样的中央服务器,而是直接在设备之间交换数据。在设备之间传输时,所有数据都会使用TLS加密。 通过Deb官方存储库在Debian上安装Syncthing 使用curl下载GPG密钥,然后使用apt密钥导入密钥。 sudo apt get安装curl-shttps://syncthing.net/release-key.txt| sudo apt按键添加- 如果在终端中看到OK,则表示GPG密钥已成功导入。然后使用以下命令添加正式的deb存储库。 回声“黛布”https://apt.syncthing.net/syncthing stable“| sudo tee/etc/apt/sources.list.d/syncthing.list 由于该存储库使用https,我们需要安装apt transport https包,以便apt包管理器可以与该存储库建立https连接。 sudo apt get安装apt传输https 更新本地包索引并在Debian上安装syncthing。 sudo-apt-get-update sudo-apt-get-install-syncthing 使用Systemd将Syncthing设置为系统服务 官方Syncthing deb包附带所需的systemd服务文件。在/lib/systemd/system/directory下,您将找到一个[email ;protected]文件。通过运行以下命令,使syncthing在启动时自动启动。用实际用户名替换用户名。 sudo systemctl启用[电子邮件和#160;受保护]用户名。服务 上述命令将创建指向[email ;protected]文件的符号链接。 从/etc/systemd/system/multi-user创建符号链接。目标想要/[email ;protected]到/lib/systemd/system/[email ;protected] 现在,我们可以使用以下命令启动Syncthing服务。 sudo systemctl start[电子邮件和#160;受保护]用户名。服务 检查状态 systemctl状态[电子邮件和#160;受保护]用户名。服务 输出:   提示:如果上述命令没有立即退出,请按Q键重新控制终端。 我们可以看到Syncthing autostart已启用并且正在运行。 syncthing systemd服务在/home/username/下创建配置文件。config/syncthing/和一个文件夹/home/username/Sync作为默认的同步文件夹。主配置文件是/home/username/。config/syncthing/config。xml。 在其他操作系统上安装Syncthing 转到Syncthing下载页面,在Windows、macOS、BSD、Android等其他操作系统上安装Syncthing。 打开防火墙中的端口22000 Syncthing使用端口22000与对等方通信。如果您的计算机或服务器启用了UFW防火墙,则需要使用以下命令允许端口22000。 sudo ufw允许22000/tcp 访问Debian Syncthing Web界面 默认情况下,Syncthing服务监听127.0.0.1:8384。现在,在Web浏览器的地址栏中,键入127.0.0.1:8384以访问Syncthing Web界面。您可以添加其他同步设备并与它们共享文件夹。   如果在远程Debian服务器上安装Syncthing,则可以通过编辑配置文件来启用对Syncthing web界面的远程访问。 nano/home/username/。config/syncthing/config。xml 找到下面两行。 &lt;gui enabled=“true”tls=“false”debug=“false”&gt&书信电报;地址&gt;127.0.0.1:8384&lt/地址&gt; 将tls=“false”更改为tls=“true”,这样HTTP通信将被加密。并将127.0.0.1更改为Debian服务器的公共IP地址。保存并关闭文件。重新启动Syncthing以使更改生效。 sudo systemctl start[电子邮件和#160;受保护]用户名。服务 现在在web浏览器中键入服务器ip地址:8384以访问Syncthing web界面。显然,您需要使用Debian服务器的真实IP地址。您将被要求设置用户名和密码以保护Syncthing web界面。 您还可以使用Nginx或Apache设置反向代理以访问web用户界面,本教程稍后将对此进行解释。 开始在设备之间同步文件 一旦有两台设备运行Syncthing,我们就可以开始在它们之间同步文件了。 在Syncthing web界面中,单击操作&gt;在右上角显示ID。您将看到设备ID,它是一长串字母和数字。QR码也是设备ID,用于在智能手机上配置Syncthing。   复制设备ID,然后打开第二台设备的Syncthing Web界面,单击右下角的添加远程设备。然后粘贴设备ID并为设备命名。点击保存按钮。   现在,第二台设备将尝试连接到第一台设备。在第一台设备上刷新Web界面,您将看到以下消息。单击“添加设备”将第二个设备添加到第一个设备的设备列表中。   现在,这两个设备已连接。 Web界面左侧的一个窗格是默认的同步文件夹(/home/username/sync)。单击“添加文件夹”按钮添加新文件夹。为此文件夹指定一个描述性标签,并设置文件夹路径。   Syncthing作为您自己的用户帐户运行,因此您需要对共享文件夹具有写入权限。如果在共享文件夹时看到以下错误消息,则表示您没有该文件夹的写入权限。 2020-06-21 20:05:49:无法创建文件夹标记:mkdir。stfolder:只读文件系统 您可以使用setfacl授予写入权限。 sudo apt安装acl sudo setfacl-R-mu:username:rx/folder/path/ 在共享选项卡中,选择其他同步设备。   在“高级”选项卡中,可以选择文件夹类型、重新扫描间隔等。   单击“保存”按钮开始同步。另一台设备的Web界面上将显示一条消息。单击“添加”以接收文件。 现在这两台设备正在同步文件。在右边,你可以看到下载速率、上传速率、本地文件夹大小等。 设置反向代理 由于它监听127.0.0.1:8384,Syncthing Web界面仅对来自同一台计算机的连接可用。为了能够从远程计算机访问Syncthing Web界面,我们可以使用Nginx或Apache为Syncthing设置反向代理。 Nginx Nginx是一个非常流行的web服务器和反向代理。如果您更喜欢使用Nginx,请运行以下命令进行安装。 sudo apt安装nginx 然后创建一个服务器配置文件。 sudo nano/etc/nginx/conf.d/syncthing。形态 将以下内容添加到此文件。更换同步器。实例com与您首选的域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;server_name syncthing.example.com;access_log/var/log/nginx/syncthing.access.log;error_log/var/log/nginx/syncthing.error.log;location/{proxy_passhttp://127.0.0.1:8384; 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;} 保存并关闭文件。测试Nginx配置并重新加载Nginx。 sudo nginx-t sudo systemctl reload nginx 将域名指向Debian的IP地址后,在浏览器地址栏中键入域名,就会看到Syncthing Web界面。 如果浏览器无法连接到Syncthing web界面,可能需要在防火墙中打开端口80。例如,如果使用UFW,则运行以下命令。 sudo ufw允许80/tcp 阿帕奇 Apache是众所周知的web服务器,也可以用作反向代理。如果您更喜欢Apache而不是Nginx,请使用以下软件安装: sudo apt安装apache2 启动Apache并启用自动启动。 sudo systemctl启动apache2 sudo systemctl启用apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 现在为Syncthing创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/同步。形态 将以下行复制并粘贴到文件中。更换同步器。实例使用你的真实域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 &lt;虚拟主机*:80&gt;服务器名同步。实例com错误文件404/404。html ProxyPass/http://127.0.0.1:8384/ProxyPassReverse/http://127.0.0.1:8384/ErrorLog${APACHE_LOG_DIR}/syncthing_错误。log CustomLog${APACHE_log_DIR}/syncthing_访问。日志合并&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo是一个敏感的东西。形态 重启Apache sudo systemctl重启apache2 现在,您可以通过syncthing访问Web UI。实例通用域名格式。 如果浏览器无法连接到Syncthing web界面,可能需要在防火墙中打开端口80。例如,如果使用UFW,则运行以下命令。 sudo ufw允许80/tcp 使用HTTPS保护Syncthing Web UI 为了在通过域名访问Syncthing web UI时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。首先,打开防火墙中的端口443。 sudo ufw允许443/tcp 然后运行以下命令安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;protected]-d syncthing。实例通用域名格式 如果使用Apache,请安装Certbot Apache插件。 sudo apt安装python3 certbot apache 并运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d syncthing。实例通用域名格式 哪里 --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 刷新Syncthing Web GUI,您会发现HTTP连接自动重定向到HTTPS安全连接。 启用用户身份验证 默认情况下,任何人都可以在设置反向代理后访问Syncthing web界面。我们可以启用用户身份验证来限制访问。单击右上角的操作按钮,然后选择设置-&gt;桂。 在GUI身份验证用户字段中输入用户名,在GUI身份验证密码字段中输入密码。然后保存你的设置。 请注意,您不需要在Use HTTPS for GUI框上打勾,这使Syncthing能够使用自签名证书。我们已经在Apache/Nginx中安装了一个受主流Web浏览器信任的有效证书。 保存更改后,请重新启动Syncthing systemd服务,否则在重新加载页面时可能会看到502坏网关错误。 sudo systemctl restart[email ;protected]用户名。服务 现在使用新用户名和密码登录Syncthing Web界面。 仅发送&amp;只接收文件夹 在Syncthing中共享文件夹时,可以转到“高级”选项卡,从三种文件夹类型中选择一种: 发送&amp;接收(默认) 只发送 只收 您可能希望选择仅发送或仅接收。例如,如果您有三台计算机:A、B和C,并且希望将计算机A和B上的文件夹聚合到计算机C上的单个文件夹中。则可以将文件夹类型设置为仅在计算机C上接收。这样,计算机C将所有文件都放在单个文件夹中。计算机A和B仍保留原始文件。不多也不少。 当您在计算机C上使用相同的文件夹路径时,Syncthing可能会警告您“此路径是现有文件夹的子目录”。您可以忽略此警告,因为您有一个只接收文件夹。不会删除文件夹中的现有文件。 通过中继服务器同步 如果两个Syncthing实例无法相互连接,则Syncthing将尝试使用中继服务器传输文件。 它们无法相互连接的一个常见原因是其中一个位于NAT设备后面,并且没有配置端口转发。配置端口转发后,可以禁用中继服务器。下面是方法。单击编辑按钮并选择高级选项卡,将地址从动态更改为tcp://ip-address:22000.当然,你需要使用你真正的IP地址。 故障排除 如果Syncthing实例无法相互连接,可以使用ss(socket stats)实用程序检查Syncthing是否正在TCP端口22000上侦听。 sudo ss-lnpt | grep syncthing 从下面的屏幕截图可以看到,我的Syncthing正在监听端口8384(web界面)和22000(对等连接)。 如果没有,您可以编辑配置文件。 纳米~/。config/syncthing/config。xml 找到下面这行。 &lt;listenAddress&gt;违约&lt/listenAddress&gt; 将默认值更改为tcp://your-IP-address. &lt;listenAddress&gt;tcp://12.34.56.78</listenAddress&gt; 保存并关闭文件。然后重启同步。 sudo systemctl restart[email ;protected]用户名。服务 错过了比赛。stfoler文件 这个Syncthing需要stfoler文件才能工作。这是一个空文件。你不需要添加任何内容。如果。同步文件夹下缺少stfolder文件,则同步将停止。您可以创建以下Cron作业来自动创建文件。 @每小时触摸/path/to/sync/folder/。stfolder 如果文件丢失,触摸命令将创建该文件。如果文件已经存在,它将更新文件时间戳。 收尾 我希望本教程能帮助您在Debian上安装和使用Syncthing。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:1005
  • 在Debian 10 Buster上与YouPHPTube一起运行自己的视频共享网站

    本教程将向您展示如何在Debian 10 Buster上使用YouPHPTube运行自己的视频共享网站。YouPHPTube是YouTube、Vimeo等视频共享网站的开源、自托管替代方案。使用YouPHPTube,您可以将视频上传到自己的服务器,并与互联网共享。 YouPHPTube功能 无限和同步的直播流,你可以有无限的用户连接到每个直播流。 直接从互联网导入和编码其他网站的视频 从本地视频目录批量编码 制作私人视频 与Youtube完全集成的功能,允许您将视频与Youtube同步 将多种格式的多媒体文件转换为MP4、WebM和MP3文件 支持Amazone S3(简单存储服务) 响应性网站布局。YouPHPTube在任何设备上都令人难以置信。(您可以选择YouTube或Netfilx样式的布局。) 用户频道和用户播放列表 订阅你喜欢的频道 您可以使用YouPHPTube统计信息中的最新指标和报告来监控视频的性能。 使用插件扩展站点功能。 搜索引擎优化 iOS和安卓应用可用 YouPHPTube服务器要求 首先,你应该知道,对于视频共享网站来说,单核CPU是不可行的,因为编码过程会占用大量CPU资源。 然后根据站点的用户数量选择服务器规格。 如果你只想用它来分享你自己的视频,你需要一个至少有2个CPU核和4GB内存的服务器。您可以从Contabo购买功能强大的VPS(虚拟专用服务器),成本很低。 如果你希望你的站点有几十个用户,那么你可以考虑Cababo特大VPS,它有10个CPU内核,60GB RAM,1Gb/s端口速度,1.6TB磁盘空间,无限流量,但成本只有26.99欧元/月。 当你的网站增长超过这个范围时,你应该购买一台专用服务器。 在Debian 10 Buster上安装YouPHPTube的软件要求 YouPHPTube需要PHP和MySQL/MariaDB。要学习本教程,您应该已经设置了灯堆栈或LEMP堆栈。如果您更喜欢使用ApacheWeb服务器,请安装LAMP堆栈。 如何在Debian 10 Buster上安装LAMP(Apache、MariaDB、PHP)堆栈 如果您更喜欢使用Nginx web服务器,请安装LEMP stack。 如何在Debian 10 Buster上安装LEMP(Nginx、MariaDB、PHP)堆栈 注:Nginx对YouPHPTube的支持只是实验性的。如果使用Nginx,可能会出现问题。 你还需要一个域名。我在namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。 YouPHPTube由两部分组成。 主要部分是前端拖缆服务器,它允许用户观看现有视频。 另一部分是编码器,它允许用户上传视频。 公共编码器使用域名编码器。youphptube。通用域名格式。如果你不想让用户在上传视频时离开你的网站,你需要设置你的私人编码器。在本文中,我将向您展示如何进行。不用麻烦了,我们开始吧。 步骤1:在Debian 10 Buster服务器上下载YouPHPTube 通过SSH登录Debian 10 Buster服务器。然后转到web根目录。 cd/var/www/ 从Github克隆YouPHPTube拖缆存储库。 sudo apt安装git sudo git clonehttps://github.com/YouPHPTube/YouPHPTube.git 然后进入目录。 cd YouPHPTube/ 从Github克隆YouPHPTube编码器存储库。 sudo git克隆https://github.com/YouPHPTube/YouPHPTube-Encoder.git 它将另存为YouPHPTube编码器。我们将其重命名为upload,以便用户在上传视频时更好地了解此URL的用途。 sudo mv YouPHPTube编码器上传 接下来,我们需要将www数据(web服务器用户)作为web根的所有者。 sudo chown www-data:www-data/var/www/YouPHPTube/-R 第2步:安装依赖项 YouPHPTube使用FFmpeg对视频进行编码。我们可以从默认的Debian存储库轻松安装FFmpeg。 sudo apt安装ffmpeg 要在多媒体文件中读写元信息,我们需要安装libimage exiftool perl包。 sudo apt安装libimage exiftool perl 您还需要安装一些常见的PHP扩展。 sudo apt安装php7。3-cli php7。3-常见php7。3-json php7。3-opcache php7。3-readline php7。3-卷曲php7。3-gd php7。3-xml 要从其他网站获取视频,我们需要安装YouTube DL。虽然它包含在Debian存储库中,但已经过时了。我们将从Python包索引安装YouTube DL,该索引始终包含最新版本的YouTube DL。 sudo apt install python3 pip sudo-H pip3 install youtube dl 使用最新版本非常重要,否则可能无法从其他网站下载视频。我们可以创建一个Cron作业来自动检查并安装最新版本。 sudo crontab-e 在Crontab文件的末尾添加以下行,尝试每天升级YouTube DL。 @每日sudo-H pip3安装——升级youtube dl&gt/dev/null 第3步:在MariaDB中创建数据库和用户 使用以下命令登录MariaDB数据库服务器。由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB根密码。我们只需要在mysql命令前面加上sudo。 sudo mysql 然后为YouPHPTube创建一个数据库。本教程将数据库命名为YouPHPTube。你可以用任何你喜欢的名字。 创建数据库YouPHPTube; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户youphptube@localhost由“您的密码”标识; 授予此用户在youphptube数据库上的所有权限。 授予YouPHPTube上的所有特权。*到youphptube@localhost; 我们还需要为编码器创建一个单独的数据库。 创建数据库YouPHPTubeEncoder; 为此数据库创建一个用户。 创建用户encoder@localhost由“您的密码”标识; 授予特权。 授予YouPHPTubeEncoder的所有特权。*到encoder@localhost; 刷新特权表并退出。 同花顺特权;出口 第4步:设置Web服务器 我们可以使用Apache或Nginx web服务器。 阿帕奇 如果您喜欢Apache,可以使用命令行文本编辑器(如Nano)为YouPHPTube创建一个虚拟主机文件。 sudo nano/etc/apache2/sites available/youphptube。形态 将以下文本放入文件中。用实际数据替换红色文本。我在本教程中使用了一个子域。如果你愿意,你可以使用你的主域名。不要忘记在DNS记录管理器中为域名设置DNS记录。还要注意,文档根目录区分大小写,不应在末尾添加正斜杠。 &lt;虚拟主机*:80&gt;服务器名管。你的地盘。com DocumentRoot/var/www/YouPHPTube&lt;目录/var/www/YouPHPTube&gt;目录索引。php选项+FollowSymLinks AllowOverride All需要全部授予&lt/目录&gt;ErrorLog${APACHE_LOG_DIR}/youphptube。错误log CustomLog${APACHE_log_DIR}/youphptube。通道日志合并&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite youphptube。形态 我们需要启用重写模块。 sudo a2enmod重写 重新启动Apache以使更改生效。 sudo systemctl重启apache2 现在参观地铁。你的地盘。com,您将被重定向到安装向导页面(tube.yourdomain.com/install/index.php)。如果看到的是默认的Apache页面而不是安装向导,则需要禁用默认的虚拟主机。 sudo A2000默认值。形态 然后重启Apache。 在安装向导中输入任何信息之前,我们需要启用HTTPS。 Nginx 如果您更喜欢Nginx,请创建一个youphptube。conf文件位于/etc/nginx/conf.d/目录中。 sudo nano/etc/nginx/conf.d/youphptube。形态 将以下文本放入文件中。用实际数据替换红色文本。我在本教程中使用了一个子域。如果你愿意,你可以使用你的主域名。不要忘记在DNS记录管理器中为域名设置DNS记录。还要注意,文档根目录区分大小写。 服务器{listen 80;server_name tube.yourdomain.com;root/var/www/YouPHPTube;index index.php index.html index.htm;charset utf-8;客户端_max_body_size 2G;access_log/var/log/nginx/YouPHPTube.access.log;error_log/var/log/nginx/YouPHPTube.error.log;location~/.php${fastcgi_分割路径_info^(+/.php)(/)$; fastcgi_pass unix:/run/php/php7。3-fpm。短袜fastcgi_索引。php;包括fastcgi_参数;fastcgi_参数脚本_文件名$document_root$fastcgi_脚本_name;}#在中翻译Apache重写规则。htaccess文件到Nginx重写规则位置/{rewrite^/$/view/last;}位置/引导{rewrite^/bootstrap/(.+)$/view/bootstrap/$1 last;}location/js{rewrite^/js/(.+)$/view/js/$1 last;}位置/css{rewrite^/css/(.+)$/view/css/$1 last;}位置/img{rewrite^/img/(.+)$/view/img/$1 last;}位置/页面{rewrite^/page/([0-9]+)/?$/view/?page=$1 last;}位置/videoOnly{rewrite^/videoOnly/?$/view/?type=video last;}位置/audioOnly{rewrite^/audioOnly/?$/view/?type=audio last;}location=/download{rewrite^(.*)$/view/downloadExternalVideo.php last;}location=/downloadNow{rewrite^(.*)$/objects/downloadVideo.php last;}location=/getDownloadProgress{rewrite^(.*)$/objects/downloadVideoProgress.php last;}location=/about{rewrite^(.*)$/view/about.php last;}location=/contact{rewrite^(.*)$/view/contact.php last;}location=/sendmail{rewrite^(.*)$/objects/sendmail.json.php last;}location=/captcha{rewrite^(.*)$/objects/getCaptcha.php last;}位置/监视器{rewrite^/monitor/(.+)$/objects/ServerMonitor/$1 last;}位置/cat{rewrite^/cat/([A-Za-z0-9-]+)/?$/view/?catName=$1 last;}位置/视频{rewrite^/video/([A-Za-z0-9-.]+)/?$/查看/?videoName=$1 last;}位置/视频嵌入{rewrite^/videoembedded/([A-Za-z0-9-.]+)/?$/查看/视频嵌入。php?videoName=$1 last;}location=/upload{rewrite^(.*)$/view/mini upload form/last;}location=/fileUpload{rewrite^(.*)$/view/mini upload form/upload.php last;}location/uploadStatus{rewrite^/uploadStatus/view/mini upload form/videoConversionStatus.php last;}location=/user{rewrite^(.*)$/view/user.php last;}location=/users{rewrite^(.*)$/view/managerUsers.php last;}位置=/用户。json{rewrite^(.*)$/objects/users.json.php last;}location=/updateUser{rewrite^(.*)$/objects/userUpdate.json.php last;}location=/savePhoto{rewrite^(.*)$/objects/userSavePhoto.php last;}location=/addNewUser{rewrite^(.*)$/objects/userAddNew.json.php last;}location=/deleteUser{rewrite^(.*)$/objects/userDelete.json.php last;}location=/recoverPass{rewrite^(.*)$/objects/userRecoverPass.php last;}location=/saveRecoverPassword{rewrite^(.*)$/objects/userRecoverPassSave.json.php last;}location=/signUp{rewrite^(.*)$/view/signUp.php last;}location=/createUser{rewrite^(.*)$/objects/userCreate.json.php last;}location=/usersGroups{rewrite^(.*)$/view/managerUsersGroups.php last;}location=/usersGroups。json{rewrite^(.*)$/objects/usersGroups.json.php last;}location=/addNewUserGroups{rewrite^(.*)$/objects/userGroupsAddNew.json.php last;}location=/deleteUserGroups{rewrite^(.*)$/objects/userGroupsDelete.json.php last;}location=/ads{rewrite^(.*)$/view/managerAds.php last;}location=/addNewAd{rewrite^(.*)$/objects/video_adsAddNew.json.php last;}location=/ads.json{rewrite^(.*)$/objects/video_ads.json.php last;}location=/deleteVideoAd{rewrite^(.*)$/objects/video_adDelete.json.php last;}location/adClickLo{rewrite^/adClickLog/objects/video_adClickLog.php last;}location=/categories{rewrite^(.*)$/view/managerCategories.php last;}位置=/类别。json{rewrite^(.*)$/objects/categories.json.php last;}location=/addNewCategory{rewrite^(.*)$/objects/categoryAddNew.json.php last;}location=/deleteCategory{rewrite^(.*)$/objects/categoryDelete.json.php last;}location=/orphanFiles{rewrite^(.*)$/view/orphanFiles.php last;}location=/mvideos{rewrite^(.*)$/view/managerVideos.php last;}地点=/视频。json{rewrite^(.*)$/objects/videos.json.php last;}location=/deleteVideo{rewrite^(.*)$/objects/videoDelete.json.php last;}location=/addNewVideo{rewrite^(.*)$/objects/videoAddNew.json.php last;}location=/refreshVideo{rewrite^(.*)$/objects/videoRefresh.json.php last;}location=/setStatusVideo{rewrite^(.*)$/objects/videoStatus.json.php last;}location=/reencodeVideo{rewrite^(.*)$/objects/videoReencode.json.php last;}location=/addViewCountVideo{rewrite^(.*)$/objects/videoAddViewCount.json.php last;}location=/saveComment{rewrite^(.*)$/objects/commentAddNew.json.php last;}location/comments{rewrite^/comments.json/([0-9]+)$/objects/comments.json.php?video_id=$1 last;}location=/login{rewrite^(.*)$/objects/login.json.php last;}location=/logoff{rewrite^(.*)$/objects/logoff.php last;}location=/like{rewrite^(.*)$/objects/like.json.php?like=1 last;}location=/loke{rewrite^(.*)$/objects/like.json.php?like=-1 last;}位置/更新{rewrite^/update/?$/update/update.php last;}location=/siteConfigurations{rewrite^(.*)$/view/configurations.php last;}location=/updateConfig{rewrite^(.*)$/objects/configurationUpdate.json.php last;}location=/charts{rewrite^(.*)$/view/charts.php last;}位置=/upload/index。php{rewrite^(.*)$/upload/view/index.php last;}location=/upload/isAdmin{rewrite^(.*)$/upload/view/isAdmin.php last;}location=/upload/removeStreamer{rewrite^(.*)$/upload/view/removeStreamer.php last;}location=/upload/priority{rewrite^(.*)$/upload/view/priority.php last;}location=/upload/status{rewrite^(.*)$/upload/view/status.php last;}location=/upload/serverStatus{rewrite^(.*)$/upload/view/status.php?serverStatus=1 last;}location=/upload/upload{rewrite^(.*)$/upload/view/upload.php last;}位置=/upload/listFiles。json{rewrite^(.*)$/upload/view/listFiles.json.php last;}location=/upload/deleteQueue{rewrite^(.*)$/upload/view/deleteQueue.php last;}location=/upload/saveConfig{rewrite^(.*)$/upload/view/saveConfig.php last;}位置=/upload/youtubeDl。json{rewrite^(.*)$/upload/view/youtubeDl.json.php last;}位置=/upload/send。json{rewrite^(.*)$/upload/view/send.json.php last;}位置=/上传/拖缆。json{rewrite^(.*)$/upload/view/streamers.json.php last;}位置=/upload/queue。json{rewrite^(.*)$/upload/view/queue.json.php last;}location=/upload/queue{rewrite^(.*)$/upload/view/queue.php last;}location=/upload/login{rewrite^(.*)$/upload/objects/login.json.php last;}location=/upload/logoff{rewrite^(.*)$/upload/objects/logoff.json.php last;}位置/上传/{rewrite“^/getImage/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})$”/upload/objects/getImage。php?base64Url=$1&amp;格式=上次2美元;重写“^/getImageMP4/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})/([0-9.]+)$”/上传/objects/getImageMP4。php?base64Url=$1&amp;格式=$2&amp;时间=上次3美元;}location/upload/getSpiritsFromVideo{rewrite^/getSpiritsFromVideo/([A-Za-z0-9=/])/([0-9]+)/([0-9]+)$/upload/objects/getSpiritsFromVideo.php?base64Url=$1&amp;tileWidth=$2&amp;totalClips=$3 last;}location/upload/getLinkInfo{rewrite^/getLinkInfo/([A-Za-z0-9=/]+)$/upload/objects/getLinkInfo.json.php?base64Url=$1 last;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在参观地铁。你的地盘。com,您将被重定向到安装向导页面(tube.yourdomain.com/install/index.php)。在安装向导中输入任何信息之前,我们需要启用HTTPS。 步骤5:启用HTTPS 为了加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10 Buster服务器上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果使用Apache,还需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 并运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d tube。你的地盘。通用域名格式 如果使用Nginx,请安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;protected]-d tube。你的地盘。通用域名格式 哪里 --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 第6步:使用安装向导完成安装 现在去看电视。你的地盘。com和安装向导将出现。在左侧,您可以看到服务器是否满足要求。 如果使用Nginx,可以忽略以下消息。 您的服务器是nginx/1.14.2,必须安装Apache。 如您所见,PHP post_max_大小应至少为100M,upload_max_文件大小应至少为100M。我们需要编辑php。ini文件来更改这两个值。如果使用ApacheWeb服务器,那么 sudo nano/etc/php/7.3/apache2/php。伊尼 如果将Nginx与PHP-FPM一起使用,则需要编辑PHP的FPM版本。ini文件。 sudo nano/etc/php/7.3/fpm/php。伊尼 找到下面两行。 post_max_size=8M上传_max_filesize=2M 根据要上传的视频文件大小更改值。例如,如果允许上传1G视频文件,则 post_max_size=1024M上传_max_filesize=1024M 保存并关闭文件。重新启动Apache以使更改生效。 sudo systemctl重启apache2 如果将Nginx与PHP-FPM一起使用,则重新启动PHP-FPM。 sudo systemctl重新启动php7。3-fpm 现在刷新YouPHPTube安装向导页面。你的服务器应该通过所有要求。现在在右边,你可以输入你的视频网站的标题。输入之前创建的YouPHPTube数据库名称、用户和密码。(注意:应该使用主数据库,而不是编码器数据库。还要注意区分大小写。)并设置系统管理员密码。 &nbsp; 单击立即安装按钮,YouPHPTube应该安装成功。 现在我们需要删除/var/www/YouPHPTube/install/目录。 sudo rm/var/www/YouPHPTube/install/-r 单击转到主页按钮,您将看到YouPHPTube主页。 您可以单击左侧的下拉菜单,以管理员用户身份登录,并使用刚才设置的密码。 第7步:设置编码器 去https://tube.yourdomain.com/upload/.您将被重定向到编码器设置向导。如果没有自动重定向,则可以手动输入安装向导URL。 https://tube.yourdomain.com/upload/install/index.php/ 左侧将显示服务器是否满足YouPHPTube编码器的要求。 如果使用Nginx,可以忽略以下消息。 您的服务器是nginx/1.14.2,必须安装Apache。 如您所见,PHP最大执行时间应至少为7200,PHP内存限制应至少为512M。我们需要编辑php。ini文件来更改这两个值。如果使用ApacheWeb服务器,那么 sudo nano/etc/php/7.3/apache2/php。伊尼 如果将Nginx与PHP-FPM一起使用,则需要编辑PHP的FPM版本。ini文件。 sudo nano/etc/php/7.3/fpm/php。伊尼 找到下面两行。 最大执行时间=30内存限制=128M 更改值。 最大执行时间=7200内存限制=512M 请注意,如果稍后的视频编码中途停止,则需要增加最大执行时间,或升级CPU。 保存并关闭文件。重新启动Apache以使更改生效。 sudo systemctl重启apache2 如果将Nginx与PHP-FPM一起使用,则重新启动PHP-FPM。 sudo systemctl重启php7。3-fpm 现在刷新YouPHPTube编码器安装向导页面。你的服务器应该通过所有要求。现在,在右侧,您需要输入之前创建的YouPHPTubeEncoder数据库名称、用户和密码。注意区分大小写,并输入拖缆站点的管理员密码。 &nbsp; 单击立即安装按钮,将安装YouPHPTube编码器。 删除安装目录。 sudo rm/var/www/YouPHPTube/upload/install/-r 然后转到主页。 第8步:更改编码器URL 默认情况下,YouPHPTube使用公共编码器上传视频。要使用自己的编码器,请在YouPHPTube(而不是YouPHPTube encoder)中以管理员身份登录,然后从左侧管理面板转到管理面板。 转到设置-&gt;网站设置-&gt;高级配置。将编码器URL更改为https://tube.yourdomain.com/upload/.保存设置,清除缓存目录并生成新的站点地图。 现在退出并重新登录。如果你点击右上角的“视频和音频编码”按钮,你将被带到自己的编码器上传视频。需要注意的是,编码速度取决于服务器的CPU能力。 第9步:配置SMTP 要发送电子邮件(如帐户注册、密码重置等),需要配置SMTP服务器。如果您想使用自己的邮件服务器向客户发送电子邮件,请查看以下文章以设置自己的邮件服务器。 如何使用Modoboa在Debian 9上快速设置电子邮件服务器 如果你想使用SMTP中继服务,我推荐Mailjet。您可以按照下面的教程在YouPHPTube服务器上设置SMTP中继。 如何使用Mailjet在Debian上设置Postfix SMTP中继 启用TCP BBR 对于视频流服务器,建议按照本文中的说明在Linux内核中启用TCP BBR拥塞控制算法。(它是为Ubuntu编写的,但也适用于Debian 10 Buster。) 如何通过启用TCP BBR轻松提升Ubuntu 16.04/18.04网络性能 移动应用 你可以在谷歌Play Store或苹果商店的YPT Mobile上搜索YouPHPTube,下载免费的android应用程序或iOS应用程序。白标移动应用需要付费许可证。 故障排除 如果YouPHPTube主页未能加载一些CSS和JavaScript资源, 很可能您在Apache或Nginx虚拟主机文件中为web根目录添加了额外的正斜杠。而不是使用 DocumentRoot/var/www/YouPHPTube/ 你应该使用 DocumentRoot/var/www/YouPHPTube 如果编码器工作不正常,可以在/var/www/YouPHPTube/upload/videos/YouPHPTube上查看日志文件。日志 其他花絮 编码视频时,可以选择分辨率(低分辨率、SD分辨率、HD分辨率)。如果您将YouPHPTube用作个人视频流网站,我建议您选择高清分辨率,这样可以减少编码时间并节省磁盘空间。如果已经将视频编码为所有3种分辨率,则可以转到YouPHPTube视频目录(/var/www/YouPHPTube/videos),删除低分辨率和SD分辨率的视频。 cd/var/www/YouPHPTube/videos/sudo rm*Low。mp4 sudo rm*SD。mp4 如何从视频网站下载所有视频 您可以使用youtube dl命令行实用程序下载所有视频。首先,你需要进入YouPHPTube仪表板,然后进入视频列表页面并向下滚动到底部,单击下载你的视频列表(permalink.txt文件)按钮。您将看到所有视频的URL列表。 接下来,打开一个终端,用文本编辑器创建一个txt文件,从网页复制URL并粘贴到文件中。然后可以运行以下命令下载视频。替换视频列表。使用您自己的文件名。 youtube dl-视频列表。txt 收尾 我希望本教程能帮助您在Debian 10 Buster服务器上安装YouPHPTube。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:601
  • 在Debian 10 Buster上设置OpenStreetMap(OSM)平铺服务器

    OpenStreetMap(OSM)是一个用户贡献的、可自由编辑的世界地图。你可以把它看作是谷歌地图的开源和自托管替代品。本教程将向您展示如何在Debian 10上构建自己的OpenStreetMap tile服务器,这样您就不必使用专有的地图服务。 OpenStreetMap功能 OpenStreetMap的数据覆盖了全世界,因此可以方便地支持任何国家或每个国家的用户。 OpenStreetMap每天每小时每分钟都会更新,您可以实时获得这些更新。 OpenStreetMap数据是免费和开放的,不收取订阅费和页面浏览费。 OpenStreetMap数据丰富而详细,包含大量与地面人员相关的数据——收集数据的人员。 先决条件/硬件要求 所需的RAM和磁盘空间取决于要使用哪个国家的地图。例如 英国地图至少需要12G内存和100GB磁盘空间。 整个行星地图至少需要32G RAM和1TB SSD(固态驱动器)。用旋转硬盘来绘制整个地球地图是不可行的。 如果要在web浏览器中预渲染分幅以加快地图加载速度,则需要更多磁盘空间,这是强烈建议的。查看此磁贴磁盘使用情况页面,查看预渲染磁贴需要多少磁盘空间。例如,如果要为行星地图预渲染从缩放级别0到缩放级别15的平铺,则需要额外的460 GB磁盘空间。 另外需要注意的是,将大型地图数据(如整个地球)导入PostgreSQL数据库需要很长时间。考虑添加更多的RAM,特别是使用SSD,而不是旋转硬盘来加速导入过程。 如果你打算主持整个世界地图,我建议你从康塔博购买超大VPS,康塔博以 10核CPU 60 GB内存 1.6 TB英特尔Optane SSD 每月只需26.99欧元。 第一步:升级软件 在服务器上进行任何主要工作之前,更新服务器软件始终是一种好的做法。通过SSH登录服务器并运行以下命令。 sudo-apt更新;sudo-apt升级 如果遇到以下错误, perl:警告:退回到备用语言环境(“en_US.UTF-8”)。perl:警告:设置区域设置失败。perl:警告:请检查您的区域设置:LANGUAGE=(unset)、LC_ALL=(unset)、LC_MONETARY=“zh_CN.UTF-8”、LC_ADDRESS=“zh_CN.UTF-8”、LC_TELEPHONE=“zh_CN.UTF-8”、LC_NAME=“zh_CN.UTF-8”、LC_IDENTIFICATION=“zh_CN.UTF-8”、LC_NUMERIC=“zh_CN.UTF-8”、LC_PAPER=“zh_CN.UTF-8”,LANG=“en_US.UTF-8”支持并安装在您的系统上。perl:警告:退回到备用语言环境(“en_US.UTF-8”)。 这意味着您的本地计算机正在尝试将locale环境变量发送到debian VPS,但debian没有安装locale。要解决此问题,请编辑SSH守护程序配置文件。 sudo nano/etc/ssh/sshd_config 向下滚动到最后,您将看到下面一行,它告诉SSH守护进程从SSH客户端接受环境变量。 接受朗信用证_* 将其更改为以下内容,使SSH守护进程不接受环境变量。 接受号 保存并关闭文件。然后重启SSH守护进程。 sudo systemctl重启ssh 注销并重新登录。您将不再看到区域设置错误。 第2步:安装PostgreSQL数据库服务器和PostGIS扩展 我们将使用PostgreSQL存储地图数据。PostGIS是PostgreSQL的地理空间扩展。运行以下命令来安装它们。 sudo apt安装postgresql postgresql contrib postgis postgresql-11-postgis-2.5 PostgreSQL数据库服务器将自动启动并侦听127.0.0.1:5432。安装过程中将在操作系统上创建postgres用户。它是PostgreSQL数据库服务器的超级用户。默认情况下,该用户没有密码,也不需要设置密码,因为您可以使用sudo切换到postgres用户并登录到PostgreSQL server。 sudo-u postgres-i 现在可以创建PostgreSQL数据库用户osm。 createuser osm 然后创建一个名为gis的数据库,同时让osm成为数据库的所有者-UTF8指定数据库中使用的字符编码方案为UTF8。 createdb-E UTF8-O osm gis 接下来,为gis数据库创建postgis和hstore扩展。 psql-c“创建扩展postgis-d gis psql-c“创建扩展存储-三维地理信息系统 将osm设置为表所有者。 psql-c“将表空间参考系统所有者更改为osm-三维地理信息系统 退出postgres用户。 出口 在操作系统上创建osm用户,以便平铺服务器可以作为osm用户运行。以下命令将创建一个没有密码的系统用户。 sudo adduser——系统osm 第3步:下载地图样式表和地图数据 切换到osm的主目录。 cd/home/osm/ 使用git将最新的CartoCSS地图样式表下载到osm用户的主目录。 sudo apt安装git git克隆https://github.com/gravitystorm/openstreetmap-carto.git 如果在运行上述命令时看到“权限被拒绝”错误,则可以使用以下命令授予权限。用真实用户名替换用户名。 sudo apt install acl sudo setfacl-R-mu:username:rwx/home/osm/ 接下来,运行以下命令以PBF(ProtoBufBinary)格式下载整个行星(50G)的地图数据。 wget-chttp://planet.openstreetmap.org/pbf/planet-latest.osm.pbf 请注意openstreetmap的下载速度。org当前限制为2048kb/s。您可以从另一个镜像下载植物地图,如 wget-chttps://download.bbbike.org/osm/planet/planet-latest.osm.pbf 如果你想要一张各个国家/州/省/市的地图,请访问http://download.geofabrik.de.还有,自行车。org以不同的格式提供了全球200多个城市和地区的摘录。例如,使用以下命令下载英国地图数据(1.1G)。 wget-chttp://download.geofabrik.de/europe/great-britain-latest.osm.pbf 第4步:优化PostgreSQL Server性能 导入过程可能需要一些时间。为了加快这个过程,我们可以调整一些PostgreSQL server设置以提高性能。编辑PostgreSQL主配置文件。 sudo nano/etc/postgresql/11/main/postgresql。形态 首先,我们应该更改共享缓冲区的值。默认设置为: 共享缓冲区=128MB 这个太小了。经验法则是将其设置为总RAM的25%(不包括交换空间)。例如,我的VPS有60G RAM,所以我将其设置为: 共享缓冲区=15GB 找到下面这行。 #工作_内存=4MB#维护_工作_内存=64MB 同样,该值太小。我使用以下设置。 工作记忆=1GB维护记忆=8GB工作记忆=8GB 然后找到下面一行。 #有效缓存大小=4GB 如果你像我一样有很多RAM,你可以为有效的缓存大小设置一个更高的值,比如20G。 有效缓存大小=20GB 保存并关闭文件。重新启动PostgreSQL以使更改生效。 sudo systemctl重启postgresql 默认情况下,PostgreSQL会尝试在RAM中使用巨大的页面。然而,Linux默认情况下不会分配巨大的页面。检查PostgreSQL的进程ID。 sudo head-1/var/lib/postgresql/11/main/postmaster。pid 样本输出: 7031 然后检查该进程ID的峰值。 grep^VmPeak/proc/7031/status 样本输出: 峰值:16282784 kB 这是PostgreSQL将使用的峰值内存大小。现在检查Linux中巨大页面的大小。 cat/proc/meminfo | grep-i巨大 样本输出: AnonHugePages:0 kB ShmemHugePages:0 kB HugePages_总计:0 HugePages_免费:0 HugePages_Rsvd:0 HugePages_剩余:0 HugePages大小:2048 kB Hugetlb:0 kB 我们可以计算出我们需要多少巨大的页面。将VmPeak值除以巨大页面的大小:16282784KB/2048KB=7950。编辑/etc/sysctl。conf文件。 sudo nano/etc/sysctl。形态 添加以下行以分配7950个大页面。 虚拟机。nr_hugepages=7950 保存并关闭文件。然后应用更改。 sudo sysctl-p 如果你再次查看meminfo, cat/proc/meminfo | grep-i巨大 我们可以看到有7950个巨大的页面可用。 AnonHugePages:0 kB ShmemHugePages:0 kB HugePages_总计:7950 HugePages_免费:7950 HugePages_Rsvd:0 HugePages_剩余:0 HugePages大小:2048 kB Hugetlb:16281600 kB 重新启动PostgreSQL以使用大型页面。 sudo systemctl重启postgresql 在远程服务器上使用屏幕 由于导入过程可能需要很长时间,并且您的计算机可能已断开与Internet的连接,因此建议使用screen实用程序使会话保持活动状态。Debian 10服务器上的安装屏幕: sudo apt安装屏幕 然后启动屏幕: 屏幕 第一次启动时,您将看到一个介绍文本,只需按Enter键即可结束。然后你就可以像往常一样运行命令了。 步骤5:将地图数据导入PostgreSQL 要导入地图数据,我们需要安装osm2pgsql,将OpenStreetMap数据转换为支持postGIS的PostgreSQL数据库。 sudo apt安装osm2pgsql 向postgres用户授予权限。 sudo setfacl-R-mu:postgres:rwx/home/osm/ 切换到postgres用户。 sudo-u postgres-i 运行以下命令将地图样式表和地图数据加载到gis数据库中。最新取代英国。奥斯曼。pbf与您自己的地图数据文件。 osm2pgsql--slim-dGIS--hstore--multi-geometry--number processs 10--tag transform script/home/osm/openstreetmap carto/openstreetmap carto。lua——style/home/osm/openstreetmap carto/openstreetmap carto。款式-C 32000/家居/osm/英国最新款。奥斯曼。pbf 哪里 --苗条模式:在苗条模式下运行,而不是在正常模式下运行。如果希望将来使用OSM更改文件(OSC)更新地图数据,则需要此选项。 -d gis:选择数据库。 --hstore:将不带列的标记添加到PostgreSQL表的另一个hstore(key/value)列中 --多重几何图形:在postgresql表中生成多重几何图形特征。 --样式:指定样式文件的位置 --进程数:服务器上的CPU核心数。我有10个。 -C标志以兆字节为单位指定缓存大小。它应该是你机器上可用内存的70%左右。缓存大小越大,导入速度越快。例如,我的服务器有60GB的空闲RAM,所以我可以指定-C 32000。请注意,PostgreSQL将需要用于共享缓冲区的RAM。使用此公式计算缓存大小应该有多大:(总RAM-PostgreSQL共享_缓冲区)*70% 最后,需要指定地图数据文件的位置。 命令输出: 如果要导入完整的行星地图数据,请使用--drop选项和--flat nodes选项来提高导入速度。请注意--flat nodes选项不适用于小贴图。 osm2pgsql--slim-dGIS--drop--flat nodes/home/osm/nodes。cache--hstore--multi-geometry--number processs 10--tag transform script/home/osm/openstreetmap carto/openstreetmap carto。lua——style/home/osm/openstreetmap carto/openstreetmap carto。款式-C 32000/家居/osm/planet最新款式。奥斯曼。pbf 在导入过程中,RAM的使用将逐渐增加。 现在,您可能不需要在服务器上执行其他操作。由于您使用的是Screen,所以可以按Ctrl+A,释放这些键,然后按D键从当前屏幕会话中分离。您将看到如下消息。 [与32113.pts-1.buster分离] 这告诉我之前的屏幕会话ID是32113。您可以从SSH会话中注销,甚至可以关闭计算机。别担心,OSM导入过程仍在运行。当需要返回并检查导入进度时,请将SSH连接到服务器并运行以下命令以获取上一个屏幕会话ID。 屏幕-ls 样本输出: 屏幕显示:32113。pts-1。buster(2020年5月19日03:45:29下午)(已分离)1个插座插入/运行/屏幕/S-linuxbabe。 然后可以重新连接到上一个屏幕会话。 屏幕-r 32113 这样你就能继续工作了。导入完成后,将gis数据库的所有权限授予osm用户。 psql-c“将模式公共中所有表的所有权限授予osm-三维地理信息系统 退出postgres用户。 出口 注意:如果osm2pgsql导入尚未完成,请不要继续执行步骤6。 第6步:安装mod_tile和Renderd mod_tile是一个Apache模块,需要为tiles提供服务,renderd是渲染OpenStreetMap tiles的渲染守护进程。默认的Debian Buster存储库不包括mod_tile和renderd,因此我们需要编译源代码。 首先,安装构建依赖项。 sudo apt安装git autoconf libtool libmapnik dev apache2 dev 然后从Github克隆存储库。 git克隆https://github.com/openstreetmap/mod_tile.gitcd mod_瓷砖/ 编辑一个文件。 纳米debian/compat 默认情况下,兼容性级别设置为7。但是,您应该使用兼容性级别9,所以将数字7更改为9。保存并关闭文件。 然后编辑另一个文件。 nano debian/changelog 找到第一行。 libapache2 mod tile(0.4-12~精度2)精确;紧急程度=低 将其更改为以下内容。0.4-12应改为0.4.12,精度2应改为buster。 libapache2 mod tile(0.4.12~buster)精确;紧急程度=低 保存并关闭文件。然后编译源代码包。 /自动发电。sh sudo dpkg建筑包-加州大学-美国 现在将有两个。deb包在上层目录中。用apt安装它们。 光盘sudo-apt-install/libapache2-mod-tile_0.4.12~buster_amd64。黛布/renderd_0.4.12~buster_amd64。黛布 在安装过程中,它将安装Apache web服务器,并询问您是否希望在Apache配置中启用mod_tile。选择Yes并按Enter键。这将为mod_tile(/etc/apache2/sites available/tileserver_site.conf)创建一个Apache配置文件。 渲染守护进程将自动启动,如下所示: systemctl状态呈现 第7步:生成Mapnik样式表 安装所需的软件包。 sudo apt install curl解压gdal bin mapnik utils libmapnik dev python3 pip python3-psycopg2 我们还需要使用以下命令从上游存储库安装nodejs和npm。 curl-sLhttps://deb.nodesource.com/setup_12.x| sudo-E bash-sudo apt get install-y nodejs 然后用npm安装carto软件包。 sudo npm安装-g carto 安装yaml Python模块。 sudo-H pip3安装pyyaml 切换到postgres用户。 sudo-u postgres-i 将Cd放入carto style目录。 cd/home/osm/openstreetmap carto/ 获取形状文件。 脚本/获取外部数据。py 如果在运行上述命令时遇到以下错误消息,则说明您存在DNS问题。只需等待几分钟,然后再次运行Python脚本。 未能建立新连接:[Errno-3]名称解析暂时失败 现在使用carto map样式表编译器构建Mapnik XML样式表。 carto项目。mml&gt;风格xml 将gis数据库的所有权限授予osm用户。 psql-c“将模式公共中所有表的所有权限授予osm-三维地理信息系统 退出postgres用户。 出口 第8步:安装字体 您需要安装ttf dejavu软件包。 sudo apt安装ttf dejavu 要显示非拉丁字符,请安装以下软件包。 sudo apt安装字体noto cjk字体noto cjk额外字体noto提示字体noto未连接ttf unifont 步骤9:配置renderd 编辑渲染配置文件。 sudo nano/etc/renderd。形态 在[renderd]部分,根据服务器上的CPU内核数更改线程数。 线程数=10 在[default]部分,将XML和HOST的值更改为以下值。请注意,以分号(;)开头的行这些都是评论。 XML=/home/osm/openstreetmap carto/style。xml HOST=tile。你的领域。通用域名格式 在[mapnik]部分,将plugins_dir的值更改为以下值。 plugins_dir=/usr/lib/mapnik/3.0/input/ 您可以使用以下命令打印默认的输入插件目录。 mapnik config——输入插件 如果要显示非拉丁字符,最好将字体设置更改为以下内容。 font_dir=/usr/share/fonts/truetype font_dir_recurse=true 保存并关闭文件。然后编辑init脚本文件 sudo nano/etc/init。d/renderd 找到下面这行。 RUNASUSER=www数据 将用户更改为osm。这是从PostgreSQL数据库加载地图数据所必需的。 RUNASUSER=osm 还要设置renderd配置文件的路径。 DAEMON_ARGS=“-c etc/renderd.conf” 保存并关闭文件。将osm设置为/var/lib/mod_tile/目录的所有者,该目录将保存渲染的tile文件。 sudo chown osm/var/lib/mod_tile/-R 然后重新启动renderd服务。 sudo systemctl守护进程重新加载sudo systemctl restart renderd 你需要查看renderd的日志。 sudo journalctl-欧盟趋势 确保renderd在重启后不会在日志中产生任何错误,否则地图将不会显示。 第10步:配置Apache 编辑OSM虚拟主机文件。 sudo nano/etc/apache2/sites available/tileserver_site。形态 将服务器名更改为您自己的域名,如tile。你的领域。通用域名格式。您还需要为此子域创建DNS记录。 服务器名互动程序。你的领域。通用域名格式 保存并关闭文件。重启Apache。 sudo systemctl重启apache2 然后在web浏览器地址栏中键入 瓦片你的领域。com/osm/0/0/0。巴布亚新几内亚 你应该看到世界地图的瓷砖。恭喜!您刚刚成功构建了自己的OSM磁贴服务器。 如果已启用UFW防火墙,请确保使用以下命令打开端口80和443。 sudo ufw允许80443/tcp 如果您看到404 not found错误,只需等待几分钟,在浏览器中刷新页面,它应该能够加载世界地图的平铺。如果仍然无法加载,则重新启动renderd服务(sudo systemctl restart renderd)。 第11步:显示平铺的网络地图 平铺网络地图在OpenStreetMap术语中也称为slippy地图。有两个免费的开源JavaScript地图库可用于tile服务器:OpenLayer和传单。传单的优点是使用简单,而且地图便于移动。 露天层 要使用OpenLayer显示你的slippy地图,请从OpenLayer下载JavaScript和CSS。组织并将其解压缩到webroot文件夹。 cd/var/www/sudo wgethttps://github.com/openlayers/openlayers/releases/download/v5.3.0/v5.3.0.zipsudo解压v5。3.0.拉链 接下来,创建索引。html文件。 sudo nano/var/www/index。html 在文件中粘贴以下HTML代码。替换红色文本,并根据需要调整经度、纬度和缩放级别。 &lt;!DOCTYPE html&gt&书信电报;html&gt&书信电报;头&gt&书信电报;meta charset=“UTF-8”大于&书信电报;标题&gt;无障碍地图&lt/标题&gt&书信电报;link rel=“stylesheet”href=”http://tile.your-domain.com/v5.3.0/css/ol.css“type=“text/css”&gt;&lt;script src=”http://tile.your-domain.com/v5.3.0/build/ol.js“&gt;&lt;/script&gt;&lt;style&gt;a.skipling{位置:绝对;剪辑:rect(1px,1px,1px,1px);填充:0;边框:0;高度:1px;宽度:1px;溢出:隐藏;}”a、 skiplink:focus{clip:auto;height:auto;width:auto;background color:#fff;padding:0.3em;}#地图:焦点{轮廓:#4A74A8固体0.15em;}&lt/风格&gt&lt/头&gt&书信电报;车身&gt&书信电报;a class=“skipling”href=“#map”&gt;转到地图&lt/a&gt&书信电报;div id=“map”class=“map”tabindex=“0”&gt&lt/部门&gt&书信电报;按钮id=“缩小”&gt;缩小&lt/按钮&gt&书信电报;按钮id=“放大”&gt;放大&lt/按钮&gt&书信电报;脚本&gt;var map=新ol。Map({layers:[new ol.layer.Tile({source:new ol.source.OSM({url:'http://tile.your-domain.com/osm/{z} /{x}/{y}。png'})}),目标:'map',控件:ol。控制默认值({attributeoptions:/**@type{olx.control.attributeoptions}*/({collapsable:false})),视图:new ol。视图({center:[244780.245088823557386452.183179816],zoom:5});文件getElementById(“缩小”)。onclick=function(){var view=map.getView();var zoom=view.getZoom();view.setZoom(zoom-1);};文件getElementById(“放大”)。onclick=function(){var view=map.getView();var zoom=view.getZoom();view.setZoom(zoom+1);}&lt/脚本&gt&lt/车身&gt&lt/html&gt; 保存并关闭文件。现在你可以通过在浏览器地址栏中输入你的子域来查看你的拖拉地图。 瓦片你的领域。通用域名格式 或 瓦片你的领域。com/index。html 传单 要使用Leftlet显示slippy地图,请从leftletjs下载JavaScript和CSS。com并将其解压缩到webroot文件夹。 cd/var/www/sudo wgethttp://cdn.leafletjs.com/leaflet/v1.7.1/leaflet.zipsudo解压传单。拉链 接下来,创建索引。html文件。 sudo nano/var/www/index。html 在文件中粘贴以下HTML代码。替换红色文本,并根据需要调整经度、纬度和缩放级别。 &lt;html&gt&书信电报;头&gt&书信电报;meta charset=“UTF-8”大于&书信电报;标题&gt;我的第一个osm&lt/标题&gt&书信电报;link rel=“stylesheet”type=“text/css”href=“传单.css”/&gt&书信电报;script type=“text/javascript”src=“ployate.js”&gt&lt/脚本&gt&书信电报;风格&gt#地图{宽度:100%;高度:100%}&lt/风格&gt&lt/头&gt&书信电报;车身&gt&书信电报;div id=“map”&gt&lt/部门&gt&书信电报;脚本&gt;var map=L.map('map')。setView([55,8],5);蒂莱莱耶http://tile.your-domain.com/osm/{z} /{x}/{y}。png',{maxZoom:18})。addTo(地图)&lt/脚本&gt&lt/车身&gt&lt/html&gt; 保存并关闭文件。现在,您可以通过在浏览器中键入服务器IP地址来查看拖沓的地图。 瓦片你的领域。通用域名格式 或 瓦片你的领域。com/index。html 步骤12:预渲染瓷砖 动态渲染平铺将增加在web浏览器中加载地图的时间。要预渲染平铺而不是动态渲染,请使用以下render_list命令。使用-z和-z标志指定缩放级别,并根据服务器上的CPU内核数替换线程数。Render_list通过向渲染守护进程发送请求来渲染贴图分幅列表。预渲染的磁贴将缓存在/var/lib/mod_tile目录中。 render_list-m default-a-z 0-z 19--num threads=10 如果以后更新了贴图数据,可以使用--force选项再次预渲染所有分片。 render_list-m default-a-z 0-z 19--num threads=10--force 要在背景中渲染贴图分幅,请添加&amp;结尾的符号。 render_list-m default-a-z 0-z 19--num threads=10&amp; 现在你可以关闭终端窗口了。要检查呈现进度,请打开另一个SSH会话,然后运行以下命令。 sudo journalctl-欧盟趋势 上面的命令将显示renderd服务的最新日志。以下几行显示我的OSM服务器现在正在以缩放级别12渲染地图分幅。 renderd[20838]:调试:开始平铺默认值12 1008-1015 4056-4063,新metatile renderd[20838]:渲染投影坐标12 1008 4056-&gt-10175297.205328 |-19724422.274944-10097025.688364 |-19646150.757980到一个8 x 8平铺渲染[20838]:调试:在0.799秒内完成平铺默认12 1008-1015 3984-3991渲染[20838]:调试:将协议版本2的渲染命令(3默认12/1008/3984)发送到fd 18渲染[20838]:调试:使用协议版本2 renderd[20838]获得传入请求:调试:获得命令RenderBulk fd(18)xml(默认),z(12),x(1008),y(4064),mime(图像/png),选项()渲染[20838]:调试:开始平铺默认值12 1008-1015 4064-4071,新metatile渲染[20838]:渲染投影坐标12 1008 4064-&gt-10175297.205328 |-19802693.791908-10097025.688364 |-19724422.274944至8 x 8瓷砖 步骤13:启用HTTPS 为了加密HTTP流量,我们可以从Let's encrypt获得并安装免费的TLS证书。首先,在Debian 10上安装Let's Encrypt客户端(certbot)。 sudo apt安装certbot 因为我们使用的是ApacheWeb服务器,所以我们还需要安装Apache插件。 sudo apt安装python3 certbot apache 然后运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--stalke ocsp--must stalke--email[email ;protected]-d tile。你的领域。通用域名格式 安装证书后,刷新网页,您将在地址栏中看到一个锁。 如果你在Firefox地址栏中看到一个黄色的三角形,这意味着tile URL仍在使用HTTP。你需要编辑索引。html文件,并使用以下命令将所有HTTP协议替换为HTTPS。 sudo sed-i's/http/https/g'/var/www/index。html 步骤14:启用HTTP2 为了进一步提高映射加载性能,可以启用HTTP2协议。首先,需要启用HTTP2模块。 sudo a2enmod http2 然后打开SSL虚拟主机文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在打开后放置以下指令&lt;VirtualHost*:443&gt;标签 协议h2 http/1.1 保存并关闭文件。然后重启Apache,使更改生效。 sudo systemctl重启apache2 使用HTTP Referrer标头限制对OSM磁贴服务器的访问 默认情况下,任何人都可以使用OpenLayer或传单创建一个带有tile服务器URL的滑动地图。要限制对tile服务器的访问,请编辑Apache虚拟主机文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在&lt;VirtualHost&gt;标签。 &lt;位置/osm&gt;SetEnvIf Referer example/。com trusted_referer Order deny,allow deny from all allow from env=trusted_referer&lt/地点&gt; 上面的代码检查HTTP referer头是否包含您自己的域。否则,将拒绝访问/osm目录。反斜杠用于转义点字符。要将多个主机名添加为受信任的引用程序,请使用以下语法。 SetEnvIf Referer(example/.com | www/.example/.com | map/.example/.com)可信的_Referer 保存并关闭文件。然后测试语法。 sudo apache2ctl-t 如果语法正确,请重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开root用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&amp;systemctl重新加载apache2 不同主机上的PostgreSQL数据库和Web服务器 如果PostgreSQL和Apache web服务器位于不同的主机上,则需要编辑该项目。Apache主机上的mml文件。 nano/home/osm/openstreetmap-carto-4.20.0/project。嗯 找到以下几行: osm2pgsql:&amp;osm2pgsql类型:“postgis”dbname:“gis”键字段:“几何体”字段:“方式”范围:“-20037508,-200375082003750820037508” 指定PostgreSQL数据库服务器的IP地址。 osm2pgsql:&amp;osm2pgsql类型:“postgis”主机:“10.0.0.2”数据库名:“gis”键字段:“几何体”字段:“方式”范围:“-20037508,-200375082003750820037508” 保存并关闭文件。然后使用carto map样式表编译器构建Mapnik XML样式表。 carto项目。mml&gt;风格xml 在PostgreSQL数据库服务器上,编辑主配置文件。 sudo nano/etc/postgresql/11/main/postgresql。形态 添加以下行,将PostgreSQL设置为在所有接口上侦听。 听_addresses='*' 保存并关闭文件。然后编辑PostgreSQL客户端身份验证配置文件。 sudo nano/etc/postgresql/11/main/pg_hba。形态 在文件末尾添加以下行,以允许osm用户从Apache主机登录。将10.0.0.1替换为Apache主机的IP地址。 主机gis osm 10.0.0.1/32信任 保存并关闭文件。然后重新启动PostgreSQL。 sudo systemctl重启postgresql 在Apache主机上重新启动渲染守护程序。 sudo systemctl重新启动renderd 你需要查看renderd的日志。确保renderd不会在日志中产生任何错误,否则地图将不会显示。 sudo journalctl-欧盟趋势 还应限制对PostgreSQL数据库服务器端口5432的访问。例如,您可以使用以下UFW命令只允许Apache主机的IP地址。 sudo ufw允许从10.0.0.1进入任何端口5432 下一步 我希望本教程能帮助您在Debian 10上设置OpenStreetMap tile服务器。您可能还需要设置Namingm地理编码服务器以提供搜索功能。 在Debian 10上设置OSM Namingm地理编码服务器 和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:611
  • 在Debian 10 Buster上设置Apache Guacamole远程桌面

    本教程将向您展示如何在Debian 10服务器上设置鳄梨酱远程桌面。GuaCAMOLE是由Apache软件基金会开发的一个免费的开源远程桌面网关。 鳄梨酱特色 它允许您从web浏览器访问远程桌面。不需要在客户端安装其他软件。 支持VNC、RDP、SSH和Kubernetes等标准协议。 VNC会话可以以图形方式记录。 使用CAS、OpenID Connect或SAML 2.0进行单点登录 唤醒局域网 轻松管理多个远程桌面会话。 支持TOTP双因素身份验证。 支持剪贴板(复制和粘贴)和通过SFTP传输文件。 支持音频输入和输出 还有更多。 鳄梨酱本身不是远程桌面协议。它是远程桌面和客户端之间的代理,因此可以在web浏览器中显示和控制远程桌面。 步骤1:从源代码构建鳄梨酱服务器 登录Debian 10服务器并安装依赖软件包。 sudo apt安装build essential libcairo2 dev libjpeg62 turbo dev libpng dev libtool bin libossp uuid dev libvncserver dev freerdp2 dev libssh2-1-dev libtelnet dev libwebsockets dev libpulse dev libvorbis dev libwebp dev libssl dev libpango1。0-dev libswscale dev libavcodec dev libavutil dev libavformat dev 下载最新稳定版本的鳄梨酱服务器。 wgethttp://mirror.cc.columbia.edu/pub/software/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz 提取档案。 tar-xvf鳄梨酱-server-1.2.0。焦油广州 切换到提取的目录。 cd鳄梨酱-server-1.2.0 配置构建环境。 ./configure--with init dir=/etc/init。D 然后编译鳄梨酱服务器。 sudo make 安装鳄梨酱服务器。 sudo make安装 更新已安装库的系统缓存。 sudo ldconfig 重新加载systemd,这样就可以找到安装在/etc/init中的Guacamole代理守护进程(Guacamole proxy daemon)服务。d/目录。 sudo systemctl后台程序重新加载 开始吃鳄梨酱。 sudo systemctl启动guacd 启动时启用自动启动。 sudo systemctl enable guacd 检查它的状态。 系统控制状态表 如你所见,它处于活动状态(正在运行)。 Guacd在127.0.0.1:4822上监听,如ss实用程序所示。 sudo ss-lnpt | grep guacd 第2步:安装鳄梨酱Web应用程序 鳄梨酱web应用程序是用Java编写的,所以我们需要安装一个Java Servlet容器,比如ApacheTomcat。 sudo apt安装tomcat9 tomcat9 admin tomcat9 common tomcat9 user Apache Tomcat将在端口8080上监听,如下所示: sudo ss-lnpt | grep java 如果有其他软件监听端口8080,那么Tomcat无法绑定到端口8080。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat(sudo systemctl restart tomcat9)。 接下来,下载鳄梨酱web应用程序。 wgethttps://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war 将文件移动到web应用程序目录(/var/lib/tomcat9/webapps),同时重命名文件(删除版本号)。 sudo mv鳄梨酱-1.2.0。war/var/lib/tomcat9/webapps/guacamole。战争 重启Tomcat和guacd。 sudo systemctl重启tomcat9 guacd 第3步:配置鳄梨酱 为鳄梨酱创建一个配置目录。 sudo mkdir/etc/鳄梨酱/ 创建一个配置文件。 sudo nano/etc/鳄梨酱/鳄梨酱。属性 在此文件中添加以下行。有些人可能会说不需要添加这些行,因为它们是默认值。我向您展示了一个基本配置,以便您可以在需要时对其进行自定义。 #guacamole代理的主机名和端口guacd主机名:localhost guacd端口:4822#身份验证提供程序类(验证用户/密码组合,如果使用提供的登录屏幕,则需要)身份验证提供程序:net。sourceforge。鳄梨酱。网基本的BasicFileAuthenticationProvider基本用户映射:/etc/guacamole/user mapping。xml 保存并关闭文件。Guacamole中的默认身份验证模块从XML文件:/etc/Guacamole/user mapping中读取用户名和密码。xml。在创建此文件之前,我们需要使用以下命令为您的密码生成MD5哈希。将_密码替换为首选密码。 echo-n您的|密码| openssl md5 样本输出: (标准数据)=1060b7b46a3bd36b3a0d66e0127d0517 接下来,创建用户映射XML文件。 sudo nano/etc/guacamole/user mapping。xml 添加以下行。这里我们指定后端将使用VNC(虚拟网络计算)协议。替换用户名和密码哈希。稍后我们将创建一个VNC密码。 &lt;用户映射&gt&lt;!——每用户身份验证和配置信息--&gt&书信电报;授权用户名=“您的首选用户名”密码=“1060b7b46a3bd36b3a0d66e0127d051”编码=“md5”&gt&书信电报;连接名称=“默认值”&gt&书信电报;协议&gt;vnc&lt/协议&gt&书信电报;param name=“hostname”&gt;localhost&lt/param&gt&书信电报;param name=“port”&gt;5901&lt/param&gt&书信电报;param name=“password”&gt;vnc_密码&lt/param&gt&lt/连接&gt&lt/授权&gt&lt/用户映射&gt; 保存并关闭文件。重启Tomcat和guacd。 sudo systemctl重启tomcat9 guacd 第4步:在Debian 10服务器上安装桌面环境 因为我们要设置一个远程桌面,所以我们需要一个桌面环境。在安装桌面环境之前,确保服务器有足够的RAM。有许多桌面环境。我发现轻量级XFCE桌面环境在VNC中运行良好,所以使用以下命令安装它。 sudo apt更新sudo apt安装xfce4 xfce4 goodies 在安装过程中,可能会要求您选择默认的显示管理器。这个选择无关紧要,因为在VNC会话中,您不会看到登录屏幕。 由于服务器上运行的是桌面环境,因此强烈建议您使用UFW之类的防火墙来限制访问,并仅向公众打开必要的端口。您可以阅读以下教程,了解如何在Debian上启用和使用UFW。 如何在Debian、Ubuntu、Linux Mint上使用UFW防火墙 步骤5:在Debian 10服务器上安装VNC服务器 Linux用户可以使用几种VNC服务器软件。我们将使用TigerVNC服务器,因为它最适合鳄梨酱。 sudo apt安装tigervnc独立服务器 运行以下命令以启动VNC服务器。 vncserver 当TigerVNC首次启动时,它会要求您设置VNC密码。请注意,密码不应超过8个字符。然后,您可以选择是否需要仅查看密码。 现在,您应该编辑/etc/guacamole/user映射。xml文件并更改VNC密码。然后重启Tomcat和Guad。 sudo systemctl重启tomcat9 guacd tigervnc独立服务器包附带一个文件/etc/X11/Xvnc会话,该会话告诉tigervnc在启动X服务器时启动X服务器。 TigerVNC服务器不附带任何systemd服务单元。为了在启动时启动,我们需要创建一个systemd服务单元。 sudo nano/etc/systemd/system/[电子邮件和#160;受保护] 在文件中添加以下行。用真实用户名替换用户名。 [Unit]Description=在=syslog之后为VNC启动X服务器的包装器。目标网络。target[Service]Type=forking User=username Group=username WorkingDirectory=/home/username ExecStartPre=-/usr/bin/vncserver-kill:%i&gt/开发/空2&gt&amp;1 ExecStart=/usr/bin/vncserver-depth 24-geometry 1280x800-localhost:%i ExecStop=/usr/bin/vncserver-kill:%i[Install]WantedBy=multi-user。目标 保存并关闭文件。停止当前的VNC服务器实例。 vncserver-kill:1 用systemd启动VNC服务器。 sudo systemctl start[电子邮件和#160;受保护] 启动时启用自动启动。 sudo systemctl启用[电子邮件和#160;受保护] 检查其状态: systemctl状态[电子邮件和#160;受保护] 如你所见,它处于活动状态(正在运行)。 现在TigerVNC服务器监听端口5901。 sudo ss-lnpt | grep vnc 步骤6:为鳄梨酱Web应用程序设置反向代理 Apache Tomcat正在监听端口8080。为了方便地访问Guacamole web应用程序,我们可以使用Apache或Nginx设置反向代理,以便最终用户能够使用域名访问web应用程序。它还允许我们轻松安装TLS证书来加密连接。 阿帕奇 如果您更喜欢使用Apache,那么从默认的Debian软件存储库安装Apache。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 然后为鳄梨酱创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/鳄梨酱。形态 在文件中添加以下行。更换鳄梨酱。实例使用你自己的域名。记住在DNS管理器中为子域创建A记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 &lt;虚拟主机*:80&gt;ServerName鳄梨酱。实例com ErrorLog${APACHE_LOG_DIR}/guacamole_error。log CustomLog${APACHE_log_DIR}/guacamole_访问。日志合并&lt;地点/&gt;要求所有授予的ProxyPasshttp://localhost:8080/guacamole/flushpackets=在ProxyPassReverse上http://localhost:8080/guacamole/&lt/地点&gt&书信电报;位置/websocket隧道&gt;需要所有授予的代理权限ws://localhost:8080/guacamole/websocket tunnel代理权限ws://localhost:8080/guacamole/websocket tunnel&lt/地点&gt;标题始终未设置X帧选项&lt/VirtualHost&gt; 保存并关闭文件。测试语法。 sudo apachectl-t 如果Syntx正常,则启用此虚拟主机。 sudo a2ensite鳄梨酱。形态 重启Apache sudo systemctl重启apache2 现在,您可以通过鳄梨酱访问Apache鳄梨酱登录页面。实例通用域名格式。如果看到“无效请求”或类似的错误消息,则可能意味着Apache Tomcat无法绑定到端口8080,因为该端口已被服务器上的另一个进程占用。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat。 Nginx 如果您更喜欢使用Nginx,那么从默认的Debian软件存储库安装Nginx。 sudo apt安装nginx 为鳄梨酱创建服务器块文件。 sudo nano/etc/nginx/conf.d/guacamole。形态 在文件中添加以下行。更换鳄梨酱。实例使用你自己的域名。记住在DNS管理器中为子域创建A记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;服务器名guacamole.example.com;access_log/var/log/nginx/guac_access.log;error_log/var/log/nginx/guac_error.log;location/{proxy_passhttp://127.0.0.1:8080/guacamole/; 缓冲;proxy_http_版本1.1;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;代理设置头升级$httpU升级;代理设置头连接$httpU连接;代理_cookie_path/guacamole/;} 保存并关闭此文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在,您可以通过鳄梨酱访问Apache鳄梨酱登录页面。实例通用域名格式。如果看到“无效请求”或类似的错误消息,则可能意味着Apache Tomcat无法绑定到端口8080,因为该端口已被服务器上的另一个进程占用。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat。 启用HTTPS 为了在访问鳄梨酱web界面时加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d鳄梨酱。实例通用域名格式 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stapple ocsp--email[email ;protected]-d鳄梨酱。实例通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 您可以通过HTTPS访问鳄梨酱web界面。(https://guacamole.example.com). 登录后,您将能够使用远程桌面。 收尾 我希望本教程能帮助您在Debian 10服务器上设置Apache Guacamole远程桌面。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:664
  • 如何在Debian 10 Buster上安装Jellyfin媒体服务器

    本教程将向您展示如何在Debian 10服务器/桌面上安装Jellyfin media server。Jellyfin是一款免费的开源应用程序,允许您在一个漂亮的界面中组织电影、电视节目、音乐和照片,并在网络或互联网上将这些媒体文件传输到PC、平板电脑、手机、电视、Roku等设备上。Jellyfin可以安装在Linux、MacOS和Windows上。 水母特征 Jellyfin是Emby媒体服务器的分支。它包含许多与Plex和Emby相同的功能。 与Plex或Emby不同,Jellyfin是100%免费和开源的。没有广告,移动应用没有播放限制。(尽管iOS应用程序不能在后台播放视频。) 观看电视直播并设置自动录音,以扩展您的库。 自动从DVDB、MovieDB、OpenMovie数据库和烂番茄中获取艺术品、元数据。 支持DLNA。 可以安装可选插件以提供附加功能。 支持使用FFMpeg对视频编码/解码进行硬件加速。 还有更多。 在Debian 10上安装Jellyfin媒体服务器 Jellyfin不包括在默认的Debian存储库中,但它有自己的存储库。运行以下命令将Jellyfin存储库添加到Debian 10系统。 echo“deb[arch=$(dpkg——打印架构)] main“| sudo tee/etc/apt/sources.list.d/jellyfin.list 接下来,运行以下命令将Jeffyfin GPG密钥导入Debian系统,以便APT可以在安装期间验证包的完整性。 wget-O-https://repo.jellyfin.org/jellyfin_team.gpg.key| sudo apt按键添加- 由于该存储库使用HTTPS连接,我们还需要安装apt传输HTTPS和ca证书包。 sudo apt安装apt传输https ca证书 最后,在Debian系统上更新包索引并安装Jellyfin。 sudo apt更新sudo apt安装jellyfin 此命令还将安装3个其他软件包作为依赖项: jellyfin ffmpeg:用于视频转码。 jellyfin服务器:后端服务器。 jellyfin web:前端web界面。 现在安装了Jellyfin media server,我们可以通过以下方式检查其状态: 系统控制状态 正如你所见,它正在我的Debian 10系统上运行。(按q键恢复对终端的控制。) 如果Jellyfin媒体服务器未运行,可以通过以下方式启动: sudo systemctl启动果冻 Jellyfin媒体服务器初始设置 基于网络的管理界面可在8096端口获得。您可以通过以下URL访问Jellyfin web界面。 如果在远程Debian服务器上安装了Jellyfin,则需要使用Nginx或Apache设置反向代理才能访问web UI,本教程稍后将对此进行解释。 第一步是选择你喜欢的语言。 在下一个屏幕上,创建一个用户帐户。 现在可以添加库了。单击添加媒体库按钮。 选择内容类型(电影、音乐、电视节目等)和显示名称。 然后单击加号(+)按钮选择内容文件夹。 请注意,jellyfin用户需要对您的媒体目录具有读取和执行权限。例如,我的2T外部硬盘安装在root所有的/media/linuxbabe/下。不在root组中的用户无法访问它,所以我运行以下命令来授予用户jellyfin读取和执行权限。(我不建议使用chown或chgrp命令更改所有权。使用setfacl命令就足够了。) sudo setfacl-MU:jellyfin:rx/media/linuxbabe/ 您可能还需要分配对各个媒体目录的权限,如下所示。 sudo setfacl-mu:jellyfin:rx/media/linuxbabe/目录名 添加递归标志(-R)很有诱惑力,该标志赋予jellyfin对驱动器上每个文件和子目录的读取和执行权限。 sudo setfacl-R-mu:jellyfin:rx/media/linuxbabe/ 如果您的外部硬盘仅用于存储媒体文件,那么您可以这样做,但如果您的外部硬盘上有敏感文件,请不要这样做。 添加完媒体文件夹后,可以配置库设置。选择你的语言、国家等。 点击Ok和Next按钮。以后可以添加更多库。下一步允许您选择是否启用远程访问。我不建议启用本机远程访问方法,因为它不提供HTTPS加密,所以请取消选中这两个复选框。如果您需要远程访问,请阅读本文后面的如何设置反向代理。 单击下一步并完成按钮。最后,登录你的Jellyfin帐户。 重做初始设置 如果在初始设置中出错,可以重新开始。首先,编辑Jellyfin配置文件。 sudo nano/etc/jellyfin/system。xml 改变 &lt;IsStartupWizardCompleted&gt;真的&lt/IsStartupWizardCompleted&gt; 到 &lt;IsStartupWizardCompleted&gt;假&lt/IsStartupWizardCompleted&gt; 保存并关闭文件。然后重启果冻。 sudo systemctl重启果冻 现在访问localhost:8096/web,您将再次看到安装向导。 在哪里下载电影和电视节目 使用像Florge这样的洪流客户端。 了解如何从Usenet下载。 Usenet的优势 因为其他人看不到你下载的内容,所以它给了你更好的隐私。 超高速下载速度。 文件的保存时间通常比torrent文件长得多。例如,Newsdemon将文件存储4430天(超过12年),因此您可以以非常快的速度下载旧内容。 设置反向代理 因为它监听127.0.0.1:8096,所以Jellyfin Web界面只对来自同一台计算机的连接可用。为了能够从远程计算机访问Jellyfin Web界面,我们可以使用Nginx或Apache为Jellyfin设置反向代理。 Nginx Nginx是一个非常流行的web服务器和反向代理。如果您更喜欢使用Nginx,请运行以下命令进行安装。 sudo apt安装nginx 然后为Jellyfin创建一个服务器块文件。 sudo nano/etc/nginx/conf.d/jellyfin。形态 将以下内容添加到此文件。更换鱼翅。实例使用你自己的域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;服务器名jellyfin.example.com;访问日志/var/log/nginx/jellyfin.access;错误日志/var/log/nginx/jellyfin.error;设置$jellyfin 127.0.0.1;位置/{proxyu passhttp://127.0.0.1:8096; 代理设置头主机$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$方案;代理集头X转发协议$方案;proxy_set_header X-Forwarded-Host$http_Host;#当nginx代理在流媒体代理缓冲关闭时资源非常紧张时,禁用缓冲;}#/web的位置块-这纯粹是为了美观,所以/web/#!/可以工作,而不必转到/web/index。html/#!/地点~^/web/${#Proxy main Jellyfin traffic Proxy_pass http://$Jellyfin:8096/web/index.html/;Proxy_set_header Host$Host;Proxy_header X-Real-IP$remote_addr;Proxy_set_header X-Forwarded$Proxy_add_X_-Forwarded$Proto;Proxy_set_header X-Forwarded$scheme;Proxy_set_header X-Forwarded$Protocol$schemer X-Forwarded-Host$http_Host;}位置/套接字{#代理Jellyfin Websockets流量代理pass http://$127.0.0.1:8096;代理http version 1.1;代理set header Upgrade$http Upgrade;代理set header Connection“Upgrade”; 代理设置头主机$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$方案;代理集头X转发协议$方案;proxy_set_header X-Forwarded-Host$http_Host;}安全/XSS缓解标题添加标题X-Frame-Options“SAMEORIGIN”;添加_头X-XSS-Protection“1;模式=块”;添加标题X-Content-Type-Options“nosniff”;} 保存并关闭此文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在,您可以通过Jellyfin访问Jellyfin媒体服务器。实例通用域名格式。 阿帕奇 如果您更喜欢Apache而不是Nginx,那么使用以下命令安装ApacheWeb服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 然后为Jellyfin创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/jellyfin。形态 将以下配置放入该文件。更换鱼翅。实例com与您的实际域名。别忘了为这个子域创建DNS记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 &lt;虚拟主机*:80&gt;服务器名jellyfin。实例com错误文件404/404。html#HTTP代理ProxyPass/http://localhost:8096/ProxyPassReverse/http://localhost:8096/#Websocket代理SSLProxyEngine on&lt;位置/:/websockets/notifications&gt;ProxyPasswss://localhost:8096/:/websockets/notificationsProxyPassReversewss://localhost:8096/:/websockets/notifications&lt/地点&gt;标题始终未设置X帧选项&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite果冻。形态 重启Apache sudo systemctl重启apache2 现在,您可以使用域名Jellyfin访问Jellyfin媒体服务器。实例通用域名格式。 启用HTTPS 为了在您从外部访问Jellyfin服务器时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d jellyfin。实例通用域名格式 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d jellyfin。实例通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 您可以通过HTTPS访问Jellyfin web界面:https://jellyfin.example.com. 如何在Debian 10上升级Jellyfin 当新版本的Jellyfin media server问世时,您可以通过执行以下命令对其进行升级。 sudo apt更新sudo apt升级 然后重启果冻。 sudo systemctl重启果冻 故障排除 如果Debian服务器运行WireGuard VPN,您可能会在Jellyfin日志(sudo journalctl-eu Jellyfin)中看到以下错误。 [ERR]从10.0.0.102向239.255.255.250:1900系统发送套接字消息时出错。网插座。SocketException(0xFFFFFFFF):ai_标志的错误值 此错误意味着无法将消息从WireGuard接口发送到239.255.255.250,这是SSDP(简单服务发现协议)多播地址。这是因为您的WireGuard接口不允许访问IP地址。 要解决此问题,请编辑WireGuard接口配置文件。 sudo nano/etc/wireguard/你的界面。形态 查找AllowedIPs参数。我的像下面。 AllowedIPs=10.0.0.0/8 如您所见,VPN客户端只允许连接到10.0.0.0/8网络。现在添加239.255.255.250地址。 AllowedIPs=10.0.0.0/8239.255.255.250 保存并关闭文件。重新启动WireGuard。 sudo systemctl重启[电子邮件和#160;受保护] 重启果冻。 sudo systemctl重启果冻 再次查看Jellyfin日志(sudo journalctl-eu Jellyfin)。上述错误应该消失。 收尾 我希望本教程能帮助您在Debian 10上安装Jellyfin media server。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:1283
  • 如何在Debian服务器/桌面上安装SABnzbd Usenet客户端

    SABnzbd是一个免费的开源和基于网络的Usenet客户端,用于在Usenet上下载二进制内容(图像、音频、视频、电子书等)。它是跨平台的,可用于Linux、BSD、macOS、UNIX、Windows、Synology、QNAP等。本教程将向您展示如何在Debian上安装SABnzbd。 SABnzbd功能 你可以通过网络浏览器从任何地方访问它。 响应迅速的网络界面。 支持多个Usenet服务器(提供程序)。 Android和iOS都提供移动应用程序 Sonar、Sickrage、Couch土豆和耳机等应用程序可以与SABnzbd集成,实现下载过程的自动化。 SABnzbd还可以读取和处理RSS提要,激活自定义脚本,并通过邮件、咆哮、徘徊、推送和推弹通知您。 NZB(Newz二进制)索引器集成。NZB文件类似于torrent文件,NZB索引器类似于torrent站点。 还有更多 如何在Debian上安装SABnzbd Usenet客户端 SABnzbd可从默认的Debian存储库获得。您需要启用contrib组件才能安装它。 sudo apt install软件属性公共sudo add apt repository contrib sudo apt update sudo apt install sabnzbdplus python sabyenc par2 SABYenc模块可以帮助提高CPU有限设备的下载速度。 为SABnzbd创建Systemd服务单元 尽管sabnzbdplus包提供了一个传统的Init脚本(/etc/Init.d/sabnzbdplus),但我发现它不起作用。我运行了以下命令来启动服务。 sudo服务sabnzbdplus启动 如果我用下面的命令列出Debian系统上的监听端口,那么找不到端口8080(默认情况下,SABnzbd监听端口8080)这表明它没有运行。 sudo ss-lnpt | grep 8080 启动SABnzbd的更好方法是使用Systemd服务单元。我们可以使用命令行文本编辑器(如Nano)为SABnzbd创建Systemd服务。 sudo nano/etc/systemd/system/sabnzbd。服务 将以下文本放入文件中。 [Unit]Description=SABnzbd Usenet Client After=网络。target[Service]Type=simple User=sabnzbd Group=sabnzbd ExecStart=/usr/bin/python-OO/usr/bin/sabnzbdplus--browser 0 ExecStop=/usr/bin/pkill sabnzbdplus Restart=always syslogidentier=sabnzbd Usenet Client[Install]WantedBy=multi-User。目标 默认情况下,SABnzbd监听端口8080。如果系统上的另一个进程正在使用这个端口,那么SABnzbd将自动选择另一个端口。我建议直接在ExecStart参数中选择一个端口,如下所示,这将使SABnzbd监听端口8081。 ExecStart=/usr/bin/python-OO/usr/bin/sabnzbdplus-s127.0.0.1:8081——浏览器0 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要关闭文件,请按Ctrl+X。) 然后重新加载系统D。 sudo systemctl后台程序重新加载 请注意,SABnzbd不需要root权限才能运行。所以我们已经在。SABnzbd应该作为没有根权限的SABnzbd用户和组运行的服务文件。使用以下命令创建sabnzbd系统用户和组。主目录将用于保存配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)。 sudo adduser——系统——home/home/sabnzbd——组sabnzbd 现在我们可以使用systemd服务启动sabnzbd。 sudo systemctl启动sabnzbd 启动时启用自动启动。 sudo systemctl启用sabnzbd 现在检查sabnzbd状态。 系统控制状态sabnzbd 样本输出: 启动安装向导 您可以在任何web浏览器中输入127.0.0.1:8080/sabnzbd/wizard以启动快速启动向导。如果在远程Debian服务器上安装了SABnzbd,则需要使用Nginx或Apache设置反向代理,以便访问web UI,本教程稍后将对此进行解释。 选择一种语言。在下一个屏幕中,输入Usenet提供商的服务器详细信息。我使用NewsDemon,它提供15天的免费试用期。这些服务器详细信息可以从您的Usenet提供商处获得。如果您的Usenet支持SSL,请确保勾选SSL。 为了从Usenet下载内容(图像、音频、视频、电子书等),您需要向SABnzbd提供一个NZB文件。NZB文件,类似于。torrent文件,可以从像nzbfinder这样的Usenet索引网站下载。ws。这些网站大多基于免费模式。你可以选择建立自己的免费Usenet indexer,但是现在对于一个Usenet初学者来说,在这些Usenet索引站点注册免费帐户是一个好主意,看看你能得到什么。从截图中可以看出,下载速度非常快。(16.8 MB/s=134.4 Mbit/s) 如何更改下载目标文件夹 默认的下载文件夹是/home/sabnzbd/Downloads。如果要将其更改为另一个目录,例如外部硬盘,请单击SABnzbd web界面中的文件夹菜单。然后单击浏览器按钮进行更改。 请注意,sabnzbd用户需要对下载目标文件夹具有读写权限。如果使用外部USB硬盘,可以运行以下命令授予权限。 sudo setfacl-R-mu:sabnzbd:rwx/media/linuxbabe/ 我的外部USB硬盘安装在/media/linuxbabe/,请根据需要进行更改。 设置反向代理 要使用域名从远程连接(例如局域网外)访问SABnzbd web界面,可以使用Nginx或Apache设置反向代理。 如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 Nginx 在Debian上安装Nginx。 sudo apt安装nginx 启动Nginx web服务器。 sudo systemctl start nginx 然后在/etc/nginx/conf.d/目录中创建一个新的服务器块文件。 sudo nano/etc/nginx/conf.d/sabnzbd。形态 将以下文本粘贴到文件中。替换sabnzbd。你的领域。com与您首选的域名,不要忘记为其创建DNS记录。如果使用不同的端口,请将8080更改为自己的端口号。 服务器{listen 80;listen[::]:80;服务器名sabnzbd.your-domain.com;位置/{proxy_passhttp://127.0.0.1:8080; 代理设置头主机$httpU主机;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;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx。 sudo systemctl重新加载nginx 现在,您可以通过SABnzbd访问SABnzbd Web界面。你的领域。通用域名格式。如果您看到以下错误: 访问被拒绝-主机名验证失败 然后需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)并添加sabnzbd。你的领域。进入白名单。 host_whitelist=sabnzbd。你的领域。通用域名格式 然后重启SABnzbd。 sudo systemctl重启sabnzbd 阿帕奇 如果使用ApacheWeb服务器而不是Nginx,请按照以下说明设置反向代理。 安装Apache web服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块,还需要启用重写模块。 sudo a2enmod代理服务器u http重写 然后为SABnzbd创建一个虚拟主机文件。 sudo nano/etc/apache2/sites available/sabnzbd。形态 将以下文本放入文件中。替换sabnzbd。你的领域。com与您的实际域名,不要忘记为其创建DNS a记录。如果使用不同的端口,请将8080更改为自己的端口号。 &lt;虚拟主机*:80&gt;服务器名sabnzbd。你的领域。com ProxyPass/http://127.0.0.1:8080/ProxyPassReverse/http://127.0.0.1:8080/&lt/VirtualHost&gt; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite sabnzbd。形态 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 现在,您可以通过在浏览器地址栏中输入域名(SABnzbd.your-domain.com)远程访问SABnzbd。如果您看到以下错误: 访问被拒绝-主机名验证失败 然后需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)并添加sabnzbd。你的领域。进入白名单。 host_whitelist=sabnzbd。你的领域。通用域名格式 然后重启SABnzbd。 sudo systemctl重启sabnzbd 启用HTTPS 为了在您从外部访问SABnzbd web界面时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d sabnzbd。你的领域。通用域名格式 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d sabnzbd。你的领域。通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 限制访问 如果可以从公共互联网访问SABnzbd,那么设置用户名和密码非常重要,这可以在配置中完成&gt;通用&gt;保安科。 收尾 就这样!我希望本教程能帮助您在Debian上安装SABnzbd。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.22 浏览:1044
  • 如何使用纯FTPd在Debian 10上设置安全的FTP服务器

    Pure FTPd是一款免费的开源FTP服务器,其设计考虑了安全性。在本教程中,我们将学习如何使用纯FTPd在Debian 10上设置FTP服务器,以及如何实施TLS加密。 纯FTPd功能: 它支持SSL/TLS加密,因此可以保护密码和命令。 它可以在大多数类Unix系统上运行:Linux、BSDs、Solaris、Darwin、HPUX、AIX,甚至iPhone。 有21种语言可供选择。 允许您监视活动会话。 支持虚拟配额系统。 还有更多 有关完整的功能列表,请访问Pure FTPd官方网站。 步骤1:在Debian 10服务器上安装Pure FTPd 它位于软件存储库中,因此发出以下命令来安装FTP服务器。 sudo apt安装纯ftpd 一旦安装,Pure FTPd将自动启动,如下命令所示: systemctl状态纯ftpd 输出: ● 纯ftpd。已加载服务:已加载(/etc/init.d/pure-ftpd;已生成)活动:自2021-06-16 13:15:52 UTC周三起活动(运行);23秒前的文档:man:systemd sysv generator(8)任务:1(限制:558)内存:972.0K CGroup:/system。切片/纯ftpd。服务└─9223纯ftpd(服务器) 如果它没有运行,请用以下代码启动: sudo systemctl启动纯ftpd 它在TCP端口21上监听,这是控制端口,可以从中看到 sudo ss-lnpt |格雷普纯ftpd 另一个端口是数据端口(TCP端口20),用户通过FTP传输文件时将使用该端口。 默认情况下禁用匿名访问。从现在起,您可以使用系统帐户登录,但纯文本FTP是不安全的,强烈建议不要使用。为了有一个安全的FTP服务器,我们需要加密与TLS的通信。 第2步:实施TLS加密 要同时启用纯文本和TLS加密,请运行以下命令,创建/etc/pure-ftpd/conf/TLS文件,并将数字1放入该文件中。 echo 1 | sudo-tee/etc/pure-ftpd/conf/TLS 但建议禁用纯文本,只使用TLS加密,因此将数字2改为文件。 echo 2 | sudo-tee/etc/pure-ftpd/conf/TLS 现在我们实施了TLS,我们需要获得有效的TLS证书。不建议使用自签名证书,因为用户会看到如下屏幕截图所示的警告消息。 步骤3:从Let's Encrypt获取受信任的TLS证书 运行以下命令,从默认的Debian 10存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot 我建议使用standalone或webroot插件获取纯FTPd的TLS证书。 独立插件 如果Debian 10服务器上没有运行web服务器,可以使用独立插件。运行以下命令。别忘了为你的子域设置DNS记录。 sudo certbot certonly--独立--首选挑战http--同意tos--电子邮件[email ;protected]-d ftp。实例通用域名格式 哪里: certonly:获取证书,但不要安装它。 --standalone:使用standalone插件获取证书 --首选挑战http:执行http-01挑战以验证我们的域,该域将使用端口80。 --同意:同意让我们加密服务条款。 --电子邮件:电子邮件地址用于帐户注册和恢复。 -d:指定你的域名。 从下面的截图可以看出,我成功地获得了证书。 使用webroot插件 如果Debian 10服务器有一个web服务器,那么最好使用webroot插件来获取证书,因为webroot插件几乎适用于所有web服务器,我们不需要在web服务器中安装证书。 首先,您需要为ftp创建一个虚拟主机。实例通用域名格式。 阿帕奇 如果您使用的是Apache,那么 sudo nano/etc/apache2/sites available/ftp。实例通用域名格式。形态 并将以下行粘贴到文件中。 &lt;虚拟主机*:80&gt;服务器名ftp。实例com DocumentRoot/var/www/Pure-FTPd&lt/VirtualHost&gt; 保存并关闭文件。然后创建web根目录。 sudo mkdir/var/www/Pure-FTPd 将www数据(Apache用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 启用此虚拟主机。 sudo a2ensite ftp。实例通用域名格式 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd Nginx 如果您使用的是Nginx,那么 sudo nano/etc/nginx/conf.d/ftp。实例通用域名格式。形态 将以下行粘贴到文件中。 服务器{listen 80;listen[:]:80;server_name ftp.example.com;root/var/www/Pure-FTPd/;location~/.well-known/acme challenge{allow all;} 保存并关闭文件。然后创建web根目录。 sudo mkdir-p/var/www/Pure-FTPd 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd 步骤4:安装证书 Pure FTPd要求将证书和私钥合并到一个名为Pure FTPd的文件中。pem并存储在/etc/ssl/private/目录下。 更改为/etc/letsencrypt/live/ftp。实例com/directory。 sudo su-cd/etc/letsencrypt/live/ftp。实例com/ 您可以使用cat命令将两个文件合并为一个文件,如下所示。 猫全链。佩姆·普列夫基。pem | sudo-tee/etc/ssl/private/pure-ftpd。佩姆 确保只有root用户才能读取该文件。 sudo chmod 600/etc/ssl/private/pure-ftpd。佩姆 我们需要生成Diffie-Hellman参数: sudo openssl dhparam-out/etc/ssl/private/pure-ftpd dhparams。pem 4096 如果您的服务器只有一个CPU核心,那么这将需要很长时间(大约10分钟)。 完成后,重新启动纯FTPd。 sudo systemctl重新启动纯ftpd 检查状态以查看它是否正在运行。 systemctl状态纯ftpd 现在,您可以通过TLS连接到FTP服务器。 第5步:在防火墙中打开FTP端口 如果使用UFW防火墙,则运行以下命令打开TCP端口20和21。 sudo ufw允许20,21/tcp 第6步:连接到FTP服务器 如果您使用Nautilus file manager通过纯文本FTP://协议连接到FTP服务器 连接将被拒绝。 您必须使用ftps://,而不是ftp://。 默认情况下,FTP用户将被带到服务器上的/root目录。 请注意,Filezilla默认情况下不信任任何证书(自签名或CA签名)。用户必须选择为自己信任证书。 FileZilla未知证书警告 您需要使用FTP显式TLS协议(ftpes://ftp.example.com)在菲齐拉。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开根用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&amp;cd/etc/letsencrypt/live/ftp。实例com/&amp&amp;猫全链。佩姆·普列夫基。pem | tee/etc/ssl/private/pure ftpd。pem&amp&amp;systemctl重新加载纯ftpd 有必要重新加载纯ftpd,使其获取新的证书和私钥。 收尾 我希望本教程能帮助您在Debian 10上使用纯FTPd设置一个安全的FTP服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Twitter或Facebook上关注我们。

    2022.03.22 浏览:479
  • 如何使用Apache/Nginx在Ubuntu 20.04上安装FileRun

    本教程将向您展示如何使用Apache/Nginx web服务器在Ubuntu 20.04 LTS上安装FileRun。FileRun是一款自托管的Google Drive/Photos/Music替代产品。 文件运行功能 不需要索引。它可以直接访问文件系统上的文件。 与NextCloud兼容。 自动文件版本控制。 100%可品牌化。上传你自己的标志。 可扩展。有很多插件可以让你创建和编辑office文件、CAD文件等。 访客用户。 整理、同步和共享您的照片。 内置音乐播放器和组织者 要求 要学习本教程,您需要域名和服务器。我在namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。一台1G内存的服务器足以运行FileRun。一旦你有了一台服务器,就在上面安装Ubuntu,并按照下面的说明操作。 FileRun是用PHP编写的,使用MySQL/MariaDB数据库。为了学习本教程,假设您已经在Ubuntu20.04上设置了LAMP或LEMP堆栈。如果没有,请查看以下教程之一: 如何在Ubuntu 20.04服务器上安装LAMP stack 如何在Ubuntu 20.04服务器上安装LEMP堆栈 当你设置完LAMP或LEMP堆栈后,回到这里继续阅读。 第一步:在Ubuntu 20.04上下载FileRun 通过SSH登录到服务器。您始终可以使用以下命令在服务器上下载最新版本的FileRun。 wget-O文件运行。拉链https://filerun.com/download-latest 下载后,使用解压功能提取归档文件。 sudo apt安装unzip sudo mkdir-p/var/www/filerun/sudo unzip filerun。zip-d/var/www/filerun/ -d选项指定目标目录。FileRun web文件将被提取到/var/www/FileRun/。然后我们需要将该目录的所有者更改为www数据,以便web服务器可以写入该目录。 sudo chown www-data:www-data/var/www/filerun/-R 第2步:在MariaDB中创建数据库和用户 使用以下命令登录MariaDB数据库服务器。 sudo mysql 或者,您也可以使用此命令登录。 sudo mariadb 然后为FileRun创建一个数据库。本教程将数据库文件命名为run。你可以用任何你喜欢的名字。 创建数据库文件运行; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户filerun@localhost由“您的密码”标识; 授予此用户在filerun数据库上的所有权限。 授予filerun的所有权限。*到filerun@localhost; 刷新权限并退出。 同花顺特权;出口 步骤3:创建Apache或Nginx配置文件 阿帕奇 如果您更喜欢使用Apache web服务器,那么在/etc/apache2/sites available/目录中创建一个虚拟主机配置文件。 sudo nano/etc/apache2/sites available/filerun。形态 将以下文本放入文件中。替换filerun。实例使用你自己的域名。别忘了在DNS管理器中设置域名记录。 &lt;虚拟主机*:80&gt;服务器名文件运行。实例com DocumentRoot/var/www/filerun&lt;目录“/var/www/filerun”&gt;选项索引如下Symlinks AllowOverride All需要全部授予&lt/目录&gt;ErrorLog${APACHE_LOG_DIR}/filerun。错误log CustomLog${APACHE_log_DIR}/filerun。通道日志合并&lt/VirtualHost&gt; 保存并关闭文件。然后启用重写模块。 sudo a2enmod重写 然后启用这个虚拟主机。 sudo a2ensite文件运行。形态 重新启动Apache web服务器,使更改生效。 sudo systemctl重启apache2 Nginx 如果您更喜欢使用Nginx web服务器,那么创建一个filerun。conf文件位于/etc/nginx/conf.d/目录中。 sudo nano/etc/nginx/conf.d/filerun。形态 将以下文本放入文件中。替换filerun。实例使用你自己的域名。别忘了在DNS管理器中设置域名记录。 server{listen[:]:80;listen 80;server_name filerun.example.com;access_log/var/log/nginx/filerun.access.log;error_log/var/log/nginx/filerun.error.log;root/var/www/filerun/;index.php index.html;location/{try_files$uri$uri//index.php;}错误_第404/404页。html;错误_第500页502 503 504/50x。html;客户最大身体尺寸500米;位置=/50x。html{root/usr/share/nginx/html;}地点~/。php${fastcgi_pass unix:/run/php/php7.4-fpm.sock;fastcgi_-param SCRIPT_FILENAME$document_root$fastcgi_-SCRIPT_-name;include fastcgi_-params;include snippets/fastcgi-php.conf;}#启用gzip压缩gzip on;gzip_随时间而变化;gzip_min_长度1000;gzip_comp_5级;gzip_类型application/json text/css application/x-javascript application/javascript image/svg+xml;gzip#u代理任何;#较长的浏览器缓存寿命可以加快对页面位置的重复访问~*/。(jpg | jpeg | gif | png | webp | svg | woff | woff2 | ttf | css | js | ico | xml)${accesslog off log_not found off;expires 360d;}禁用对隐藏文件位置~//的访问。ht{access_log off;log_not_found off;deny all;} 保存并关闭文件。测试Nginx配置,然后重新加载Nginx以使更改生效。 sudo nginx-t sudo systemctl reload nginx 第4步:安装并启用PHP模块 运行以下命令来安装FileRun所需或推荐的PHP模块。 sudo apt安装imagemagick ffmpeg php imagick php7。4-mysql php7。4-fpm php7。4-常见php7。4-gd php7。4-json php7。4-卷曲php7。4-zip php7。4-XMLPHP7。4-Mb字符串php7。4-bz2 php7。4-intl Filerun使用ionCube加密其PHP文件,因此我们需要安装ionCube PHP加载程序来解密PHP文件。Dowload ionCube装载机。 wgethttps://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz 将其解压缩到/usr/lib/php/。 sudo tar-xzf ioncube装载机xzf lin x86-64。焦油gz-C/usr/lib/php 现在我们需要启用ioncube PHP扩展。 阿帕奇 如果使用Apache,则为ionCube创建PHP ini文件。 sudo nano/etc/php/7.4/apache2/conf.d/00-ioncube。伊尼 将以下行添加到此文件。 zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_7.4。所以 保存并关闭文件。我们需要创建第二个PHP ini文件。 sudo nano/etc/php/7.4/apache2/conf.d/filerun。伊尼 添加以下行。这是为了更改一些默认的PHP配置。 expose_php=Off error_reporting=E_ALL&amp~E_NOTICE display_errors=Off display_startup_errors=Off log_errors=On ignore_repeated_errors=Off allow_url_fopen=On allow_url_include=Off variables_order=“GPCS”allow_webdav_methods=On memory_limit=128M max_execution_time=300输出_缓冲=Off输出_handler=”“zlib。输出压缩=关闭zlib。output_handler=”“safe_mode=Off register_globals=Off magic_quotes_gpc=Off upload_max_filesize=20M post_max_size=20M enable_dl=Off disable_functions=”“disable_classes=”“session。save_handler=文件会话。使用u cookies=1个会话。仅使用u cookies=1个会话。自动启动=0个会话。cookie_lifetime=0会话。cookie_httponly=1个日期。时区=“UTC” 保存并关闭文件。重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 Nginx 如果使用Nginx,请编辑php。ini文件。 sudo nano/etc/php/7.4/fpm/php。伊尼 在[PHP]行的正下方添加以下行。 zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_7.4。所以 保存并关闭文件。我们需要创建第二个PHP ini文件。 sudo nano/etc/php/7.4/fpm/conf.d/10-ioncube。伊尼 添加以下行。这是为了更改一些默认的PHP配置。 expose_php=Off error_reporting=E_ALL&amp~E_NOTICE display_errors=Off display_startup_errors=Off log_errors=On ignore_repeated_errors=Off allow_url_fopen=On allow_url_include=Off variables_order=“GPCS”allow_webdav_methods=On memory_limit=128M max_execution_time=300输出_缓冲=Off输出_handler=”“zlib。输出压缩=关闭zlib。output_handler=”“safe_mode=Off register_globals=Off magic_quotes_gpc=Off upload_max_filesize=20M post_max_size=20M enable_dl=Off disable_functions=”“disable_classes=”“session。save_handler=文件会话。使用u cookies=1个会话。仅使用u cookies=1个会话。自动启动=0个会话。cookie_lifetime=0会话。cookie_httponly=1个日期。时区=“UTC” 保存并关闭文件。然后重启Nginx和PHP7。4-FPM。 sudo systemctl重启nginx php7。4-fpm 现在,您应该可以访问以下位置的FileRun基于web的安装向导:http://filerun.example.com,但在输入任何信息之前,让我们启用HTTPS。 第5步:启用HTTPS 为了在访问FileRun web界面时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Ubuntu 20.04上安装Let's Encrypt client(certbot)。 sudo apt更新sudo apt安装certbot 如果使用Nginx,还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 然后运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d filerun。实例通用域名格式 如果使用Apache,还需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 然后运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d filerun。实例通用域名格式 说明: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 &nbsp; 第6步:在Web浏览器中完成安装 去https://filerun.example.com启动基于web的安装向导。然后点击下一步按钮。 它将检查您的系统是否满足PHP扩展等要求。如果满足所有要求,请单击“下一步”。 在下一步中,输入您在步骤2中创建的MariaDB用户名、密码和数据库名称。 单击“下一步”后,安装向导将自动创建用户帐户。单击“下一步”继续。 在下一个屏幕上,您可以使用超级用户帐户登录。首次登录时,您需要为超级用户帐户创建一个主文件夹。 可以使用以下命令为超级用户创建主文件夹。 sudo mkdir/var/www/superuser sudo chown www-data/var/www/superuser/-R 然后在FileRun web界面中输入文件夹路径。并保存更改。 下一步,转到安全-&gt;API来启用API,以便客户端应用程序可以与服务器同步。 安装FileRun桌面同步客户端 在桌面上,FileRun使用Nextcloud客户端与服务器同步。在Ubuntu桌面上,您可以通过以下方式安装Nextcloud客户端: sudo apt安装nextcloud桌面 有关如何在其他平台上安装客户端应用程序,请查看FileRun下载页面。 如何设置电子邮件通知 如果有多个用户,那么最好让FileRun能够发送密码重置电子邮件等电子邮件通知。有关如何设置电子邮件服务器,请查看以下教程。请注意,我强烈建议在全新干净的操作系统上运行iRedMail邮件服务器。在具有其他web应用程序的操作系统上安装iRedMail可能会失败,并可能破坏现有的应用程序。 如何使用iRedMail在Ubuntu20.04上轻松设置功能齐全的邮件服务器 如果您不想运行自己的电子邮件服务器,可以设置SMTP中继。请参阅以下教程。 如何在Ubuntu20.04服务器上设置后缀SMTP中继 收尾 就这样!我希望本教程能帮助您使用Apache或Nginx在Ubuntu20.04服务器上安装FileRun。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:639