3

nginx サーバーのサブフォルダーに owncloud インスタンスを作成したいと考えています。しかし、opwncloud によって要求されたファイルの一部に問題があります (css と js が読み込まれないようです)。

この仮想ホストの nginx conf ファイルは次のとおりです。

server {
   listen         80;
   server_name    blackblock.22decembre.eu;
   return 301     https://blackblock.22decembre.eu$request_uri;
}

server {
listen 443 default_server ssl;

server_name blackblock.22decembre.eu;
root /srv/www/blackblock/;

access_log  /var/log/nginx/blackblock.access.log;
error_log   /var/log/nginx/blackblock.errors.log;

index index.html index.php;

# This block will catch static file requests, such as images, css, js
# The : prefix is a "non-capturing" mark, meaning we do not require
# the pattern to be captured into $1 which should help improve performance
location ~* \.(:ico|css|js|gif|jpeg|png)$ {
    # Some basic cache-control for static files to be sent to the browser
    expires max;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}

# remove the robots line if you want to use wordpress" virtual robots.txt
# location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }

# this prevents hidden files (beginning with a period) from being served
location ~ /\. { access_log off; log_not_found off; deny all; }

#location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
location ~ \.php {
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_index index.php;
    fastcgi_pass unix:/run/php5-fpm.sock;
    include fastcgi_params;
}

location /roundcube/program/js/tiny_mce/ { alias /usr/share/tinymce/www/; }
location /roundcube/(config|temp|logs) { deny all;}

 ##### owncloud
 location ~ /owncloud/ {
root /srv/www/blackblock/owncloud/;
try_files $uri $uri/ index.php;

#client_max_body_size 10G; # set max upload size
    #fastcgi_buffers 64 4K;

    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

    location ~ ^/remote.php(/.*)$ {
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            fastcgi_pass unix:/run/php5-fpm.sock;
    include fastcgi_params;
    }

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

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

# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    # Optional: set long EXPIRES header on static assets
    #location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
     #       expires 30d;
            # Optional: Don't log access to assets
      #      access_log off;
#   }
}

    ##### torrent (not related to owncloud, flask application)
location = /flask-torrent { rewrite ^ /flask-torrent/ last; }

 }

owncloud が正しく読み込まれない理由がわかりません。あなたはウェブサイトを見ることができます.https ://blackblock.22decembre.eu/owncloud/(cacert証明書). owncloud 用の特定の仮想ホストを起動すると、完全に機能しますが、このホストのサブフォルダー (blackblock) に配置することを好みます。

4

4 に答える 4

0

/最初に、まだ機能していないことを指摘させてください/index.php。これは、index何らかの理由でステートメントが機能していないか、URI が別のブロックと一致していることを意味します。

安全に書き換えるlocation ~ /owncloud/ためにlocation ^~ /owncloud

構成には多くの書き換えが必要です。デフォルト構成は、ルートディレクトリにインストールされたowncloud用に作成されたものであり、サブディレクトリにあるものは、owncloudフォルダーを$uri含め/owncloudて外に飛び出すなど、いくつか修正する必要があることに注意してください。/file.extのような書き換え

rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;

2 つの理由から修正する必要があります。

  1. ^/caldav(.*)$決して起こらない、uri は常にで始まる^/owncloud
  2. /remote.php/...owncloudの外を見る

修正は次のようになります。

rewrite ^/owncloud/caldav(.*)$ /owncloud/remote.php/caldav$1 redirect;

それらを試してみて、どうなるか教えてください。

于 2014-02-09T17:06:22.357 に答える
0

すでに確認済みの場合は申し訳ありませんが、投稿した構成に含まれていない複数の Nginx ロケーション ディレクティブを含む項目がいくつかあります。構成ノート (この投稿の下部にあるリンク) を参照し、ownCloud および ownCloud データの Nginx ロケーション ディレクティブがあることを確認することをお勧めします。

Nginx PHP ハンドラを確認します。

Nginx 構成には、PHP5-FPM のハンドラーを含める必要があります。これを、Nginx 構成の上部にあるサーバー ディレクティブの前に配置します。

upstream php5-fpm-handler {
        server unix:/var/run/php5-fpm.sock;
}

Nginx ディレクティブを確認します。

例:

location /owncloud {
   rewrite ^ https://$http_host$request_uri? permanent;
   }

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

PHP5-FPM 構成を確認します。

また、PHP5-FPM プール構成 (通常、Ubuntu の /etc/php5/fpm/pool.d/www.conf のような場所) が、ハンドラーに一致する必要がある TCP ポートではなく、ソケットでリッスンするように設定されていることを確認してください。PHP5-FPM ソケットとポートの構成ディレクティブは次のとおりです。

ソケットの例:

listen = /var/run/php5-fpm.sock

ポートの例 (アップストリーム ハンドラーと一致するようにコメント アウトされています):

;listen = 127.0.0.1:9000

また、まだ行っていない場合は、Nginx の ownCloud 構成ノートを参照してください。

http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html

于 2014-02-08T19:26:58.303 に答える