PHP 应用程序(Owncloud)页面请求资产路径不正确

PHP 应用程序(Owncloud)页面请求资产路径不正确

我有一个使用 php-fpm 和 nginx(带 SSL)设置的 VPS。我已经设置了 Tiny Tiny RSS,它运行良好。然而,我最近尝试设置 Owncloud,却立即遇到了障碍。

我访问了主页进行初始设置,但那里根本没有任何样式。我查看了 Firefox 的控制台,看到了几个 404 错误。仔细查看后,我发现所有资源的路径都是错误的。我没有请求http://mydomain.com/owncloud/some/important/component.js,它请求http://mydomain.com/usr/share/nginx/html/owncloud/some/important/component.js

看来 php 在处理页面时出了点问题。我使用 Tiny Tiny RSS 时没有遇到这个问题,所以我认为这与 Owncloud 的编写方式有关。

我假设有一个 php.ini 键需要更改。有什么想法吗?

以下是我的服务器块的内容:

            listen 443 ssl;
            ssl_certificate /var/ssl/secret/sauce.key
            ssl_certificate_key /var/ssl/secret/sauce.key;
            server_name localhost 127.0.0.1 mydomain.com;
            root /usr/share/nginx/html;
            index index.html index.htm index.php;
            client_max_body_size 1000M;

            location / {
                    try_files $uri $uri/ @webdav =404;
            }

            location ~ \.php$ { 
                    include fastcgi_params;
                    fastcgi_index index.php;
                    try_files $1 = 404;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param HTTPS on;
                    fastcgi_pass 127.0.0.1:9000;
            }

            location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
                    deny all;
            }

            location @webdav {
                    fastcgi_split_path_info ^(.+\.php)(/.*)$;
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    fastcgi_param HTTPS on;
                    include fastcgi_params;
            }

我意识到这不是 Owncloud 文档推荐的完整配置,但我通常喜欢获得一个最小的工作配置,然后逐步了解一切是如何工作的。查看我遗漏的配置选项,似乎没有任何影响 php 处理的选项,所以我假设它没问题。否则,我想知道我遗漏了什么 nginx 指令以及它为什么重要。

答案1

我假设有一个 php.ini 键需要更改。有什么想法吗?

不,您的应用程序可能配置错误 - Owncloud 的 PHP 正在生成这些路径。确保您在 Owncloud 中正确配置了 URL 路径。

答案2

为 owncloud 创建一个新的虚拟主机,只需编辑根和上游(sock 或端口),我已经有一个正常运行的 owncloud 服务器,并且它运行良好。

owncloud 的 Nginx 配置

更换root线路并serverupstream

我假设您知道如何创建虚拟服务器,如果不知道,请告诉我,以便我也可以提供解释。

编辑

关于ssl、一个IP和一个虚拟服务器:

不是的,这取决于你购买 SSL 的目的,如果是单域名 SSL,例如example.comstore.example.com你可以在同一个 IP 上拥有任意数量的网站,但 SSL 只对你购买的那个域名有效,除非你购买了通配符 SSL,在这种情况下它可能支持*.example.com

无论如何,我的服务器上也有 SSL,而且它仅用于domain.comwww.domain.com,我在托管在的云服务器上使用它,cloud.domain.com它的唯一缺点是您会收到黄页警告,因为域与购买 SSL 的域不匹配,我告诉浏览器忽略该警告并保存异常,就是这样,同步客户端也是如此,它告诉我是否要忽略警告,它工作得很好。

如果您不想面对该警告,那么您确实需要在同一个虚拟主机下创建自己的云服务器,这不是因为 IP,而是因为购买 ssl 的名称。

告诉我您想要哪一个,我都会帮助您。

相关内容