我可以使用 snap 在已经运行 Apache 的服务器上安装 nextcloud 吗?

我可以使用 snap 在已经运行 Apache 的服务器上安装 nextcloud 吗?

Nextcloud 是一个开源云数据服务器。在操作系统上,snapd您可以快速安装整个服务器: sudo snap install nextcloud

这似乎很神奇,但我被困在那里。我的服务器已经使用 Apache 托管了各种域,我甚至不知道在哪里可以找到 nextcloud 的登录页面。我能找到的所有说明/手册都没有解释站点在哪里,或者 snap 将如何与现有的 Apache 交互。我现在怀疑如果我已经在运行 Apache,我就不能使用 snap?但我读到的内容并不清楚。

我为 nextcloud 服务器配备了一个单独的 IP 域,因此我只需要 snap 来处理一个域名的请求。

我可以使用 snap 在已经运行 Apache 的服务器上安装 nextcloud 吗?

更新

我尝试了以下方法:

sudo snap install nextcloud
sudo snap set nextcloud ports.http=81
sudo snap restart nextcloud.apache

此时我可以看到 nextcloud 页面存在

links http://localhost:81

但是,我无法从另一台计算机访问它以继续设置。我该怎么做?(此时的希望是,我可以让服务器的主/现有 Apache2 服务器将端口 81 和 443 映射到我选择的域名的虚拟主机)。

更新 2:

上面的一个问题是,81 端口对外界而言已被封锁。

假设我在现有的 Ubuntu 18.04 LTS 服务器上有未使用的端口99929993在互联网上可见,该服务器的 IP 地址为 111.222.333.444:IP 名称为example.net;并且该服务器托管着已经在使用 的各种站点Apache 2.4.29-1ubuntu4.13;我已经设置了一个clouddomain.example.org指向与 相同 IP 地址的新 IP 名称example.net

我发现使用现代浏览器,即使在隐身模式下,甚至使用 ctrl-shift-r 重新加载页面,也无法反映我所做的最新更改(即缓存内容)。因此,我使用links下面的程序来测试 URL。

我跑

sudo snap install nextcloud
sudo nextcloud.manual-install myadmin mypassword
sudo snap set nextcloud ports.http=9992

在此刻,

links http://example.net:9992

显示 nextcloud 登陆页面。

然后我设置了一个 Apache .conf 文件,内容如下

<VirtualHost 111.222.333.444:80>
    ServerName   clouddomain.example.org
        ErrorLog     /var/log/apache2/clouddomain.example.org_error_log
        CustomLog    /var/log/apache2/clouddomain.example.org_access_log combined
ProxyPass / http://localhost:9992/
ProxyPassReverse / http://localhost:9992/
</VirtualHost>

然后我将其从 sites-available 链接到 sites-enabled ,并使用以下方法之一重新启动操作系统的 Apache 服务器:

sudo service apache2 reload
sudo service apache2 reload

现在

links http://clouddomain.example.org

带我进入下一个云页面。调用

sudo nextcloud.occ config:system:set overwritehost --value="clouddomain.example.org"

在这一点上没有什么区别。

接下来,我需要让网站使用 SSL (https)。我无法做到。如果我调用

sudo nextcloud.enable-https lets-encrypt

并输入相应的信息,系统会提示我证书已颁发,Apache 已重新启动。但是,这并没有起到任何作用。非 SSL 页面不再可用;它给出了 503 错误。SSL 页面也不可用:

links https://clouddomain.example.org:9993

给出拒绝连接。目前没有为这些努力创建错误事件/var/snap/nextcloud/current/apache/logs/error_log

毫不奇怪,为 example.net 上的 Apache2 服务器创建第二个代理配置没有帮助,但这是我正在使用的:

<VirtualHost 111.222.333.444:80>
    ServerName   clouddomain.example.org
        ErrorLog     /var/log/apache2/clouddomain.example.org_error_log
        CustomLog    /var/log/apache2/clouddomain.example.org_access_log combined
ProxyPass / http://localhost:9992/
ProxyPassReverse / http://localhost:9992/
</VirtualHost>

我注意到了另一个问题,这说明我的问题之一可能是特殊的,尽管我认为这不是唯一的问题:当我激活 SSL 代理时,我的其他网站(不在 clouddomain.example.org 上,而由服务器 example.net 托管)无法通过 https 连接。即使没有安装 nextcloud,情况也是如此。

相关内容