Nextcloud部署安装教程-基于宝塔面板的手把手教学

Nextcloud非常棒!因为Lop我最近迷上了Nextcloud Talk。你有没有想过不通过微信、QQ、FaceTime之类的第三方软件实现视频语音聊天?Nextcloud Talk应用完美的实现了自建语音视频聊天的需求。搭建的过程确实有许多坑,但好在网络上有很多先辈留下的教程。Lop今天就把所有遇到的坑都总结出来,一步一步的教大家如何搭建Nextcloud,并且安装Nextcloud Talk应用。

首先,让我们来考虑一下把Nextcloud搭建在哪里。由于之前有一个闲置的甲骨文账号,提供长期免费的服务器。如果选择ARM版本的最高可以有4核、24G的内存。用来搭建Nextcloud简直再好不过了。

搭建Nextclou 所需的前期准备

  • 域名(演示用 nextcloud.izcv.com这个二级域名)
  • Linux系统的服务器(这里演示用免费的甲骨文)

Nextcloud 有很多种搭建方式,比方说Docker、Snap等等等等。本次搭建选择宝塔面板来部署Nextcloud所需要的环境。毕竟很多小白和我一样,对宝塔面板还是很熟悉的。也便于后续的管理。

一、服务器及环境要求

Nextcloud官网推荐配置截图

根据官方的推荐配置,我们最终选择的搭配为:

  • 操作系统: Ubuntu 22.04 LTS
  • 数据库: MySQL 8.4
  • WEB服务器:Apache 2.4
  • PHP版本: PHP 8.3

二、正式部署前的准备工作

· 域名解析

将我们准备的域名添加A记录,解析到计划要安装Nextcloud的服务器上。如下图

· 宝塔环境安装

我们在Ubuntu 22.04 的服务器上已经装好宝塔(Linux 系统安装宝塔的过程我就不赘述了。宝塔官网有教程,一键搞定),接下来通过宝塔安装运行环境。按照官方的推荐配置,我们选择MySQL 8.4Apache 2.4PHP 8.3

这里需要额外的说明,如果你也是甲骨文的ARM机器,MySQL 8.4 在宝塔中需要选择编译安装。因为快速安装会失败^ – ^别问我为啥,因为我也失败了。但是Apache和PHP用快速安装就可以搞定。当然你也可以全部选择编译安装,但是时间有点久。

· 添加站点

宝塔后台 – 网站 -PHP项目 – 添加站点

在弹出的页面中填写域名,注意同时创建MySQL数据库以及PHP的版本。

· 申请SSL证书

如果使用http不带证书的话,安装好Nextcloud之后会报错。为了更加安全可靠咱们还是通过宝塔申请一个免费的SSL证书吧。整个过程也非常丝滑。

在网站的后面点击“设置”

按照下面图片中的按钮顺序依次点击:SSL – Let’s Encrypt – 申请证书

申请的时间大概30秒左右。

· 下载Nextcloud主程序

点击网站的根目录进入目录

将目录中自带的所有文件全部删除。然后点击 上传/下载URL链接下载

然后将Nextcloud主程序的最新版链接添加到URL地址中,将latest.zip下载到根目录当中。

https://download.nextcloud.com/server/releases/latest.zip

最后把 latest.zip 进行解压缩。并且把解压缩后的所有文件及文件夹复制到根目录当中。(别忘了把残留的 latest.zip 以及 nextcloud目录删除掉)

· 访问域名正式安装

浏览器访问 https://nextcloud.izcv.com

即可进入到安装界面,这个时候会弹出来一个十分不友好的提示!如下图:

PHP module mbstring not installed.

不必惊慌,问题不大。只是因为咱们的PHP缺少必须的扩展 mbstring 导致的。

我们只需要在宝塔面板中:软件商店已安装 找到PHP点击后面的设置 最后点击安装扩展 找到 mbstring 安装即可。

安装扩展后刷新你的域名页面即可正常弹出安装选项

注意选择MySQL/MariaDB的按钮,然后正确填写数据库名、数据库用户名以及数据库密码。什么?你不知道数据信息?刚才建立网站的时候不是同时建立了一个数据么~宝塔面板里可以查询的到哈。

最后点击Install 即可开始安装。只需片刻功夫你就拥有了一个属于自己的Nextcloud啦~是不是十分的简单。后续的过程只需要一路的下一步就可以啦。默认给你装好精选的应用。

至此安装过程就结束啦。至于怎么设置成简体中文等等就自行研究吧~

三、报错解决

经过以上的步骤,Nextcloud就算是一个安装完成啦。但是当我们通过后台访问的时候,会发现有很多提醒。包含:红色、橙色和黑色。这些提醒是一些优化的内容,更好的优化能够带来更快的响应速度,避免安全风险。让我们接下来一个一个解决掉他们吧。

PHP 内存限制低于推荐值 512 MB。某些功能或应用 — 包括更新程序 — 可能无法正常运行。

The PHP memory limit is below the recommended value of 512 MB. Some features or apps – including the Updater – may not function properly.

该实例缺少一些必须的PHP模块。必须安装以下模块:fileinfo 了解更多详情,请参见文档 ↗

This instance is missing some required PHP modules. It is required to install them: fileinfo. For more details see the documentation ↗.

PHP OPcache 模块配置不正确。未加载 PHP OPcache 模块。为了更好的性能,建议将其加载到您的 PHP 安装中。. 了解更多详情,请参见文档 ↗

The PHP OPcache module is not properly configured. The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation.. For more details see the documentation ↗.

未配置高性能后端——在没有高性能后端的情况下运行 Nextcloud Talk 仅适用于非常小规模的通话(最多 2-3 位参与者)。请设置高性能后端,以确保多位参与者的通话无缝进行。 了解更多详情,请参见文档 ↗

No High-performance backend configured – Running Nextcloud Talk without the High-performance backend only scales for very small calls (max. 2-3 participants). Please set up the High-performance backend to ensure calls with multiple participants work seamlessly. For more details see the documentation ↗.

服务器没有配置维护时段开始时间。 这意味着资源密集型日常后台作业也将在您的主要使用时间执行。 我们建议将其设置为低使用率的时间,这样用户就不会受到这些繁重任务造成的负载的影响。 了解更多详情,请参见文档 ↗

Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks. For more details see the documentation ↗.

通过宝塔面板在线编辑/www/wwwroot/nextcloud.izcv.com/config/config.php这个文件。在下图的位置添加如下代码。

  'maintenance_window_start' => 1,

One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair –include-expensive` to perform the migrations.

通过SSH链接到你的服务器,执行以下代码即可。注意目录要替换成你自己的。

sudo su
cd /www/wwwroot/nextcloud.izcv.com
sudo -u www ./occ maintenance:repair --include-expensive

您的实例上的某些标头设置不正确 – 未设置 `Strict-Transport-Security` HTTP 标头(应至少为 `15552000` 秒)。为了增强安全性,建议启用 HSTS。 了解更多详情,请参见文档 ↗

Some headers are not set correctly on your instance – The Strict-Transport-Security HTTP header is not set (should be at least 15552000 seconds). For enhanced security, it is recommended to enable HSTS. For more details see the documentation ↗.

在网站的设置中,点击配置文件。在下图中所示的位置添加下面的代码保存即可。

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>

检测到一些缺失的可选索引。偶尔会添加新的索引(由 Nextcloud 或已安装的应用程序)以提高数据库性能。添加索引有时需要一段时间,并会暂时损害性能,因此在升级过程中不会自动完成。一旦添加了索引,对这些表的查询应该会更快。使用命令 `occ db:add-missing-indices` 来添加索引。 缺少引索: “mail_messages_strucanalyz_idx”在数据库表“mail_messages”中, “mail_acc_prov_idx”在数据库表“mail_accounts”中, “mail_alias_accid_idx”在数据库表“mail_aliases”中, “mail_messages_mb_id_uid_uidx”在数据库表“mail_messages”中, “mail_smime_certs_uid_email_idx”在数据库表“mail_smime_certificates”中, “mail_trusted_senders_idx”在数据库表“mail_trusted_senders”中, “mail_coll_idx”在数据库表“mail_coll_addresses”中 了解更多详情,请参见文档 ↗

Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command occ db:add-missing-indices to add them. Missing indices: “mail_messages_strucanalyz_idx” in table “mail_messages”, “mail_acc_prov_idx” in table “mail_accounts”, “mail_alias_accid_idx” in table “mail_aliases”, “mail_messages_mb_id_uid_uidx” in table “mail_messages”, “mail_smime_certs_uid_email_idx” in table “mail_smime_certificates”, “mail_trusted_senders_idx” in table “mail_trusted_senders”, “mail_coll_idx” in table “mail_coll_addresses” For more details see the documentation ↗.

通过SSH链接到你的服务器,执行以下代码即可。注意目录要替换成你自己的。

sudo su
cd /www/wwwroot/nextcloud.izcv.com
sudo -u www ./occ db:add-missing-indices

当前正在使用数据库处理事务性文件锁定。若有内存缓存可用,请进行配置以提升性能。 了解更多详情,请参见文档 ↗

The database is used for transactional file locking. To enhance performance, please configure memcache, if available. For more details see the documentation ↗.

首先在PHP的设置中安装 Memcached 和 Redis 扩展。

通过宝塔面板在线编辑/www/wwwroot/nextcloud.izcv.com/config/config.php这个文件。在下图的位置添加如下代码。

  'memcache.distributed' => '\\OC\\Memcache\\Memcached',
  'memcached_servers' => 
  array (
    0 => 
    array (
      0 => 'localhost',
      1 => 11211,
    ),
  ),
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => 'localhost',
    'port' => 6379,
  ),

未配置内存缓存。若有内存缓存可用,请进行配置以提升性能。 了解更多详情,请参见文档 ↗

No memory cache has been configured. To enhance performance, please configure a memcache, if available. For more details see the documentation ↗.

先在PHP设置中安装 apcu 扩展。

通过宝塔面板在线编辑/www/wwwroot/nextcloud.izcv.com/config/config.php这个文件。在下图的位置添加如下代码。

'memcache.local' => '\\OC\\Memcache\\APCu',

您在安装过程中未设置默认的国际区号。缺失国际区号的电话号码时将使用默认的国际区号进行验证。要允许无国际区号的电话,请在您的配置文件中添加 “default_phone_region” 设置选项并依照 ISO 3166-1 进行设置。 了解更多详情,请参见文档 ↗

Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add “default_phone_region” with the respective ISO 3166-1 code of the region to your config file. For more details see the documentation ↗.

通过宝塔面板在线编辑/www/wwwroot/nextcloud.izcv.com/config/config.php这个文件。在下图的位置添加如下代码。

'default_phone_region' => 'CN',

您尚未配置电子邮件服务器或尚未验证配置。请在“基本设置”中进行配置。配置完毕后,请点击表单下方的“发送电子邮件”按钮来验证您的设置。 了解更多详情,请参见文档 ↗

You have not set or verified your email server configuration, yet. Please head over to the “Basic settings” in order to set them. Afterwards, use the “Send email” button below the form to verify your settings. For more details see the documentation ↗.

此实例缺少一些推荐的 PHP 模块。为了提高性能和更好的兼容性,强烈建议安装它们: – exif 用于服务器中的图片旋转和照片应用程序中的元数据提取 – gmp 用于 WebAuthn 无密码登录和 SFTP 存储 了解更多详情,请参见文档 ↗

This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them: – exif for picture rotation in server and metadata extraction in the Photos app – gmp for WebAuthn passwordless login, and SFTP storage For more details see the documentation ↗.

PHP 模块“imagick”没有被启用,尽管已启用了主题程序。为了使收藏图标正常生成,您需要安装并启用这个模块。 了解更多详情,请参见文档 ↗

The PHP module “imagick” is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module. For more details see the documentation ↗.

评论已关闭。