网站搭建后如何使用,达内网站开发培训,西服定制一般多少钱,手机网站大全排行Docker搭建nextcloud网盘 NextCloud是一款开源网络硬盘系统#xff0c;它是一个私有、安全且功能完整的文件同步与共享解决方案#xff0c;可以搭建一套属于自己或团队的云同步网盘。NextCloud的客户端覆盖了各种平台#xff0c;包括Windows、Mac、Android、iOS、Linux等它是一个私有、安全且功能完整的文件同步与共享解决方案可以搭建一套属于自己或团队的云同步网盘。NextCloud的客户端覆盖了各种平台包括Windows、Mac、Android、iOS、Linux等也提供了网页端以及WebDAV接口支持文件共享、权限控制、在线编辑、文件版本控制等功能同时还有许多插件可以扩展其功能。 这次规划是全部组件使用docker容器进行部署 docker部署见之前的文章Docker安装 相关组件 nextcloud:v25.0.3(主程序容器) mysql:latest(数据库) redis:v6.2(缓存) onlyoffice:latest(在线office文档编辑和查看) clamav:(文件杀毒-在nextcloud容器内安装) cron同步任务(容器内部署) 最终实现效果使用mysql作为数据存储通过redis缓存数据提高访问速度能够实现文档的在线查看与编辑附带文件定时杀毒功能进行安全防护所有容器进行端口映射到宿主机。 mysql数据库容器部署 # 创建容器挂载本地/keli/data/目录,设置root密码docker run -d --name mysql -v /keli/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD12345678 mysql# 进入容器创建数据库和用户并分配权限docker exec -it mysql /bin/bash# 登录数据库mysql -uroot -p# 创建数据库create database nextcloud \default character set utf8 \collate utf8_general_ci;# 创建用户、分配权限CREATE USER nextcloud% IDENTIFIED BY nextcloud;GRANT ALL ON nextcloud.* TO nextcloud%;flush privileges; redis容器 1、拉取镜像 docker pull redis 2、下载配置文件因为redis需要配置文件进行设置从网上下载一份挂载到容器内目录。 wget https://raw.githubusercontent.com/redis/redis/6.2/redis.conf# 修改配置文件# bind 127.0.0.1注释掉外部机器才能连接# protected-mode no 设置为no关闭保护模式 3、创建并运行redis容器 # requirepass redis 连接密码# daemonize : 是否后台运行将其设为no表示前台运行。# appendonly : 是否开启appendonlylog开启的话每次写操作会记一条log这会提高数据抗风险能力但影响效率。docker run -p 6379:6379 \--name redis \-v /keli/redis/redis.conf:/etc/redis/redis.conf \-v /keli/redis/data:/data \redis redis-server /etc/redis/redis.conf --appendonly yes \--privilegedtrue 参考配置https://blog.csdn.net/sh2018/article/details/128044669 onlyoffice容器部署 OnlyOffice是一个在线办公套件旨在提供一个安全、高效的协作环境。它支持多种文档格式的编辑和协作处理包括Word、Excel、PowerPoint等可以在浏览器、电脑、手机或平板电脑上使用。OnlyOffice支持多种云服务集成如Box、Moodle、Nextcloud、Odoo、Wordpress等方便用户在不同平台和应用程序之间进行切换。 onlyoffice部署完成之后需要再nextcloud上使用插件连接。 23版本的nextcloud需要通过官网应用商店下载onlyoffice插件上传到/var/www/html/apps/下一般将目录映射到宿主机因此传输到宿主机目录即可。 官网链接https://apps.nextcloud.com/apps/onlyoffice docker run -i -t -d -p 8888:80 --restartalways --name onlyoffice \-v /keli/onlyoffice/log:/var/log/onlyoffice \-v /keli/onlyoffice/data:/var/www/onlyoffice/Data \-v /keli/onlyoffice/lib:/var/lib/onlyoffice \-v /keli/onlyoffice/db:/var/lib/postgresql onlyoffice/documentserver onlyoffice设置 如果无法连接出现token错误需要到容器内找到对应秘钥 位置/etc/onlyoffice/documentserver/local.json onlyoccice链接:https://blog.csdn.net/weixin_45261899/article/details/128118162 nextcloud容器 # 拉取镜像docker pull nextcloud# 创建运行容器docker run -d --name nextcloud -h nextcloud --restartalways \--link mysql:mysql \--link redis:redis \--link onlyoffice:onlyoffice \-v /mnt/nextcloud/html/:/var/www/html/ \-p 8520:80 nextcloud:25.0.3# 使用link链接组件容器映射nextcloud主目录到宿主机的/mnt/nextcloud/html,宿主机端口可以自行设置容器内默认是80端口。 Clamav安全杀毒 ClamAV的核心是一个以共享库形式提供的反病毒引擎它可检测数百万种病毒、蠕虫、特洛伊木马和其他恶意软件包括宏病毒和移动恶意软件。如果是在docker部署需要在容器内使用apt安装记得先更新apt源。安装完成后也是使用nextcloud插件形式连接ClamAV。 # 先安装apt-get install clamav clamav-daemon# 手动更新病毒库/usr/bin/freshclam# 下载插件应用Antivirus for files clamav杀毒 cron后台任务配置 nextcloud运行后需要执行一些后台cron任务但是好像自带会有点问题建议使用cron部署在容器内部署。 #首先安装cron服务apt-get update apt-get install cron# 安装完了立马把原来的cron任务停了, 因为貌似是不好用的。crontab -u www-data -e# 将里面的任务删除。# 接下来将任务运行在当前docker的root用户下面:crontab -e# 其中的任务表, 这里假设你把nextcloud安装到/var/www/html下边了:*/5 * * * * sudo -u www-data php -f /var/www/html/cron.php# 分配权限给www-datachmod 755 cron.php# 有可能需要将www-data的用户shell修改才能执行定时任务usermod -s /bin/bash www-data# 查看定时任务crontab -l 标准示例总结 # mysql数据库docker run -d --restartalways --name mysql -v /mnt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORDKELI81958899 -h mysql mysql# 登录容器docker exec -it mysql /bin/bash# 登录数据库mysql -uroot -p# 创建数据库create database nextcloud \default character set utf8 \collate utf8_general_ci;# 创建用户、分配权限CREATE USER nextcloud% IDENTIFIED BY nextcloud;GRANT ALL ON nextcloud.* TO nextcloud%;flush privileges;# redis容器docker run -d -h redis --name redis --restartalways \-v /mnt/redis/redis.conf:/etc/redis/redis.conf \-v /mnt/redis/data:/data \redis redis-server /etc/redis/redis.conf --appendonly yes# onlyoffice最好自定义好秘钥docker run -d --restartalways --name onlyoffice -h onlyoffice \--link redis:redis \-v /mnt/onlyoffice/log:/var/log/onlyoffice \-v /mnt/onlyoffice/data:/var/www/onlyoffice/Data \-v /mnt/onlyoffice/lib:/var/lib/onlyoffice \-v /mnt/onlyoffice/db:/var/lib/postgresql onlyoffice/documentserver# nextcloud部署docker run -d --name nextcloud -h nextcloud --restartalways \--link mysql:mysql \--link redis:redis \--link onlyoffice:onlyoffice \-v /mnt/nextcloud/html/:/var/www/html/ \-p 8520:80 nextcloud:25.0.3# 安全安装apt更新然后下载clamav杀毒执行定时任务apt update 更新aptapt list --upgradable 更新下载软件列表apt-get install clamav clamav-daemon 安装杀毒/usr/bin/freshclam 手动更新病毒库下载nextcloud插件设置杀毒策略 nextcloud配置文件示例 ?php$CONFIG array ( htaccess.RewriteBase /, memcache.local \OC\Memcache\APCu, memcache.locking \OC\Memcache\Redis, memcache.distributed \OC\Memcache\Redis, redis [ host redis, port 6379, ], apps_paths array ( 0 array ( path /var/www/html/apps, url /apps, writable false, ), 1 array ( path /var/www/html/custom_apps, url /custom_apps, writable true, ), ), instanceid ocejidmi08mu, passwordsalt EMyIvJh/XZMha6JXyt3CWwDPlQXTJ, secret TO2HAPGS2Z1dwHnv/Hh3te2rnIQ9ishwIBjlSqVHkxngqDNj, trusted_domains array ( 0 10.10.1.1, ), datadirectory /var/www/html/data, dbtype mysql, version 25.0.3.2, overwrite.cli.url http:/10.10.1.1, dbname nextcloud, dbhost mysql:3306, dbport , dbtableprefix oc_, mysql.utf8mb4 true, dbuser nextcloud, dbpassword nextcloud, installed true, default_language zh_CN, default_locale zh, allow_local_remote_servers true, default_phone_region CN,); 性能优化与故障处理 1、PHP OPcache 模块没有正确配置。更多信息请参见文档 ↗。 OPcache 内部字符串缓存几乎已满。为确保重复的字符串可以被有效地缓存建议在您的 PHP 设置中 opcache.interned_strings_buffer 设置一个高于 16 的值。 解决方法 # 进入容器docker exec -it nextcloud bash# 使用vim编辑文件如果没有先安装vimvim /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini# 添加下面配置opcache.memory_consumption128opcache.interned_strings_buffer32opcache.max_accelerated_files10000opcache.revalidate_freq1opcache.fast_shutdown1opcache.enable_cli1opcache.save_comments1# 然后重启php 2、添加onlyoffice 将windows系统的字体复制到/usr/share/fonts/truetype/custom/fonts/下 在容器内执行/usr/bin/documentserver-generate-allfonts.sh脚本更新程序 重启容器清除浏览器缓存 修改onlyoffice字号设置 将容器内文件/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.jsf复制到宿主机进行修改 在{value:8,displayValue:“8”}前面增加相应的显示。 {value:42,displayValue:初号},{value:36,displayValue:小初},{value:26,displayValue:一号},{value:24,displayValue:小一},{value:22,displayValue:二号},{value:18,displayValue:小二},{value:16,displayValue:三号},{value:15,displayValue:小三},{value:14,displayValue:四号},{value:12,displayValue:小四},{value:10.5,displayValue:五号},{value:9,displayValue:小五},{value:7.5,displayValue:六号},{value:6.5,displayValue:小六},{value:5.5,displayValue:七号},{value:5,displayValue:八号}, 然后重启onlyoffice和nextcloud,刷新浏览器缓存。 docker restart onlyofficedocker restart nextcloudNextcloud可以实现多端同步需配合客户端实现以后再看下。 最终实现在线网盘集成mysql、redis、在线文档编辑、杀毒功能但是的确稍微复杂过程中也出现很多问题最新的其实已经可以使用docker-compose部署了还没整理出来以后再试下一键部署吧大概思路如上。 本文由 mdnice 多平台发布