前景概要
上一篇文章我们安装完Nextcloud,打造了你的第一个私人网盘,但是会发现在设置
–概览
页面,依然会有一些设置上的警告。
这篇文章会一个一个进行处理,达到所有检查都通过并针对性地优化服务器。
安全与警告界面
1.缓存
推荐 Redis
1
|
apt install redis
|
修改 config.php
配置文件:
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, ], |
2.PHP的 memory_limit
以及 opcache.memory_consumption
优化
由于之前安装完PHP没有进行优化,类似上传文件大小等,这边全部贴上,避免来回编辑:
1
|
vim /etc/php/8.1/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.1/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 |
3.默认电话区域
修改 config.php
配置文件:
1
|
vim /var/www/nextcloud/config/config.php
|
添加:
1
|
'default_phone_region' => 'CN',
|
4.增加视频预览
安装 php-imagick
以及 ffmpeg
1 2 |
apt install libmagickcore-6.q16-6-extra apt install ffmpeg |
修改 config.php
配置文件:
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' ), |
5.更改访问国内市场
还是在 config.php
配置文件中增加:
1 2 3 |
'updater.release.channel' => 'stable', 'appstoreenabled' => true, 'appstoreurl' => 'Nextcloud', |
优化
优化这块因服务器而异,这里把一些最基础的发出来供参考:
1.解除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
|
2.数据库优化
编辑 20-mysqli.ini
文件:
1
|
vim /etc/php/8.1/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 |
3.为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分钟看看情况就行了。
cron运行出错解决
出错类型为在nextcloud设置-概览中看到:系统计划任务超过X小时未运行,请查看….
日志错误:*
OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache
*
解决方法:
修改/etc/php/8.1/mods-available/apcu.ini
1
vim /etc/php/8.1/mods-available/apcu.ini
添加一行:
1
apc.enable_cli=1
保存退出,等5分钟再看看。
当然,也可以直接在
etc/php/8.1/fpm/php.ini
中设置opcache.enable_cli=1
总结
至此,我们已经从零开始部署了Wordpress以及Nextcloud,相信有这两个,80%的需求应该已经完成了。
如果能够成功地看完并付诸实践,相信搭建一些前端的小应用也难不倒你了。
接下来可以更加愉快的找点新东西学习学习了。
评论(0)