1、/var/www/html/config/config.php Nextcloud
array (
0 => 'localhost:8080',
1 => '192.168.100.123',
),
修改权限
chmod 777 /var/www/html/config/config.php
2、/etc/onlyoffice/documentserver/default.json Onlyoffice
"request-filtering-agent" : {
"allowPrivateIPAddress": true,
"allowMetaIPAddress": true
},

/var/www/html/apps
#创建目录
mkdir /opt/nextcloud
cd /opt/nextcloud/
#nano创建编辑docker-compose.yml文件,Ctrl+O写入,Ctrl+X退出;也可以用vim看个人喜欢
nano docker-compose.yml
docker-compose.yml填入以下内容,根据需要修改以下配置 容器默认时区为UTC时区,所以修改为上海时区
version: '3.8'
services:
db:
image: mysql:latest
container_name: nextcloud_mysql # 自定义容器名称
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password # 定义 MySQL 的 root 密码
MYSQL_PASSWORD: your_password # 定义 MySQL 用户的密码
MYSQL_DATABASE: nextcloud # 创建数据库名为 nextcloud
MYSQL_USER: nextcloud # 定义 MySQL 用户名
TZ: Asia/Shanghai # 设置时区为上海
volumes:
- mysql_data:/var/lib/mysql # MySQL 数据持久化
networks:
- nextcloud_network
app:
image: nextcloud:latest
container_name: nextcloud # 自定义容器名称
restart: always
depends_on:
- db
environment:
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: your_password # MYSQL密码
MYSQL_HOST: db
TZ: Asia/Shanghai # 设置时区为上海
volumes:
- nextcloud_data:/var/www/html # Nextcloud 数据持久化
ports:
- "8080:80"
networks:
- nextcloud_network
onlyoffice:
image: onlyoffice/documentserver:7.1.0
container_name: nextcloud_onlyoffice # 自定义容器名称
restart: always
environment:
JWT_ENABLED: 'false' # 关闭 JWT,因此不需要密钥
JWT_SECRET: # 不设置密钥
TZ: Asia/Shanghai # 设置时区为上海
ports:
- "8081:80"
networks:
- nextcloud_network
networks:
nextcloud_network: # 定义网络
volumes:
mysql_data: # 定义 MySQL 的数据卷
nextcloud_data: # 定义 Nextcloud 的数据卷
运行
docker compose up -d
然后查看运行中的容器
docker ps -a
IP不知道什么可以在Ubuntu使用ifconfig查看
浏览器打开IP:8080可以看到nextcloud的界面
设置用户名和密码登录
浏览器打开IP:8081可以看到onlyoffice的界面
https://apps.nextcloud.com/
docker volume ls
docker volume inspect nextcloud_nextcloud_data
# 这里进入到卷存储目录下的apps文件夹,就是刚才上传插件的目录
cd /var/lib/docker/volumes/nextcloud_nextcloud_data/_data/apps/
tar -xzf onlyoffice.tar.gz
Docker安装Onlyoffice并更新中文字体的办法
1.删除Onlyoffice自带字体 首先,在宝塔面板中,打开镜像内目录,进入容器内的字体文件夹,将系统字体和onlyoffice自带的字体全部删除。 删除系统字体文件夹中所有文件及文件夹: /usr/share/fonts 删除onlyoffice自带字体文件夹 中所有文件及文件夹: /var/www/onlyoffice/documentserver/core-fonts
2.拷贝字体文件 把从windows字体目录拷贝到镜像内 /usr/share/fonts/ 目录中,把中文字体文件名改成英文名称。
3.启动onlyoffice容器,并更新字体 最后启动onlyoffice容器,进入/usr/bin目录, 输入./documentserver-generate-allfonts.sh 运行完毕后字体更换完成,清除浏览器缓存,并重新打开页面,就会发现之前onlyoffice自带的其他字体都没有了,只有刚才复制进去的中文字体了。
查看正在运行的docker:
sudo docker ps
进入运行着的docker镜像内:
docker exec -it <ID> /bin/bash
exec命令可以进入docker,并执行后面的命令,上面是执行/bin/bash
其中
进入指定文件夹下执行下方命令,使新增的字体生效
#进入文件夹
cd /usr/bin
#执行sh文件,使其新增的字体生效
./documentserver-generate-allfonts.sh
1、修改conf.php文件,添加禁用网络连接
'has_internet_connection' => false,
'appstoreenabled' => false,
'appstoreurl' => '',
'appstore.appfetch' => false,
2、新增custom.conf文件,修改以下配置
# 1. 创建配置目录
mkdir -p /home/ubuntu/luo/.collaborative_editing/phpfpm_config
# 2. 创建PHP-FPM配置文件
cat > /home/ubuntu/luo/.collaborative_editing/phpfpm_config/zz-custom.conf << 'EOF'
[global]
error_log = /proc/self/fd/2
log_level = warning
process.max = 128
[www]
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.process_idle_timeout = 10s
request_terminate_timeout = 1800
request_slowlog_timeout = 30s
slowlog = /proc/self/fd/2
php_admin_value[memory_limit] = 1024M
php_admin_value[upload_max_filesize] = 16G
php_admin_value[post_max_size] = 16G
php_admin_value[max_execution_time] = 1800
php_admin_value[max_input_time] = 1800
php_admin_value[session.gc_maxlifetime] = 86400
php_admin_value[opcache.enable] = 1
php_admin_value[opcache.memory_consumption] = 256
php_admin_value[opcache.interned_strings_buffer] = 32
php_admin_value[opcache.max_accelerated_files] = 100000
php_admin_value[opcache.revalidate_freq] = 60
php_admin_value[opcache.jit_buffer_size] = 128M
php_admin_value[opcache.jit] = 1255
EOF
验证配置文件是否生效:
# 4. 验证
docker exec app-server cat /usr/local/etc/php-fpm.d/zz-custom.conf | grep "pm.max_children"
在 Nextcloud 中启用了调试模式:
php occ config:system:set debug --type bool --value true
php occ config:system:set allow_local_remote_servers --value true