Nginxとowncloudに問題があります。 owncloudのログインページにアクセスすると、次のエラーが発生します。
あなたのデータディレクトリとあなたのファイルはおそらくインターネットからアクセス可能です。 ownCloudが提供する.htaccessファイルが機能していません。データディレクトリにアクセスできなくなるようにWebサーバーを構成するか、データディレクトリをWebサーバーのドキュメントルートの外に移動することを強くお勧めします。
これが私の仮想ホストファイルです:
server {
listen 80;
server_name default_server;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /phpmyadmin {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
location /owncloud {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /cloud {
rewrite ^/* /phpmyadmin last;
}
location /roundcube {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /RoundCube {
rewrite ^/* /roundcube last;
}
location /squirrelmail {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /SquirrelMail {
rewrite ^/* /squirrelmail last;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
server {
listen 443 ssl;
ssl_certificate /etc/ssl/localcerts/certificate.crt;
ssl_certificate_key /etc/ssl/localcerts/privateKey.key;
server_name default_server;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS $https;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
location /owncloud {
root /var/www/;
index index.php index.html index.htm;
location ~ ^/owncloud/(.+\.php)$ {
try_files $uri =404;
root /var/www/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS $https;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/owncloud/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/www/;
}
}
location /ownCloud {
rewrite ^/* /owncloud last;
}
location /roundcube {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/roundcube/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS $https;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /RoundCube {
rewrite ^/* /roundcube last;
}
location /squirrelmail {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/squirrelmail/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS $https;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /SquirrelMail {
rewrite ^/* /squirrelmail last;
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
具体的にはここに場所/ owncloudがあります:
location /owncloud {
root /var/www/;
index index.php index.html index.htm;
location ~ ^/owncloud/(.+\.php)$ {
try_files $uri =404;
root /var/www/;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param HTTPS $https;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
}
location ~* ^/owncloud/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/www/;
}
}
location /ownCloud {
rewrite ^/* /owncloud last;
}
ドキュメントに基づいて修正しようとしました http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html#nginx-configuration しかしできません。
また、エラーの原因となった場合に備えて権限を変更しましたが、修正されませんでした。
chown -R www-data:www-data /var/www/owncloud
phpmyadmin、roundcube、squirrelmailは問題なく動作するので、/ var/www/owncloudであるowncloudのルートパスのみを変更して構成を使用しました。
これがowncloud /の内容です
root@vps1:/var/www# ls -l owncloud/
total 156
drwxr-xr-x 26 www-data www-data 4096 Σεπ 6 18:38 3rdparty
drwxrwxrwx 32 www-data www-data 4096 Σεπ 6 18:38 apps
-rw-r--r-- 1 www-data www-data 585 Σεπ 6 18:38 AUTHORS
drwxrwxrwx 2 www-data www-data 4096 Σεπ 27 18:54 config
-rw-r--r-- 1 www-data www-data 832 Σεπ 6 18:38 console.php
-rw-r--r-- 1 www-data www-data 34520 Σεπ 6 18:38 COPYING-AGPL
-rw-r--r-- 1 www-data www-data 567 Σεπ 6 18:38 COPYING-README
drwxr-xr-x 10 www-data www-data 4096 Σεπ 6 18:38 core
-rw-r--r-- 1 www-data www-data 3156 Σεπ 6 18:38 cron.php
drwxrwx--- 2 www-data www-data 4096 Σεπ 27 18:54 data
-rw-r--r-- 1 www-data www-data 17669 Σεπ 6 18:38 db_structure.xml
drwxr-xr-x 2 www-data www-data 4096 Σεπ 6 18:38 files
-rw-r--r-- 1 www-data www-data 179 Σεπ 6 18:38 index.html
-rw-r--r-- 1 www-data www-data 853 Σεπ 6 18:38 index.php
drwxr-xr-x 81 www-data www-data 4096 Σεπ 6 18:38 l10n
drwxr-xr-x 20 www-data www-data 4096 Σεπ 6 18:38 lib
-rw-r--r-- 1 www-data www-data 279 Σεπ 6 18:38 occ
drwxr-xr-x 2 www-data www-data 4096 Σεπ 6 18:38 ocs
-rw-r--r-- 1 www-data www-data 443 Σεπ 6 18:38 public.php
-rw-r--r-- 1 www-data www-data 753 Σεπ 6 18:38 README
-rw-r--r-- 1 www-data www-data 960 Σεπ 6 18:38 remote.php
-rw-r--r-- 1 www-data www-data 26 Σεπ 6 18:38 robots.txt
drwxr-xr-x 6 www-data www-data 4096 Σεπ 6 18:38 search
drwxr-xr-x 8 www-data www-data 4096 Σεπ 6 18:38 settings
-rw-r--r-- 1 www-data www-data 1216 Σεπ 6 18:38 status.php
drwxr-xr-x 2 www-data www-data 4096 Σεπ 6 18:38 themes
-rw-r--r-- 1 www-data www-data 2460 Σεπ 6 18:38 upgrade.php
Tarファイルには/ dataフォルダーが含まれておらず、owncloudのWebインターフェイスに初めてアクセスしたときに作成されることに気付きました。また、これらのファイルが作成されます。
root@vps1:/var/www# ls -la owncloud/data/
total 12
drwxrwx--- 2 www-data www-data 4096 Σεπ 27 18:54 .
drwxr-xr-x 14 www-data www-data 4096 Σεπ 27 18:54 ..
-rw-r--r-- 1 www-data www-data 27 Σεπ 27 18:54 .htaccess
-rw-r--r-- 1 www-data www-data 0 Σεπ 27 18:54 index.html
そのため、警告がどの.htaccessファイルを参照しているかわかりません。 /var/www/owncloud/.htaccessまたは/var/www/owncloud/data/.htaccessまたはそれを修正する方法。
編集:これを追加しようとしましたが、それでも機能しません。
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
私の仲間のギリシャ人:
問題は、Owncloudにアップロードされたデータ(「クラウド」のようにアクセスしたいデータ)がサーバーのドキュメントルートのサブディレクトリであり、OwncloudITSELFの機能のためのディレクトリとファイルのみが存在する必要があることです。 。これはあなたが言及した/ var/wwwディレクトリです。ユーザーデータは/ var/www内に配置されません。それ以外の場合は、提供されるファイルの単純な「リスト」を使用してインターネットからアクセスできます。
通常、ブラウザから実行する初期セットアップウィザード中に、データディレクトリへのパスを設定するオプションがあります。見逃した場合でも、Owncloudインストールのconfig.phpファイルで「datadirectory」ディレクティブを設定することで、後でいつでも変更できます。このような:
<?php
$CONFIG = array (
'datadirectory' => '/media/usbdisk/ocdata/',
'dbtype' => ...
this フォーラム投稿内のトピックについて詳しく知ることができます。
注意点として、ネットワークを介して利用できるデータの量をできるだけ少なくすることが常に重要です。ドキュメントのルート権限に関するいくつかの非常に良い点については、 ここ を参照してください。
私はそれを考え出した。 vhostファイルを間違えました。私は設定しました
root /var/www/;
そして私はこれを書いた:
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
これの代わりに:
location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
上記の修正といくつかのクリーンアップ後の最後のキャッチオールvhostファイルは次のとおりです。
server {
listen 80;
server_name default_server;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location /phpmyadmin {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
location /owncloud {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /cloud {
rewrite ^/* /phpmyadmin last;
}
location /roundcube {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /RoundCube {
rewrite ^/* /roundcube last;
}
location /squirrelmail {
rewrite ^ https://$http_Host$request_uri? permanent;
}
location /SquirrelMail {
rewrite ^/* /squirrelmail last;
}
}
server {
listen 443 ssl;
ssl_certificate /etc/ssl/localcerts/certificate.crt;
ssl_certificate_key /etc/ssl/localcerts/privateKey.key;
server_name default_server;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ /\.ht {
deny all;
}
###### phpMyAdmin ############################################################
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
root /usr/share/;
include fastcgi-gen.conf;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
###### RoundCube ############################################################
location /roundcube {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/roundcube/(.+\.php)$ {
root /usr/share/;
include fastcgi-gen.conf;
}
location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /RoundCube {
rewrite ^/* /roundcube last;
}
###### SquirrelMail ############################################################
location /squirrelmail {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/squirrelmail/(.+\.php)$ {
root /usr/share/;
include fastcgi-gen.conf;
}
location ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /SquirrelMail {
rewrite ^/* /squirrelmail last;
}
###### ownCloud ############################################################
location /owncloud {
root /var/www/;
index index.php index.html index.htm;
error_page 403 = owncloud/core/templates/403.php;
error_page 404 = owncloud/core/templates/404.php;
rewrite ^/owncloud/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/owncloud/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/owncloud/webdav(.*)$ /remote.php/webdav$1 redirect;
location = /owncloud/robots.txt {
allow all;
log_not_found off;
access_log off;
}
location /owncloud/ {
# 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;
try_files $uri $uri/ index.php;
}
location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location ~ ^/owncloud/(.+\.php)$ {
root /var/www/;
include fastcgi-gen.conf;
}
location ~* ^/owncloud/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/www/;
}
}
location /ownCloud {
rewrite ^/* /owncloud last;
}
}
これはfastcgi-gen.confです
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;