荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 18|回复: 0

docker搭建nextcloud

[复制链接]

1440

主题

2676

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11333
发表于 2026-3-1 13:49 | 显示全部楼层 |阅读模式

  1. docker load < /root/docker/docker-image/httpd.tar.gz

  2. docker run -it \
  3. -d \
  4. --name nextcloud_8 \
  5. -v /root/docker/nextcloud_8/:/usr/local/apache2/htdocs/ \
  6. --network=docker_bridge_192_168_21 --ip=192.168.21.8 \
  7. -e TZ=Asia/Shanghai \
  8. --restart unless-stopped \
  9. httpd:latest

  10. 编辑配置文件
  11. docker exec -it nextcloud_8 cp -f /usr/local/apache2/conf/httpd.conf /usr/local/apache2/htdocs/httpd.conf

  12. 直接用notepad++编辑
  13. 265行
  14. DocumentRoot "/usr/local/apache2/htdocs/www"
  15. <Directory "/usr/local/apache2/htdocs/www">

  16. Options +FollowSymLinks -Indexes
  17. AllowOverride All

  18. 启用PHP的模块,把下面两行前面的注释去掉
  19. #LoadModule proxy_module modules/mod_proxy.so
  20. #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
  21. 还是在280行那里在AllowOverride All下面添加这一段内容
  22.     # 将 PHP 文件转发到 PHP-FPM
  23.     <FilesMatch \.php[        DISCUZ_CODE_0        ]gt;
  24.         SetHandler "proxy:fcgi://192.168.21.9:9000"
  25.     </FilesMatch>
  26. 把默认页面加上index.php并且放到index.html前面
  27. <IfModule dir_module>
  28.     DirectoryIndex index.php index.html
  29. </IfModule>

  30. 就不用vhosts了,整个容器就只提供nextcloud

  31. 然后把配置文件覆盖
  32. docker exec -it nextcloud_8 cp -f /usr/local/apache2/htdocs/httpd.conf /usr/local/apache2/conf/httpd.conf


  33. 修改好配置文件以后重启容器
  34. docker restart nextcloud_8

  35. -------------------------------------------------------------------

  36. 最新版的nextcloud需要php8.2
  37. This version of Nextcloud requires at least PHP 8.2


  38. docker pull php:8.2.30-fpm
  39. docker save php:8.2.30-fpm | gzip > /root/docker/docker-image/php-8.2.30-fpm.tar.gz
  40. docker load < /root/docker/docker-image/php-8.2.30-fpm.tar.gz

  41. docker run -it \
  42. -d \
  43. --name php_9 \
  44. -v /root/docker/nextcloud_8/:/usr/local/apache2/htdocs/ \
  45. -e TZ=Asia/Shanghai \
  46. --network=docker_bridge_192_168_21 --ip=192.168.21.9 \
  47. --restart unless-stopped \
  48. php:8.2.30-fpm

  49. docker exec -it php_9 bash

  50. 然后给php安装功能
  51. 先把源换成阿里云的
  52. # 创建阿里云 Debian 12 (bookworm) 源文件
  53. cat > /etc/apt/sources.list.d/aliyun.list << EOF
  54. # 阿里云 Debian 12 (bookworm) 源
  55. deb http://mirrors.aliyun.com/debian/ bookworm main non-free contrib
  56. deb-src http://mirrors.aliyun.com/debian/ bookworm main non-free contrib
  57. deb http://mirrors.aliyun.com/debian-security/ bookworm-security main
  58. deb-src http://mirrors.aliyun.com/debian-security/ bookworm-security main
  59. deb http://mirrors.aliyun.com/debian/ bookworm-updates main non-free contrib
  60. deb-src http://mirrors.aliyun.com/debian/ bookworm-updates main non-free contrib
  61. deb http://mirrors.aliyun.com/debian/ bookworm-backports main non-free contrib
  62. deb-src http://mirrors.aliyun.com/debian/ bookworm-backports main non-free contrib
  63. EOF

  64. 然后执行安装
  65. # 先更新源,然后强制降级所有freetype相关包到匹配版本
  66. apt update && \
  67. apt install -y \
  68.     libfreetype6=2.12.1+dfsg-5+deb12u4 \
  69.     libfreetype-dev=2.12.1+dfsg-5+deb12u4 \
  70.     libfreetype6-dev=2.12.1+dfsg-5+deb12u4 \
  71.     --allow-downgrades --force-yes && \
  72. # 安装剩余依赖(此时无冲突)
  73. apt install -y \
  74.     libjpeg62-turbo-dev \
  75.     libpng-dev \
  76.     libzip-dev \
  77.     zip \
  78.     unzip && \
  79. # 安装PHP扩展
  80. docker-php-ext-configure gd --with-freetype --with-jpeg && \
  81. docker-php-ext-install gd zip

  82. 最后验证
  83. php -m | grep -E 'gd|zip'


  84. 安装数据库插件
  85. docker-php-ext-install pdo_mysql mysqli

  86. 然后重启容器
  87. docker restart php_9

  88. -------------------------------------------------------------------

  89. 数据库也需要使用最新的  
  90. docker pull mariadb:latest
  91. docker load < /root/docker/docker-image/mariadb.tar.gz

  92. docker run \
  93. -d \
  94. --name mariadb_5 \
  95. -v /root/docker/nextcloud_8/mariadb/datadir/:/var/lib/mysql:Z \
  96. -v /root/docker/nextcloud_8/mariadb/backup/:/backup/ \
  97. -e TZ=Asia/Shanghai \
  98. -e MARIADB_ROOT_PASSWORD=aaaAAA111 \
  99. --network=docker_bridge_192_168_21 --ip=192.168.21.5 \
  100. --restart unless-stopped \
  101. mariadb:latest

  102. 这里必须有密码,否则nextcloud不让装

  103. docker exec -it mariadb_5 bash
  104. 查看版本
  105. mariadb -V
  106. mariadb from 11.8.2-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using  EditLine wrapper

  107. -------------------------------------------------------------------
  108. 然后开始访问
  109. 下载这个php文件,放入网站根目录
  110. https://download.nextcloud.com/server/installer/setup-nextcloud.php
  111. 提前下载好
  112. https://download.nextcloud.com/server/releases/latest.zip
  113. 然后放进网站根目录,重命名为nc.zip

  114. 然后访问
  115. 192.168.21.8/setup-nextcloud.php

  116. 如果提示目录权限不对,直接
  117. docker exec -it nextcloud_8 chmod -R 777 /usr/local/apache2/htdocs/nextcloud/www

  118. 按照过程安装就行了
  119. 安装完毕可以访问


  120. 最后的webdav访问链接是
  121. http://192.168.21.8/remote.php/dav/files/admin

  122. 至此nextcloud就安装完毕了
  123. 但是感觉卡卡的,我的服务器是9950X

复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2026-3-20 05:05 , Processed in 0.013420 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表