我有一个使用 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 服务器,并且它运行良好。
更换root
线路并server
在upstream
我假设您知道如何创建虚拟服务器,如果不知道,请告诉我,以便我也可以提供解释。
编辑
关于ssl、一个IP和一个虚拟服务器:
不是的,这取决于你购买 SSL 的目的,如果是单域名 SSL,例如example.com
,store.example.com
你可以在同一个 IP 上拥有任意数量的网站,但 SSL 只对你购买的那个域名有效,除非你购买了通配符 SSL,在这种情况下它可能支持*.example.com
无论如何,我的服务器上也有 SSL,而且它仅用于domain.com
和www.domain.com
,我在托管在的云服务器上使用它,cloud.domain.com
它的唯一缺点是您会收到黄页警告,因为域与购买 SSL 的域不匹配,我告诉浏览器忽略该警告并保存异常,就是这样,同步客户端也是如此,它告诉我是否要忽略警告,它工作得很好。
如果您不想面对该警告,那么您确实需要在同一个虚拟主机下创建自己的云服务器,这不是因为 IP,而是因为购买 ssl 的名称。
告诉我您想要哪一个,我都会帮助您。