前景概要
如果在使用页面进行设置时出现“安全与设置警告”页面,那是有几项需要修改,下面是修改详解。
安全与警告界面
一、缓存
推荐Redis
|
1 |
apt install redis |
修改config配置文件:
|
1 |
vim /var/www/nextcloud/config/config.php |
在最后 ) 前加入:
|
1 2 3 4 5 6 7 8 9 |
#开启缓存,分类型同时使用APCU和REDIS。 'memcache.local' => '\\OC\\Memcache\\APCu', 'filelocking.enabled' => true, 'memcache.locking' => '\OC\Memcache\Redis', 'memcache.distributed' => '\OC\Memcache\Redis', 'redis' => [ 'host' => 'localhost', 'port' => 6379, ], |
二、PHP的memory_limit以及opcache.memory_consumption优化
由于之前安装完PHP没有进行优化,类似上传文件大小等,这边全部贴上,避免来回编辑(查看您自己的PHP版本,本文以PHP8.4为例):
|
1 |
vim /etc/php/8.4/fpm/php.ini |
依次搜索下面几项并更改其内容:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
php_value max_input_time 3000 php_value max_execution_time 6000 memory_limit = 1024M post_max_size = 1024M upload_max_filesize = 1024M max_file_uploads = 100 opcache.enable = 1 opcache.interned_strings_buffer = 32 opcache.max_accelerated_files = 10000 opcache.memory_consumption = 128 opcache.save_comments = 1 opcache.revalidate_freq = 1 |
编辑www.conf,根据服务器内存配置情况填写以下数值(4G内存计算):
|
1 |
vim /etc/php/8.4/fpm/pool.d/www.conf |
修改以下参数:
|
1 2 3 4 5 |
pm = dynamic pm.max_children = 300 pm.start_servers = 18 pm.min_spare_servers = 6 pm.max_spare_servers = 36 |
三、默认电话区域
修改config配置文件:
|
1 |
vim /var/www/nextcloud/config/config.php |
添加:
|
1 |
'default_phone_region' => 'CN', |
四、增加视频预览
安装php-imagick以及ffmpeg
|
1 2 |
apt install libmagickcore-6.q16-6-extra apt install ffmpeg |
修改config配置文件:
|
1 |
vim /var/www/nextcloud/config/config.php |
添加:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
'enabledPreviewProviders' => array ( 0 => 'OC\\Preview\\PNG', 1 => 'OC\\Preview\\JPEG', 2 => 'OC\\Preview\\GIF', 3 => 'OC\\Preview\\HEIC', 4 => 'OC\\Preview\\BMP', 5 => 'OC\\Preview\\XBitmap', 6 => 'OC\\Preview\\MP3', 7 => 'OC\\Preview\\TXT', 8 => 'OC\\Preview\\MarkDown', 9 => 'OC\\Preview\\Movie' ), |
五、更改访问国内市场
还是在config配置文件中增加:
|
1 2 3 |
'updater.release.channel' => 'stable', 'appstoreenabled' => true, 'appstoreurl' => 'Nextcloud', |
优化
优化这块因服务器而异,这里把一些最基础的发出来供参考:
优化一:解除nextcloud上传文件块大小限制
进入nextcloud文件目录
|
1 |
cd /var/www/nextcloud |
输入以下代码:
|
1 |
-u www-data php occ config:app:set files max_chunk_size --value 0 |
显示以下内容表示成功:
|
1 |
Config value max_chunk_size for app files set to 0 |
优化二:数据库优化
编辑20-mysqli.ini文件:
|
1 |
vim /etc/php/8.4/fpm/conf.d/20-mysqli.ini |
最底下加入以下内容:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[mysql] mysql.allow_local_infile=On mysql.allow_persistent=On mysql.cache_size=2000 mysql.max_persistent=-1 mysql.max_links=-1 mysql.default_port= mysql.default_socket=/run/mysqld/mysqld.sock #这个根据我们之前的配置 mysql.default_host= mysql.default_user= mysql.default_password= mysql.connect_timeout=60 mysql.trace_mode=Off |
编辑mariadb.cnf文件:
|
1 |
vim /etc/mysql/mariadb.cnf |
加入以下内容:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[server] skip_name_resolve = 1 innodb_buffer_pool_size = 128M innodb_buffer_pool_instances = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 32M innodb_max_dirty_pages_pct = 90 query_cache_type = 1 query_cache_limit = 2M query_cache_min_res_unit = 2k query_cache_size = 64M tmp_table_size= 64M max_heap_table_size= 64M slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1 [mysqld] character_set_server = utf8mb4 collation_server = utf8mb4_general_ci transaction_isolation = READ-COMMITTED binlog_format = ROW innodb_large_prefix=on innodb_file_format=barracuda innodb_file_per_table=1 |
优化三:为nextcloud启用Cron代替ajax,提高性能
方法一
添加crontab定时任务
|
1 |
crontab -u www-data -e |
添加一行,并保存:
|
1 |
*/5 * * * * php -f /var/www/nextcloud/cron.php //每5分钟运行一次 |
检查效果:
|
1 |
crontab -u www-data -l |
输出:
|
1 |
[snip]*/5 * * * * php -f /var/www/nextcloud/cron.php |
方法二
在 /etc/systemd/system目录新建 nextcloudcron.service 和 nextcloudcron.timer 两个文件:
|
1 |
vim /etc/systemd/system/nextcloudcron.service |
输入以下内容:
|
1 2 3 4 5 6 7 8 9 |
[Unit] Description=Nextcloud cron.php job [Service] User=www-data #运行用户,一般为www-data ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php #你的cron.php路径,前面那个路径一般不用改,除非你是用宝塔面板之类的 [Install] WantedBy=basic.target |
保存退出。
|
1 |
vim /etc/systemd/system/nextcloudcron.timer |
输入以下内容:
|
1 2 3 4 5 6 7 8 9 10 |
[Unit] Description=Run Nextcloud cron.php every 5 minutes [Timer] OnBootSec=5min OnUnitActiveSec=5min Unit=nextcloudcron.service [Install] WantedBy=timers.target |
这里不用修改,就是个定时。 最后,执行下面的命令就可以了:
|
1 |
systemctl enable --now nextcloudcron.timer |
最后点到基本设置里,选择cron的方式,等5分钟看看情况就行了。
小Tips:cron运行出错解决
出错类型为在nextcloud设置-概览中看到:系统计划任务超过X小时未运行,请查看….
日志错误:OC\HintException: 0: Memcache \OC\Memcache\APCu not available for local cache
解决方法:
修改/etc/php/8.4/mods-available/apcu.ini
|
1 |
vim /etc/php/8.1/mods-available/apcu.ini |
添加一行:
|
1 |
apc.enable_cli=1 |
保存退出,等5分钟再看看。
总结
本站亲自验证过,未出现任何错误,如果您安装步骤部署如果有什么新的问题欢迎留言给我们,以上的代码来自于网上搜集。




