Bootstrap

[手机Linux] 七,NextCloud优化设置

安装完成后在个人设置里发现很多警告,一一消除。

只能一条一条解决了。

关于您的设置有一些错误。

1,PHP 内存限制低于建议值 512 MB。

设置php配置文件: /usr/local/php/etc/php.ini

把里面的: memory_limit = 128M  根据你自身的机器内存改大,要大于512M

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

安装模块:Usage: ./addons.sh install {eaccelerator|xcache|memcached|opcache|redis|imagemagick|ioncube|sg|exif|fileinfo|l                  dap|bz2|sodium|imap|swoole}

cd lnmp2.0  # 使用lnmp 安装
sudo ./addons.sh install opcache

安装完成后打开文件:/usr/local/php/etc/php.ini  找到下面参数配置

设置参数:

;zend_extension=opcache
zend_extension="opcache.so"

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.save_comments=1

3,您正在通过不安全的 HTTP 访问网站。我们强烈建议您在服务器上启用 HTTPS,更多资讯请参见安全贴士 ↗。如果不这样设置,某些重要网页功能,如“复制到剪贴板”和“Service Workers”将无法工作。

4,此服务器没有工作的互联网连接:无法访问多个端点。这意味着一些功能,如挂载外部存储、更新或安装第三方应用程序的通知将无法工作。远程访问文件和发送通知邮件也可能无法工作。建立从这个服务器到互联网的连接,以享受所有功能。(没解决,下面参考)

此报错的原因有以下两个,一般情况均为原因(2)造成的。

(1)服务器断网或手动禁止了Nextcloud访问互联网

(2)国内网络无法访问check联网的地址

Nextcloud默认会访问预设好的地址,去检查服务器的互联网是否正常,这些预设的地址如下表,全部为国外的地址,在国内如果因网络波动情况无法访问预设的网址,就会出现以上报错。

预设访问地址如下:

'www.nextcloud.com',
'www.startpage.com',
'www.eff.org',
'www.edri.org'

解决办法
原因(1)解决办法:
    恢复服务器网络、允许Nextcloud访问互联网
原因(2)解决办法:
    将国外地址更换为国内的地址。修改config.php文件,在配置文件末尾 ); 前添加以下内容

  'connectivity_check_domains' => [
  'www.orcy.net',
  'link.orcy.net.cn',
  '1.hvz.cc'
  ],

5,PHP 的安装似乎不正确,无法访问系统环境变量。getenv("PATH") 函数测试返回了一个空值。 了解更多详情,请参见文档 ↗

修改PHP的配置文件/usr/local/php/etc/php-fpm.conf,在其尾部添加:
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

6,您的网页服务器未正确设置以解析“/.well-known/webfinger”。更多信息请参见文档↗

  1. 您的网页服务器未正确设置以解析“/.well-known/nodeinfo”。更多信息请参见文档↗
  2. 您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档↗
  3. 您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档↗

您的网络服务器未正确设置来解析 `.wellknown` URL,失败于: `/.well-known/webfinger` 了解更多详情,请参见文档 ↗

/usr/local/nginx/conf/nginx.conf

location ^~ /.well-known {

            location = /.well-known/webfinger   {return 301 $scheme://$host:80/nextcloud/index.php/.well-known/webfinger;}
            location = /.well-known/nodeinfo    {return 301 $scheme://$host:80/nextcloud/index.php/.well-known/nodeinfo;}

            location = /.well-known/carddav     {return 301 $scheme://$host:80/nextcloud/remote.php/dav/;}
            location = /.well-known/caldav      {return 301 $scheme://$host:80/nextcloud/remote.php/dav/;}

            try_files $uri $uri/ =404;
        }

location = /ocm-provider/ {return 301 /index.php/ocm-provider;}

如果上面方法不行,那就解决产生问题的人吧:

在/home/wwwroot/default/nextcloud/config/config.php 添加以下行来禁用对.well-known设置的检查.

'check_for_working_wellknown_setup' => false,

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

Usage: ./addons.sh install {eaccelerator|xcache|memcached|opcache|redis|imagemagick|ioncube|sg|exif|fileinfo|l                  dap|bz2|sodium|imap|swoole}

cd lnmp2.0  # 使用lnmp 安装

sudo ./addons.sh install apcu

在/home/wwwroot/default/nextcloud/config/config.php 文件添加下面行:

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

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

在文件 /home/wwwroot/default/nextcloud/config/config.php  的$CONFIG = array ()里面增加一行

添加:'default_phone_region' => 'CN',

改完后记得把文件的owner给回www用户

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

第4个未解决,这个也解决不了。

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


安装模块:

cd lnmp2.0      # 使用lnmp 安装
sudo ./addons.sh install imageMagick


如安装过程下载失败,可以手动下载放到src文件夹里:

https://soft.lnmp.com/web/imagick/imagick-3.7.0.tgz

安装完成后添加以下到:/usr/local/php/etc/php.ini

extension="imagick.so"

11,“Strict-Transport-Security”HTTP 头未设为至少“15552000”秒。为了提高安全性,建议启用 HSTS,参考步骤见安全小贴士 ↗

在/usr/local/nginx/conf/vhost 添加文件: www.cloud.yourdomain.conf

内容为:

add_header Strict-Transport-Security "max-age=15768000;preload;";

12,cron 上次任务太久未执行。

sudo service cron start

sudo crontab -u www -e

加上下面定时任务:

*/5  *  *  *  * php -f /home/wwwroot/default/nextcloud/cron.php



查看任务是否加进去:
sudo crontab -u www -l

13,数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行“occ db:add-missing-indices”命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。 索引 "systag_by_objectid" 不存在于表 "systemtag_object_mapping"。

cd /home/wwwroot/default/nextcloud
sudo chmod 555 ./occ
sudo -u www ./occ db:add-missing-indices

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

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php            # 增加php的下载库,就可以找到php8的模块了
sudo add-apt-repository ppa:ondrej/nginx-mainline

sudo apt update

## 安装对应的模块
sudo apt install php-gmp

## 可以用lnmp安装Sodium
cd /app/download/nextcloud29/lnmp2.1 
sudo ./addons.sh install sodium
sudo ./addons.sh install exif

 sudo ./addons.sh --help  # 查看可以安装什么

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

sudo vim /home/wwwroot/default/nextcloud/config/config.php

增加:
'maintenance_window_start' => 1,

16,您的网络服务器不使用 JavaScript MIME 类型提供 ".mjs" 文件。 这会阻止浏览器执行 JavaScript 文件,从而破坏某些应用程序。 您应该配置您的网络服务器以使用 "text/javascript" 或 "application/javascript" MIME 类型提供 ".mjs" 文件。

sudo vim /usr/local/nginx/conf/nginx.conf

# 在http添加
types { application/javascript mjs; }

17,自从 xxx.xxx.xxx, 3:17:27 PM 日志中存在 xxx 个错误

sudo vim /home/wwwroot/default/nextcloud/data/nextcloud.log

##把error 的log清掉即可

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

添加 Memcached 和redis,但是添加了Memcached后还是有提示,改为redis就没提示了。

cd /app/download/nextcloud29/lnmp2.1/

sudo ./addons.sh install Memcached

sudo vim /home/wwwroot/default/nextcloud/config/config.php

# 添加:
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
'memcached_servers' =>
  array (
    0 =>
    array (
      0 => 'localhost',
      1 => 11211,
    ),
  ),


sudo chown www:www /home/wwwroot/default/nextcloud/config/config.php

cd /home/wwwroot/default/nextcloud/
sudo -u www php occ config:app:set files max_chunk_size --value 0
cd /app/download/nextcloud29/lnmp2.1/

sudo ./addons.sh install Redis

sudo vim /home/wwwroot/default/nextcloud/config/config.php

# 添加:
#'memcache.distributed' => '\OC\Memcache\Redis',
  #'redis' => array(
  #'host' => 'localhost',
  #'port' => 6379,
  #),

'memcache.local' => '\OC\Memcache\Redis',
'redis' => [
   'host' => 'localhost',
   'port' => 6379,
],
'memcache.locking' => '\OC\Memcache\Redis',


sudo chown www:www /home/wwwroot/default/nextcloud/config/config.php

cd /home/wwwroot/default/nextcloud/
sudo -u www php occ config:app:set files max_chunk_size --value 0

19,您的 Web 服务器未正确设置以解析 "/ocm-provider/"。 这很可能与未更新以直接提供此文件夹的 Web 服务器配置有关。 请将您的配置与 Apache 的 ".htaccess" 中提供的重写规则或 Nginx 文档中提供的重写规则进行比较。 在 Nginx 上,通常以 "location ~" 开头的行需要更新。 了解更多详情,请参见文档 ↗

sudo vim /usr/local/nginx/conf/nginx.conf

记得设置完后重启LNMP:

sudo service nginx restart
sudo service mysql restart
sudo service php-fpm restart

或用:
sudo lnmp restart

sudo lnmp status  ## 查看状态

/home/wwwroot/default/nextcloud/config/config.php

owner 改回www

sudo chown www:www /home/wwwroot/default/nextcloud/config/config.php

;