我正在尝试使用 nextcloud (13.0.4) 和 keycloak (4.0.0.Final)(作为 SSO/SAML IDP 和用户管理解决方案)设置SSO,如SSO with SAML, Keycloak 和 Nextcloud 中所述。
但是,尝试使用在 keycloak 中配置的 SSO 测试用户登录 nextcloud,nextcloud 抱怨以下错误:
OneLogin_Saml2_ValidationError: Found an Attribute element with duplicated Name
/var/www/html/nextcloud/custom_apps/user_saml/3rdparty/vendor/onelogin/php-saml/lib/Saml2/Auth.php - line 177: OneLogin_Saml2_Response->getAttributes()
/var/www/html/nextcloud/custom_apps/user_saml/lib/Controller/SAMLController.php - line 219: OneLogin_Saml2_Auth->processResponse('ONELOGIN_1111a8...')
[internal function] OCA\User_SAML\Controller\SAMLController->assertionConsumerService()
/var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 161: call_user_func_array(Array, Array)
/var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 91: OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\User_SAML\Controller\SAMLController), 'assertionConsum...')
/var/www/html/nextcloud/lib/private/AppFramework/App.php - line 115: OC\AppFramework\Http\Dispatcher->dispatch(Object(OCA\User_SAML\Controller\SAMLController), 'assertionConsum...')
/var/www/html/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php - line 47: OC\AppFramework\App main('OCA\\User_SAML\\C...', 'assertionConsum...', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
[internal function] OC\AppFramework\Routing\RouteActionHandler->__invoke(Array)
/var/www/html/nextcloud/lib/private/Route/Router.php - line …Run Code Online (Sandbox Code Playgroud) 我使用当前稳定版本的 Nextcloud(nextclouddocker 镜像)。我想在用户进入网站时禁用身份验证窗口。是否可以?我在官方文档中发现只有匿名上传功能。
当尝试通过 WinSCP 访问 nextcloud 的 WebDav API 时,我面临着正确使用根文件夹、远程路径等的几个问题。为了节省其他人的时间,这里是我想出的将文件上传到的工作代码远程(共享)文件夹。
得到教训:
然而,WinSCP、nextcloud 文档中没有可用的示例,这里也找不到任何内容。
我知道NextCloud是从ownCloud分叉的.它们之间有什么区别?
我有这个错误消息:
无法加载 Collabora Online - 请稍后重试
当我尝试打开文件时,位于自托管 nextcloud 网站的右上角
欢迎来到 Nextcloud Hub.docx
在 Nextcloud 中,它作为 Docker 容器运行。
欢迎使用 Nextcloud Hub.docx位于“文件”>“文档”中,作为示例文件。
我使用的是nextcloud:19-apache的官方映像
,我是这样启动的:
#!/bin/sh
set -e;
set -f;
docker run -d \
--name nextcloud \
-p 8080:80 \
-v /tmp/nextcloud/var/www/html:/var/www/html \
-v /tmp/nextcloud/var/lib/mysql:/var/lib/mysql \
-v /tmp/nextcloud/var/lib/postgresql/data:/var/lib/postgresql/data \
nextcloud:19-apache
sleep 3;
firefox "http://localhost:8080"
exit 0;
Run Code Online (Sandbox Code Playgroud)
我这样检查日志:
docker logs nextcloud
Run Code Online (Sandbox Code Playgroud)
除了这一条目之外,没有任何错误/警告:
AH00558:apache2:无法可靠地确定服务器的完全限定域名(使用 172.17.0.2)。全局设置“ServerName”指令以抑制此消息
单击 nextcloud web 设置 > 应用程序显示 Collabora 所需的两个应用程序均已安装:
然而,没有它们的状态是否正常运行。
所有正在运行的容器的状态:
NETWORK ID NAME DRIVER SCOPE
88efc7e2489f …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 docker-compose 与 Nextcloud 一起安装 Collabora CODE。在此部署中,一切似乎都正常运行,但每当我尝试访问 Collabora 代码编辑器时,都会收到以下“混合内容”错误:
\nBlocked loading mixed active content \xe2\x80\x9chttp://docs.example.com/loleaflet/44a46d7/loleaflet.html?WOPISrc=https%3A%2F%2Fnc.example.com%2Findex.php%2Fapps%2Frichdocuments%2Fwopi%2Ffiles%2F13_oceqjdia3g5g&title=Welcome%20to%20Nextcloud%20Hub.docx&lang=en&closebutton=1&revisionhistory=1\xe2\x80\x9d\nRun Code Online (Sandbox Code Playgroud)\n我认为问题出"extra_params=--o:ssl.enable=false"在我传递给 Collabora 映像的环境变量上,但我无法让 Collabora 在启用其自己的 SSL 的情况下工作。
有谁知道是否有办法强制 Collabora 始终使用 HTTPS 响应?
\n任何帮助,将不胜感激。docs.example.org需要明确的是,我只是想在以下解决方案的框架内通过 HTTPS 访问 Collabora CODE :
version: '3.3'\n\nservices:\n\n traefik:\n image: traefik:latest\n restart: always\n container_name: "traefik"\n command:\n - "--api.insecure=true"\n - "--providers.docker=true"\n - "--providers.docker.exposedbydefault=false"\n - "--entrypoints.web.address=:80"\n - "--entrypoints.web.http.redirections.entryPoint.to=websecure"\n - "--entrypoints.web.http.redirections.entryPoint.scheme=https"\n - "--entrypoints.websecure.address=:443"\n - "--certificatesresolvers.myresolver.acme.tlschallenge=true"\n - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"\n - "--certificatesresolvers.myresolver.acme.email=bandi@qodex.cc"\n - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"\n\n networks:\n - web\n - internal\n ports:\n …Run Code Online (Sandbox Code Playgroud) 我正在尝试上传文件:
curl -X PUT -u "my_username:pass123" "https://nextcloud.my_domain.com/remote.php/webdav/Shared/dir1/" --data-binary @"/Users/user1/test1.png"
Run Code Online (Sandbox Code Playgroud)
错误:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\Conflict</s:exception>
<s:message>PUT is not allowed on non-files.</s:message>
</d:error>
Run Code Online (Sandbox Code Playgroud)
为什么?
我使用的凭据是我用于在浏览器中登录的凭据。
我有一个反向代理服务器,它从文件服务器获取文件,然后将它们发送给用户。我想在发送之前更改文件名。我写了如下规则
location ~ downloads/(.*) {
proxy_pass http://HOST:PORT/remote.php/dav/files/$1;
add_header Content-Disposition 'attachment; "filename=$args"';
}
Run Code Online (Sandbox Code Playgroud)
但是当我发送请求时我收到此错误;
ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
Run Code Online (Sandbox Code Playgroud) 尝试在 rpi4 上安装 nextcloud。
尝试在运行 buster 的 rpi4 上安装 nextcloud 时出现以下错误
Initializing nextcloud 23.0.4.1 ...,
touch: setting times of '/var/www/html/nextcloud-init-sync.lock': Operation not permitted,
Initializing nextcloud 23.0.4.1 ...,
Another process is initializing Nextcloud. Waiting 10 seconds...,
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose 看起来像这样
version: '2'
services:
db:
image: yobasystems/alpine-mariadb:latest
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- /nextcloud:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=YOURROOTPASSWORD
- MYSQL_PASSWORD=YOURPASSWORD
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8181:80
links:
- db
volumes:
- /nextcloud:/var/www/html
restart: always
Run Code Online (Sandbox Code Playgroud)
请帮忙!
我想将文件上传到我的 nextcloud 服务器。问题是我遇到了一个错误。第一个curl命令应该创建目录。
curl -u "$USER":"$PW" -X MKCOL "https://MYSERVER/remote.php/dav/files/$USER/$MANY_DIRECTORIES"
curl -u "$USER":"$PW" -T "$FILE" "https://MYSERVER/remote.php/dav/files/$USER/$MANY_DIRECTORIES/$FILE"
Run Code Online (Sandbox Code Playgroud)
如果$MANY_DIRECTORIES只包含一个目录,它就可以工作。但是如果这个变量包含eg/root/deep/deeper并且deep不存在,我会得到这个错误:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\Conflict</s:exception>
<s:message>Parent node does not exist</s:message>
</d:error>
Run Code Online (Sandbox Code Playgroud)
第二个命令抛出此错误:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\NotFound</s:exception>
<s:message>File with name //test could not be located</s:message>
</d:error>
Run Code Online (Sandbox Code Playgroud)
那么如何递归创建目录来上传文件呢?
谢谢。
我已经在本地 Ubuntu 18.04 笔记本电脑中设置了 LAMP 堆栈。MariaDB 根密码工作正常。
我已经在我的本地主机中设置了 nextcloud。非 root 用户密码工作正常。但是我忘记了root登录密码。
如何重置它。
我正在尝试将 Nextcloud 实例迁移到 kubernetes 集群。我已使用openEBS-cStor存储成功部署了 Nextcloud 实例。在我可以将旧文件“kubectl cp”到集群之前,我需要将 Nextcloud 置于维护模式。
这是我到目前为止所尝试过的:
这些是我用于 OCC 方式的命令:
kubectl exec --stdin --tty -n nextcloud nextcloud-7ff9cf449d-rtlxh -- /bin/bash
su -c 'php occ maintenance:mode --on' www-data
# This account is currently not available.
Run Code Online (Sandbox Code Playgroud)
任何有关如何将 Nextcloud 置于维护模式的提示将不胜感激!
nextcloud ×13
docker ×3
webdav ×3
curl ×2
c# ×1
cloud ×1
cloudflare ×1
document ×1
http ×1
keycloak ×1
kubernetes ×1
lamp ×1
nginx ×1
open-source ×1
openebs ×1
owncloud ×1
php ×1
raspberry-pi ×1
recursion ×1
rest ×1
root ×1
saml ×1
ubuntu-18.04 ×1
winscp ×1