「Nextcloud」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
1行目: 1行目:
  +
{{lowercase title}}
 
[[Category:ウェブサーバー]]
 
[[Category:ウェブサーバー]]
 
[[en:Owncloud]]
 
[[en:Owncloud]]
 
[[fr:Owncloud]]
 
[[fr:Owncloud]]
{{lowercase title}}
 
 
{{Related articles start}}
 
{{Related articles start}}
{{Related2|LAMP|LAMP}}
+
{{Related|LAMP}}
{{Related2|Nginx|Nginx}}
+
{{Related|Nginx}}
 
{{Related|OpenSSL}}
 
{{Related|OpenSSL}}
  +
{{Related|WebDAV}}
 
{{Related articles end}}
 
{{Related articles end}}
 
[[Wikipedia:OwnCloud|ownCloud]] はクラウドストレージを提供するためのソフトウェア群です。
 
[[Wikipedia:OwnCloud|ownCloud]] はクラウドストレージを提供するためのソフトウェア群です。
14行目: 15行目:
 
== 必要環境 ==
 
== 必要環境 ==
   
''ownCloud'' は[[:Category:ウェブサーバー|ウェブサーバー]]と [[PHP|PHP]]、[[:Category:データベース管理システム|データベース]]を必要とします。古典的な [[LAMP|LAMP]] の組み合わせで問題なく動作し、[http://doc.owncloud.org/server/7.0/admin_manual/installation/installation_source.html#manual-installation 推奨] されています。
+
''ownCloud'' は[[:Category:ウェブサーバー|ウェブサーバー]]と [[PHP]]、[[:Category:データベース管理システム|データベース]]を必要とします。古典的な [[LAMP]] の組み合わせで問題なく動作し、[https://doc.owncloud.org/server/8.1/admin_manual/release_notes.html#recommended-setup-for-running-owncloud 推奨] されています。
   
 
== インストール ==
 
== インストール ==
   
[[公式リポジトリ]]から {{Pkg|owncloud}} を[[インストール]]してください。もしくは [[Arch User Repository|Arch User Repository]] に入っているパッケージを見て下さい: [https://aur.archlinux.org/packages.php?K=owncloud]
+
[[公式リポジトリ]]から {{Pkg|owncloud}} を[[インストール]]してください。
   
{{ic|/etc/php/php.ini}} で'''必要な'''以下のエクステンションをアンコメントします:
+
{{ic|/etc/php/php.ini}} で'''必要な'''以下のエクステンションをアンコメントします [https://doc.owncloud.org/server/8.2/admin_manual/installation/source_installation.html#prerequisites]:
 
gd.so
 
gd.so
 
iconv.so
 
iconv.so
26行目: 27行目:
 
zip.so
 
zip.so
   
また、{{Pkg|php-intl}} と {{Pkg|php-mcrypt}} をインストールして以下のエクステンションをアンコメントすることが [http://doc.owncloud.org/server/7.0/admin_manual/installation/installation_source.html#prerequisites 推奨] されています:
+
また、{{Pkg|php-intl}} と {{Pkg|php-mcrypt}} をインストールして以下のエクステンションをアンコメントすることが [https://doc.owncloud.org/server/8.2/admin_manual/installation/source_installation.html#prerequisites 推奨] されています:
 
bz2.so
 
bz2.so
 
curl.so
 
curl.so
 
intl.so
 
intl.so
 
mcrypt.so
 
mcrypt.so
openssl.so
 
   
  +
=== キャッシュ ===
パフォーマンスを向上させたい場合、以下の''どちらか''をインストールします:
 
* {{Pkg|php-apcu}}: ユーザーデータのキャッシュだけを提供します。{{ic|/etc/php/conf.d/apcu.ini}} でコメントを削除することで有効にできます。opcode のキャッシュをしたい場合は [http://www.php.net/manual/en/book.opcache.php opcache エクステンション] を使って下さい: {{ic|/etc/php/php.ini}} で {{ic|1=zend_extension=opcache.so}} をアンコメントします。
 
* {{Pkg|php-xcache}}: opcode とユーザーデータのキャッシュの両方を提供する開発版。インストールした後は {{ic|/etc/php/conf.d/xcache.ini}} でアンコメントしてください。
 
   
  +
パフォーマンスを向上させるために、APCu による PHP キャッシュを使うことを推奨します。[[PHP#APCu]] を見てください。同じく OPCache も有効にすると有益です。[[PHP#OPCache]] を参照。
==== データベースのサポート ====
 
使用するデータベースバックエンドにあわせて、{{ic|/etc/php/php.ini}} で以下の2行をアンコメントしてください:
 
{| class="wikitable"
 
!SQLite!!MySQL!!PostgreSQL
 
|-
 
|{{bc|pdo_sqlite.so
 
sqlite3.so}}
 
|{{bc|pdo_mysql.so
 
mysql.so}}
 
|{{bc|pdo_pgsql.so
 
pgsql.so}}
 
|-
 
|}
 
   
  +
APCu を有効にした後、以下のディレクティブを {{ic|/etc/webapps/owncloud/config/config.php}} に追加してください:
{{note|1=[[MySQL|MySQL]] を使う場合 {{ic|mysql.so}} が必要になりますが、現在は廃止されています。2014年7月現在 (ownCloud 7.0)、{{ic|mysqli.so}} はサポートされていません [http://doc.owncloud.org/server/7.0/admin_manual/configuration/configuration_database.html][https://forum.owncloud.org/viewtopic.php?f=26&t=21534]。}}
 
  +
'memcache.local' => '\OC\Memcache\APCu',
データベースの適当な php モジュールをインストールするのを忘れないで下さい。PostgreSQL の場合 {{Pkg|php-pgsql}} で SQLite の場合 {{Pkg|php-sqlite}} になります。
 
   
  +
{{Note|
==== Exif のサポート ====
 
  +
* [[PHP#設定|PHP 設定]]の {{ic|[apc]}} の下に {{ic|1=apc.enable_cli=1}} を追加してください。また、{{ic|/etc/php/conf.d/apcu.ini}} の {{ic|1=extension=apcu.so}} をアンコメントしてください。2015年7月12日現在、これらの設定をしないと [https://github.com/owncloud/core/issues/17329#issuecomment-119248944 複数] の [https://github.com/owncloud/documentation/issues/1233#issuecomment-120664134 問題] が発生します。
  +
* 2016年1月4日現在、OwnCloud 8.2.2 では {{Pkg|php-apcu-bc}} パッケージに含まれている "APCu Backwards Compatibility Module" が必要です。パッケージをインストールしたら {{ic|/etc/php/conf.d/apcu.ini}} の {{ic|1=extension=apcu.so}} の後に {{ic|1=extension=apc.so}} を追加してください。}}
  +
  +
詳しくは [https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/config_sample_php_parameters.html#memory-caching-backend-configuration 公式ドキュメント] を参照。
  +
  +
=== /dev/urandom のアクセス ===
  +
  +
ownCloud 8.1.0-1 は {{ic|/dev/urandom}} にアクセスする必要があります。{{ic|php.ini}} で有効にしてください。
  +
  +
{{ic|php.ini}} の {{ic|open_basedir}} に {{ic|:/dev/urandom}} を追加します (末尾にスラッシュは付きません)。例:
  +
  +
open_basedir = /srv/http/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/dev/urandom
  +
  +
もしくは、{{ic|/etc/httpd/conf/extra/owncloud.conf}} の {{ic|php_admin_value open_basedir}} に {{ic|:/dev/urandom}} を追加するほうが良い結果が得られるかもしれません。
  +
  +
Nginx + uwsgi_php では上記の設定は反映されません。uwsgi_php の設定ファイルに {{ic|:/dev/urandom}} を指定してください:
  +
  +
{{hc|/etc/uwsgi/owncloud.ini|<nowiki>php-set = open_basedir=%(owncloud_data_dir):/tmp/:/usr/share/pear/:/usr/share/webapps/owncloud:/etc/webapps/owncloud:/dev/urandom</nowiki>}}
  +
  +
=== データベースのサポート ===
  +
使用するデータベースバックエンドにあわせて、{{ic|/etc/php/php.ini}} の以下の拡張をアンコメントしてください:
  +
* [[MySQL]] の場合、{{ic|pdo_mysql.so}} をアンコメントしてください。
  +
* [[PostgreSQL]] の場合、{{ic|pdo_pgsql.so}} と {{ic|pgsql.so}} をアンコメントして {{Pkg|php-pgsql}} をインストールしてください。
  +
* [[Sqlite|SQLite]] の場合、{{ic|pdo_sqlite.so}} と {{ic|sqlite3.so}} をアンコメントして {{Pkg|php-sqlite}} をインストールしてください。
  +
  +
=== Exif のサポート ===
 
[[公式リポジトリ]]から {{Pkg|exiv2}} をインストールして {{ic|php.ini}} で {{ic|exif.so}} エクステンションをアンコメントすることで exif サポートを有効化できます。
 
[[公式リポジトリ]]から {{Pkg|exiv2}} をインストールして {{ic|php.ini}} で {{ic|exif.so}} エクステンションをアンコメントすることで exif サポートを有効化できます。
   
 
=== オールインワンの Docker を使う ===
 
=== オールインワンの Docker を使う ===
   
''ownCloud'' のインストールと設定を素早く安全に行う方法として [[Docker|Docker]] を使うことができます。[https://index.docker.io/search?q=ownCloud Docker のリポジトリ]には始めから ''ownCloud'' がインストールされている完全な LAMP スタックのイメージが複数存在します。''Docker'' コンテナは基本的に [[chroot|chroot]] 環境よりも安全でありオーバーヘッドも少なくなります。Docker 上の ''ownCloud'' はかなり古いマシンでもスムーズに動作するでしょう。普通に ''ownCloud'' をインストールするよりも大抵は ''Docker'' をインストールしてから ''ownCloud'' イメージをインストールする方が簡単で時間がかかりません。
+
''ownCloud'' のインストールと設定を素早く安全に行う方法として [[Docker]] を使うことができます。[https://index.docker.io/search?q=ownCloud Docker のリポジトリ] には始めから ''ownCloud'' がインストールされている完全な LAMP スタックのイメージが複数存在します。''Docker'' コンテナは基本的に [[chroot]] 環境よりも安全でありオーバーヘッドも少なくなります。Docker 上の ''ownCloud'' はかなり古いマシンでもスムーズに動作するでしょう。普通に ''ownCloud'' をインストールするよりも大抵は ''Docker'' をインストールしてから ''ownCloud'' イメージをインストールする方が簡単で時間がかかりません。
   
  +
{{Note|Docker イメージは ownCloud の公式サポートがありません。}}
== Apache の設定 ==
 
   
=== インストール ===
+
== Apache の設定 ==
   
[[LAMP|LAMP]] をセットアップしてください。
+
{{Note|[[Apache HTTP Server#PHP]] に書かれているようにして PHP有効化してください。}}
   
 
Apache の設定ファイルを ownCloud の設定ディレクトリにコピーします:
 
Apache の設定ファイルを ownCloud の設定ディレクトリにコピーします:
73行目: 85行目:
 
Include conf/extra/owncloud.conf
 
Include conf/extra/owncloud.conf
   
  +
セキュリティを確保するために、[https://doc.owncloud.org/server/8.0/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissions ownCloud のインストールマニュアル] に書かれているようにディレクトリのパーティションを設定してください:
OwnCloud には WebDAV の実装が付いておりデフォルトで有効になっていますが、Apache の実装と衝突する可能性があります。OwnCloud は {{ic|/etc/httpd/conf/httpd.conf}} で {{ic|mod_dav}} と {{ic|mod_dav_fs}} を無効化することを [http://forum.owncloud.org/viewtopic.php?f=17&t=7240 推奨] しています。
 
  +
#!/bin/bash
 
  +
ocpath='/usr/share/webapps/owncloud'
ウェブブラウザが ownCloud ディレクトリに書き込みが行えるようにしてください:
 
  +
htuser='http'
# chown -R http:http /usr/share/webapps/owncloud/
 
  +
htgroup='http'
  +
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
  +
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
  +
chown -R root:${htuser} ${ocpath}/
  +
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
  +
chown -R ${htuser}:${htgroup} ${ocpath}/config/
  +
chown -R ${htuser}:${htgroup} ${ocpath}/data/
  +
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
  +
chown root:${htuser} ${ocpath}/.htaccess
  +
chown root:${htuser} ${ocpath}/data/.htaccess
  +
chmod 0644 ${ocpath}/.htaccess
  +
chmod 0644 ${ocpath}/data/.htaccess
   
 
そして Apache ({{ic|httpd.service}}) を再起動します。
 
そして Apache ({{ic|httpd.service}}) を再起動します。
   
ウェブブラウザで http://localhost/ を開いて下さい。ユーザーアカウントを作成してインストールウィザードに従う必要があります。
+
ウェブブラウザで http://localhost/owncloud を開いて下さい。ユーザーアカウントを作成してインストールウィザードに従う必要があります。
   
  +
=== WebDAV ===
==== サブディレクトリで ownCloud を動かす ====
 
  +
  +
OwnCloud には WebDAV の実装が付いておりデフォルトで有効になっていますが、Apache の実装と衝突する可能性があります。OwnCloud は {{ic|/etc/httpd/conf/httpd.conf}} で {{ic|mod_dav}} と {{ic|mod_dav_fs}} を無効化することを [http://forum.owncloud.org/viewtopic.php?f=17&t=7240 推奨] しています。
  +
  +
=== サブディレクトリで ownCloud を動かす ===
   
 
デフォルトの {{ic|owncloud.conf}} を {{ic|httpd.conf}} でインクルードすることで、ownCloud は80番ポートと localhost ドメインをコントロールします。
 
デフォルトの {{ic|owncloud.conf}} を {{ic|httpd.conf}} でインクルードすることで、ownCloud は80番ポートと localhost ドメインをコントロールします。
   
 
サブディレクトリで ownCloud を動作させたい場合は、{{ic|/etc/httpd/conf/extra/owncloud.conf}} を編集して include ファイルの {{ic|<nowiki><VirtualHost *:80> ... </VirtualHost></nowiki>}} の部分をコメントアウトしてください。
 
サブディレクトリで ownCloud を動作させたい場合は、{{ic|/etc/httpd/conf/extra/owncloud.conf}} を編集して include ファイルの {{ic|<nowiki><VirtualHost *:80> ... </VirtualHost></nowiki>}} の部分をコメントアウトしてください。
  +
  +
== Nginx + php-fpm の設定 ==
  +
  +
ownCloud の公式ドキュメントでは php-fpm で PHP を使っています。したがってそれが最もサポートされている構成になります。以下は Arch Linux で動作するように、[https://doc.owncloud.org/server/8.1/admin_manual/installation/nginx_configuration.html 推奨されるサーバー設定] から多少変更を加えています。{{pkg|php-fpm}} と SSL 証明書が必要です。
  +
  +
{{bc|<nowiki>
  +
user http;
  +
worker_processes auto;
  +
  +
events {
  +
worker_connections 1024;
  +
}
  +
  +
http {
  +
  +
#sendfile on; # Appears to cause problems with webdav.
  +
#tcp_nopush on;
  +
  +
server {
  +
listen 80;
  +
server_name owncloud.example.com;
  +
# enforce https
  +
return 301 https://$server_name$request_uri;
  +
}
  +
  +
server {
  +
include mime.types;
  +
default_type application/octet-stream;
  +
  +
listen 443 ssl;
  +
server_name owncloud.example.com;
  +
  +
ssl_certificate /etc/ssl/server.crt;
  +
ssl_certificate_key /etc/ssl/server.key;
  +
  +
# Add headers to serve security related headers
  +
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
  +
add_header X-Content-Type-Options nosniff;
  +
add_header X-Frame-Options "SAMEORIGIN";
  +
add_header X-XSS-Protection "1; mode=block";
  +
add_header X-Robots-Tag none;
  +
  +
# Path to the root of your installation
  +
root /usr/share/webapps/owncloud;
  +
# set max upload size
  +
client_max_body_size 10G;
  +
fastcgi_buffers 64 4K;
  +
  +
# Disable gzip to avoid the removal of the ETag header
  +
gzip off;
  +
  +
# Uncomment if your server is build with the ngx_pagespeed module
  +
# This module is currently not supported.
  +
#pagespeed off;
  +
  +
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
  +
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
  +
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
  +
  +
index index.php;
  +
error_page 403 /core/templates/403.php;
  +
error_page 404 /core/templates/404.php;
  +
  +
location = /robots.txt {
  +
allow all;
  +
log_not_found off;
  +
access_log off;
  +
}
  +
  +
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
  +
deny all;
  +
}
  +
  +
location / {
  +
# 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 ~ \.php(?:$|/) {
  +
fastcgi_split_path_info ^(.+\.php)(/.+)$;
  +
include fastcgi_params;
  +
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  +
fastcgi_param PATH_INFO $fastcgi_path_info;
  +
fastcgi_param HTTPS on;
  +
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
  +
# Unix domain sockets are faster than TCP sockets
  +
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
  +
}
  +
  +
# 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;
  +
}
  +
  +
}
  +
}
  +
</nowiki>}}
  +
  +
{{pkg|php-fpm}} を http ユーザーで動作させるように設定して、上記のようにパーミッションを設定すれば、動作するはずです。ownCloud の設定の {{ic|config.example.php}} を手動でコピーするのは推奨されていません。最初の実行時に自動的に生成されます。{{ic|/usr/share/webapps/owncloud/data}} という ownCloud のデータディレクトリを作成して所有者を root:http にすることで自動設定が行われます。
   
 
== Nginx + uwsgi_php の設定 ==
 
== Nginx + uwsgi_php の設定 ==
94行目: 231行目:
 
=== 設定 ===
 
=== 設定 ===
   
*まず最初に Nginx サーバーをセットアップしてください。詳しくは [[Nginx|Nginx]] のページを参照。
+
*まず最初に Nginx サーバーをセットアップしてください。詳しくは [[Nginx]] のページを参照。
 
*{{ic|/etc/nginx/nginx.conf}} ファイルの http セクションに以下の行でサーバーを設定:
 
*{{ic|/etc/nginx/nginx.conf}} ファイルの http セクションに以下の行でサーバーを設定:
 
{{bc|<nowiki>
 
{{bc|<nowiki>
  +
# your nginx-server configs
#this is to avoid Request Entity Too Large error
 
  +
# ...
client_max_body_size 1000M;
 
  +
# deny access to some special files
 
  +
# uncomment to run as user and group http
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
 
  +
#user http;
deny all;
 
  +
}
 
  +
http {
# pass all .php or .php/path urls to uWSGI
 
  +
# more configs
location ~ ^(.+\.php)(.*)$ {
 
  +
# ...
include uwsgi_params;
 
uwsgi_modifier1 14;
+
server {
  +
listen 80;
uwsgi_pass 127.0.0.1:3001;
 
  +
#listen 443 ssl;
}
 
  +
server_name localhost;
# everything else goes to the filesystem,
 
  +
# but / will be mapped to index.php and run through uwsgi
 
  +
#ssl_certificate cert.pem;
location / {
 
  +
#ssl_certificate_key key.pem;
root /usr/share/webapps/owncloud;
 
  +
index index.php;
 
  +
#ssl_session_cache shared:SSL:1m;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
 
  +
#ssl_session_timeout 5m;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
 
  +
  +
#ssl_ciphers HIGH:!aNULL:!MD5;
  +
#ssl_prefer_server_ciphers on;
  +
  +
#this is to avoid Request Entity Too Large error
  +
client_max_body_size 1000M;
  +
# deny access to some special files
  +
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
  +
deny all;
  +
}
  +
# pass all .php or .php/path urls to uWSGI
  +
location ~ ^(.+\.php)(.*)$ {
  +
include uwsgi_params;
  +
uwsgi_modifier1 14;
  +
#Uncomment line below if you get connection refused error. Remember to comment out line with "uwsgi_pass 127.0.0.1:3001;" below
  +
#uwsgi_pass unix:/run/uwsgi/owncloud.sock;
  +
uwsgi_pass 127.0.0.1:3001;
  +
}
  +
# everything else goes to the filesystem,
  +
# but / will be mapped to index.php and run through uwsgi
  +
location / {
  +
root /usr/share/webapps/owncloud;
  +
index index.php;
  +
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
  +
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
  +
}
  +
}
 
}
 
}
 
</nowiki>}}
 
</nowiki>}}
162行目: 326行目:
 
# set php configuration for this instance of php, no need to edit global php.ini
 
# set php configuration for this instance of php, no need to edit global php.ini
 
php-set = date.timezone=Etc/UTC
 
php-set = date.timezone=Etc/UTC
php-set = open_basedir=%(owncloud_data_dir):/tmp/:/usr/share/pear/:/usr/share/webapps/owncloud:/etc/webapps/owncloud
+
php-set = open_basedir=%(owncloud_data_dir):/tmp/:/usr/share/pear/:/usr/share/webapps/owncloud:/etc/webapps/owncloud:/dev/urandom
 
php-set = session.save_path=/tmp
 
php-set = session.save_path=/tmp
 
php-set = post_max_size=1000M
 
php-set = post_max_size=1000M
 
php-set = upload_max_filesize=1000M
 
php-set = upload_max_filesize=1000M
  +
php-set = always_populate_raw_post_data=-1
   
 
# load all extensions only in this instance of php, no need to edit global php.ini
 
# load all extensions only in this instance of php, no need to edit global php.ini
171行目: 336行目:
 
php-set = extension=curl.so
 
php-set = extension=curl.so
 
php-set = extension=intl.so
 
php-set = extension=intl.so
php-set = extension=openssl.so
 
 
php-set = extension=pdo_sqlite.so
 
php-set = extension=pdo_sqlite.so
 
php-set = extension=exif.so
 
php-set = extension=exif.so
184行目: 348行目:
 
php-set = extension=xsl.so
 
php-set = extension=xsl.so
 
php-set = extension=zip.so
 
php-set = extension=zip.so
  +
# uncomment following line to use mysql-backend
  +
#php-set = extension=pdo_mysql.so
   
 
processes = 10
 
processes = 10
189行目: 355行目:
 
cron = -3 -1 -1 -1 -1 /usr/bin/php -f /usr/share/webapps/owncloud/cron.php 1>/dev/null
 
cron = -3 -1 -1 -1 -1 /usr/bin/php -f /usr/share/webapps/owncloud/cron.php 1>/dev/null
   
  +
# Uncomment line below and replace http with a specific user/group name which you want uwsgi to run with.
  +
#uid = http
  +
#gid = http
 
</nowiki>}}
 
</nowiki>}}
   
197行目: 366行目:
 
上のコマンドは {{ic|/etc/uwsgi/owncloud.ini}} 設定ファイルを参照して必要に応じて起動します。
 
上のコマンドは {{ic|/etc/uwsgi/owncloud.ini}} 設定ファイルを参照して必要に応じて起動します。
 
 
  +
ブート時にデフォルトで uwsgi サービスを有効化するには、次を実行:
[[Uwsgi#Starting_service]] も参照。
 
  +
# systemctl enable uwsgi@owncloud.socket
  +
  +
{{Note|[http://0pointer.de/blog/projects/socket-activation.html systemd のソケットアクティベーション] を利用することで、インスタンスへの接続がない間は無駄にリソースを消費しないようにしています。すぐに有効化したい場合は、{{ic|.socket}} という部分を削除してサービスを起動・有効化してください。}}
  +
  +
[[Uwsgi#サービスの起動]]も参照。
   
 
== 同期 ==
 
== 同期 ==
203行目: 377行目:
 
=== デスクトップ ===
 
=== デスクトップ ===
   
公式クライアント [http://owncloud.org/install/ このページ] 見つけることができ [[AUR|AUR]] [https://aur.archlinux.org/packages/?O=0&C=0&SeB=nd&K=owncloud-client&outdated=&SB=n&SO=a&PP=50&do_Search=Go 様々なバージョン]パッケージ化されています ({{AUR|owncloud-client}}, {{AUR|owncloud-client-beta}}, {{AUR|owncloud-client-git}}, {{AUR|owncloud-client-qt5}})。使用方法はドキュメントの [http://doc.owncloud.org/server/7.0/user_manual/files/sync.html このページ] に説明があります。
+
公式クライアント {{Pkg|owncloud-client}} パッケージでインストールできます。[[AUR]] は様々なバージョンが存在します: {{AUR|owncloud-client-beta}}{{Broken package link|{{aur-mirror|owncloud-client-beta}}}}, {{AUR|owncloud-client-git}} and {{AUR|owncloud-client-qt5}}{{Broken package link|{{aur-mirror|owncloud-client-qt5}}}}。使用方法はドキュメントの [http://doc.owncloud.org/server/7.0/user_manual/files/sync.html こちらのページ] に書かれています。
   
 
==== カレンダー ====
 
==== カレンダー ====
   
Mozilla [[Thunderbird|Thunderbird]] の [[Thunderbird#Lightning_-_カレンダー|Lightning カレンダー]]を使って ''ownCloud'' のカレンダーにアクセスするには以下の URL を使います:
+
Mozilla [[Thunderbird]] の [[Thunderbird#Lightning_-_カレンダー|Lightning カレンダー]]を使って ''ownCloud'' のカレンダーにアクセスするには以下の URL を使います:
   
 
<nowiki>https://ADDRESS/remote.php/caldav/calendars/USERNAME/CALENDARNAME</nowiki>
 
<nowiki>https://ADDRESS/remote.php/caldav/calendars/USERNAME/CALENDARNAME</nowiki>
216行目: 390行目:
   
 
詳しくは [http://doc.owncloud.org/server/7.0/user_manual/pim/calendar.html#synchronizing-calendars-using-caldav 公式ドキュメント] を見て下さい。
 
詳しくは [http://doc.owncloud.org/server/7.0/user_manual/pim/calendar.html#synchronizing-calendars-using-caldav 公式ドキュメント] を見て下さい。
 
以下のアドレスで、[[Thunderbird|Thunderbird]] の Lightning アドオンをインストールして CalDav を使うことができます:
 
 
http://''username'':''password''@''owncloudserver_address''/owncloud/remote.php/caldav/calendars/''username''/''calendarname''
 
 
カレンダーを適切に同期させるには Thunderbird を再起動させる必要があるかもしれません。
 
   
 
==== 連絡先 ====
 
==== 連絡先 ====
   
[[Thunderbird|Thunderbird]] と連絡先を同期するには、[http://www.sogo.nu/downloads/frontends.html SOGo フロントエンド] と [[Thunderbird#Lightning_-_カレンダー|Lightning エクステンション]]をインストールして公式ドキュメントの [http://doc.owncloud.org/server/7.0/user_manual/pim/sync_thunderbird.html 手順] に従う必要があります。
+
[[Thunderbird]] と連絡先を同期するには、[http://www.sogo.nu/downloads/frontends.html SOGo フロントエンド] と [[Thunderbird#Lightning_-_カレンダー|Lightning エクステンション]]をインストールして公式ドキュメントの [http://doc.owncloud.org/server/7.0/user_manual/pim/sync_thunderbird.html 手順] に従う必要があります。
   
  +
==== davfs2 でファイルをマウントする ====
=== Android ===
 
 
小額で使うことができる公式 Android アプリが Play ストアにあり、無料で使えるアプリが [https://f-droid.org/repository/browse/?fdfilter=owncloud&fdid=com.owncloud.android F-Droid] にあります。
 
 
連絡先とカレンダーの同期を有効にするには:
 
* Android 4 以上を使っている場合、[http://davdroid.bitfire.at/what-is-davdroid DAVdroid] ([https://f-droid.org/repository/browse/?fdfilter=owncloud&fdid=at.bitfire.davdroid F-Droid] から取得可能) をダウンロードして [http://www.slsmk.com/sync-android-contacts-calendar-and-files-to-owncloud/ この記事] の説明に従って下さい。
 
* 4.0 以下のバージョンの Android を使っていて、フリーのソフトウェアを使いたい場合、カレンダーと連絡先の同期には [https://f-droid.org/repository/browse/?fdfilter=caldav&fdid=com.morphoss.acal aCal] を、カレンダーだけの同期には CalDAV Sync Adapter ([https://f-droid.org/repository/browse/?fdfilter=caldav&fdid=org.gege.caldavsyncadapter F-Droid]) を試して下さい。フリーでないソフトウェアを使う気があるのであれば、[http://dmfs.org/ CardDAV-Sync と CalDAV-Sync] の使用が [http://doc.owncloud.org/server/7.0/user_manual/pim/contacts.html#synchronizing-with-android 推奨] されています。
 
 
== ownCloud にデータを保管する ==
 
 
=== WebDAV ===
 
 
ownCloud に新しいファイルを追加するには [[WebDAV|WebDAV]] かウェブインターフェイスのどちらかを常に使います。そうしないと、正しくインデックスが作られず、ファイルがちゃんと表示されません。ownCloud での WebDAV アップロードを有効にするのに必要な設定はありません。
 
 
{{Pkg|php-apcu}} をインストールして有効にすることで WebDAV をスピードアップできます。
 
 
==== davfs2 で ownCloud をマウントする ====
 
   
 
ownCloud を永続的にマウントしたい場合、まず {{Pkg|davfs2}} をインストールしてください ([[Davfs]] に説明があります)。
 
ownCloud を永続的にマウントしたい場合、まず {{Pkg|davfs2}} をインストールしてください ([[Davfs]] に説明があります)。
249行目: 401行目:
 
もし ownCloud が {{ic|https://own.example.com}} にある場合、WebDAV の URL は {{ic|https://own.example.com/remote.php/webdav}} になります (ownCloud 6.0 現在)。
 
もし ownCloud が {{ic|https://own.example.com}} にある場合、WebDAV の URL は {{ic|https://own.example.com/remote.php/webdav}} になります (ownCloud 6.0 現在)。
   
ownCloud をマウントするには、次のコマンドを (root で) 使います:
+
ownCloud をマウントするには、次のコマンドを使います:
   
$ mount https://own.example.com/remote.php/webdav /path/to/mount
+
# mount https://own.example.com/remote.php/webdav /path/to/mount
   
 
{{ic|/etc/fstab}} にエントリを作成することもできます:
 
{{ic|/etc/fstab}} にエントリを作成することもできます:
   
 
{{hc|/etc/fstab|
 
{{hc|/etc/fstab|
https://own.example.com/remote.php/webdav /path/to/mount rw,user,noauto 0 0
+
https://own.example.com/remote.php/webdav /path/to/mount davfs rw,user,noauto 0 0
 
}}
 
}}
{{Tip|自動でマウントできるように [[Davfs#Mounting as regular user]] で説明されているようにファイルにユーザー名 (と必要であればパスワード) を保存できます。}}
+
{{Tip|自動でマウントできるように [[Davfs#通常ユーザーでマウント]] で説明されているようにファイルにユーザー名 (と必要であればパスワード) を保存できます。}}
  +
{{Note|ディレクトリは作成・コピーできるのに、ファイルの作成やコピーができない場合、[[Davfs#ファイルの作成やコピーができない]] を見てください。}}
   
=== SABnzbd ===
+
=== Android ===
   
  +
小額で使うことができる公式 Android アプリが [https://play.google.com/store/apps/details?id=at.bitfire.davdroid Play ストア] にあり、無料で使えるアプリが [https://f-droid.org/app/at.bitfire.davdroid F-Droid] にあります。
[[SABnzbd]] を使う場合、{{ic|sabnzbd.ini}} ファイルに以下を設定すると良いでしょう:
 
  +
folder_rename 0
 
  +
連絡先とカレンダーの同期を有効にするには:
というのは ownCloud はアップロードされたファイルを速攻でスキャンするからです。展開された接頭辞などを SABnzbd が削除することを予防します。
 
  +
* Android 4 以上を使っている場合:
  +
*# [https://davdroid.bitfire.at/] をダウンロードしてください ([https://play.google.com/store/apps/details?id=at.bitfire.davdroid Play ストア], [https://f-droid.org/app/at.bitfire.davdroid F-Droid])。
  +
*# {{ic|httpd.conf}} で mod_rewrite.so を有効化してください。
  +
*# ''Account'' 設定で新しい DAVdroid アカウントを作成して、"短い"サーバーアドレスとログイン名/パスワードを指定してください。例: {{ic|<nowiki>https://cloud.example.com</nowiki>}} (ウェブサーバーでリダイレクトを正しく設定していれば {{ic|<nowiki>/remote.php/{carddav,webdav}</nowiki>}} の部分は必要ありません。''DAVdroid'' は適切な URL を認識するはずです)。
  +
:古いバージョンが対象ですが、[http://www.slsmk.com/sync-android-contacts-calendar-and-files-to-owncloud/ こちらの記事] には有用な情報が記載されています。
  +
  +
* 4.0 以下のバージョンの Android を使っていて、フリーのソフトウェアを使いたい場合、カレンダーと連絡先の同期には [https://f-droid.org/repository/browse/?fdfilter=caldav&fdid=com.morphoss.acal aCal] を、カレンダーだけの同期には CalDAV Sync Adapter ([https://f-droid.org/repository/browse/?fdfilter=caldav&fdid=org.gege.caldavsyncadapter F-Droid]) を試して下さい。フリーでないソフトウェアを使う気があるのであれば、[http://dmfs.org/ CardDAV-Sync と CalDAV-Sync] の使用が [http://doc.owncloud.org/server/7.0/user_manual/pim/contacts.html#synchronizing-with-android 推奨] されています。
   
 
=== 巨大なファイル ===
 
=== 巨大なファイル ===
296行目: 456行目:
   
 
* HTTP のベーシック認証で ownCloud へのアクセスを保護するときは、"status.php" ファイルは認証から外して誰でもアクセスできるようにしてください [https://github.com/owncloud/mirall/issues/734]。
 
* HTTP のベーシック認証で ownCloud へのアクセスを保護するときは、"status.php" ファイルは認証から外して誰でもアクセスできるようにしてください [https://github.com/owncloud/mirall/issues/734]。
  +
  +
=== SABnzbd ===
  +
  +
[[en2:SABnzbd|SABnzbd]] を使う場合、{{ic|sabnzbd.ini}} ファイルに以下を設定すると良いでしょう:
  +
folder_rename 0
  +
というのは ownCloud はアップロードされたファイルを速攻でスキャンするからです。展開された接頭辞などを SABnzbd が削除することを予防します。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
301行目: 467行目:
 
=== 自己署名証明書が使えない ===
 
=== 自己署名証明書が使えない ===
   
OwnCloud は [[Wikipedia:ja:cURL|cURL]] や [[Wikipedia:SabreDAV|SabreDAV]] を使って [[WebDAV|WebDAV]] が有効になっているかチェックします。([[LAMP|LAMP]] の記事に書かれているように) 自己署名証明書で SSL/TLS を使って、ownCloud の管理者ページにアクセスすると、以下のエラーメッセージが表示されます:
+
ownCloud は [[Wikipedia:ja:cURL|cURL]] や [[Wikipedia:SabreDAV|SabreDAV]] を使って [[WebDAV]] が有効になっているかチェックします。([[LAMP]] の記事に書かれているように) 自己署名証明書で SSL/TLS を使って、ownCloud の管理者ページにアクセスすると、以下のエラーメッセージが表示されます:
   
 
Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.
 
Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.
   
[[LAMP|LAMP]] のチュートリアルにしたがって設定を行っている場合、以下の手順を実行してください:
+
[[LAMP]] のチュートリアルにしたがって設定を行っている場合、以下の手順を実行してください:
   
証明書のためのローカルディレクトリを作成して、そこに [[LAMP|LAMP]] の証明書をコピーします。これによって {{Ic|ca-certificates}} のアップデートによって証明書が上書きされるのを防ぎます。
+
証明書のためのローカルディレクトリを作成して、そこに [[LAMP]] の証明書をコピーします。これによって {{Ic|ca-certificates}} のアップデートによって証明書が上書きされるのを防ぎます。
   
 
# cp /etc/httpd/conf/server.crt /usr/share/ca-certificates/''WWW.EXAMPLE.COM.crt''
 
# cp /etc/httpd/conf/server.crt /usr/share/ca-certificates/''WWW.EXAMPLE.COM.crt''
325行目: 491行目:
 
=== Android デバイスの自己署名証明書 ===
 
=== Android デバイスの自己署名証明書 ===
   
Once you have followed the setup for SSL as on [[LAMP#TLS.2FSSL|LAMP]] for example [https://f-droid.org/repository/browse/?fdfilter=davdroid&fdid=at.bitfire.davdroid davdroid] will fail to work because the certificate is not accepted. A certificate can be made as follows on your server:
+
Once you have followed the setup for SSL, as on [https://wiki.archlinux.org/index.php/LAMP#TLS.2FSSL LAMP] for example, early versions of DAVdroid will reject the connection because the certificate is not trusted. A certificate can be made as follows on your server:
   
 
# openssl x509 -req -days 365 -in /etc/httpd/conf/server.csr -signkey /etc/httpd/conf/server.key -extfile android.txt -out CA.crt
 
# openssl x509 -req -days 365 -in /etc/httpd/conf/server.csr -signkey /etc/httpd/conf/server.key -extfile android.txt -out CA.crt
 
# openssl x509 -inform PEM -outform DER -in CA.crt -out CA.der.crt
 
# openssl x509 -inform PEM -outform DER -in CA.crt -out CA.der.crt
   
The file android.txt should contain the following:
+
The file {{ic|android.txt}} should contain the following:
   
 
basicConstraints=CA:true
 
basicConstraints=CA:true
   
Then import CA.der.crt to your android device:
+
Then import {{ic|CA.der.crt}} to your Android device:
   
Put the CA.der.crt onto the sdcard of your Android device (usually to internal one, eg save from a mail attachement). It should be in root directory.
+
Put the {{ic|CA.der.crt}} file onto the sdcard of your Android device (usually to the internal one, e.g. save from a mail attachment). It should be in the root directory. Go to ''Settings > Security > Credential storage'' and select ''Install from device storage''.
  +
The {{ic|.crt}} file will be detected and you will be prompted to enter a certificate name. After importing the certificate, you will find it in ''Settings > Security > Credential storage > Trusted credentials > User''.
Go to Settings / Security / Credential storage and select “Install from device storage”.
 
The .crt file will be detected and you will be prompted to enter a certificate name.
 
After importing the certificate, you will find it in Settings / Security / Credential storage / Trusted credentials / User.
 
   
Thanks to: [http://www.leftbrainthings.com/2013/10/13/creating-and-importing-self-signed-certificate-to-android-device/]
+
ソース: [http://www.leftbrainthings.com/2013/10/13/creating-and-importing-self-signed-certificate-to-android-device/]
   
=== Can't write into config directory! ===
+
=== Cannot write into config directory! ===
  +
  +
Check your httpd configuration file (like {{ic|owncloud.conf}}). Add your configuration directory ({{ic|/etc/webapps}} by default) to
   
Check your httpd conf file (like owncloud.conf). Add your config dir (/etc/webapps by default) to
 
 
php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/path/to/dir/"
 
php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/path/to/dir/"
   
 
Restart the httpd or php-fpm service to activate the change.
 
Restart the httpd or php-fpm service to activate the change.
   
=== Can't create data directory (/path/to/dir) ===
+
=== Cannot create data directory (/path/to/dir) ===
  +
  +
Check your httpd configuration file (like {{ic|owncloud.conf}}). Add your data directory to
   
Check your httpd conf file (like owncloud.conf). Add your data dir to
 
 
php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/path/to/dir/"
 
php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/path/to/dir/"
   
359行目: 525行目:
 
=== CSync failed to find a specific file. ===
 
=== CSync failed to find a specific file. ===
   
Most probably a certificate issue, recreate it, and don't leave the common name empty or you will see the error again.
+
This is most likely a certificate issue. Recreate it, and do not leave the common name empty or you will see the error again.
   
openssl genrsa -out server.key 2048
+
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt
openssl req -new -key server.key -x509 -days 365 -out server.crt
 
   
 
=== ログイン後に白いページが表示される ===
 
=== ログイン後に白いページが表示される ===
   
おそらく新しくインストールしたアプリが原因です。修正するには、phpMyAdmin を使って oc_appconfig テーブルを編集するか (運が良いことにテーブルに edit オプションがある場合) mysql で手動で修正してください:
+
おそらく新しくインストールしたアプリが原因です。修正するには、[[phpMyAdmin]] を使って {{ic|oc_appconfig}} テーブルを編集するか (運が良いことにテーブルに edit オプションがある場合) mysql で手動で修正してください:
   
 
mysql -u root -p owncloud
 
mysql -u root -p owncloud
378行目: 543行目:
 
HTTP のベーシック認証を使っている場合、"status.php" が対象から外れていることを確認してください。このファイルは誰からでもアクセスできるようにしておく必要があります [https://github.com/owncloud/mirall/issues/734]。
 
HTTP のベーシック認証を使っている場合、"status.php" が対象から外れていることを確認してください。このファイルは誰からでもアクセスできるようにしておく必要があります [https://github.com/owncloud/mirall/issues/734]。
   
  +
=== Server waits forever after creating admin account, before giving a 503 error ===
=== "Can't write into apps directory" ===
 
As mentioned in the [http://doc.owncloud.org/server/6.0/admin_manual/configuration/configuration_apps.html official admin manual] either you need an apps directory that is writable by the http user, or you need to set "appstoreenabled" to false.
 
   
  +
If the server waits forever but the database is working, try installing all of the apps available in the ArchLinux repos. If you don't have any apps installed, it can cause issues.
''Also'', not mentioned there, the directory needs to be in the open_basedir line in {{ic|/etc/php/php.ini}}
 
   
  +
=== Some files upload, but give an error 'Integrity constraint violation...' ===
One clean method is to have the package-installed directory at {{ic|/usr/share/webapps/owncloud/apps}} stay owned by root, and have the user-installed apps go into e.g. {{ic|/var/www/owncloud/apps}} which is owned by http. Then you can set "appstoreenabled" to true and package upgrades of apps should work fine as well. Relevant lines from {{ic|/etc/webapps/owncloud/config/config.php}}:
 
  +
<pre>
 
  +
You may see the following error in the ownCloud sync client:
  +
  +
SQLSTATE[23000]: Integrity constraint violation: ... Duplicate entry '...' for key 'fs_storage_path_hash')...
  +
  +
This is caused by an issue with the File Locking app, which is often not sufficient to keep conflicts from occurring on some webserver configurations. A more complete [https://doc.owncloud.org/server/8.1/admin_manual/configuration_files/files_locking_transactional.html Transactional File Locking] is available that rids these errors, but you must be using the Redis php-caching method. Install {{Pkg|redis}} and {{AUR|php-redis}}, comment out your current php-cache mechanism, and then in {{ic|/etc/php/conf.d/redis.ini}} uncomment {{ic|1=extension=redis.so}}. Then in {{ic|config.php}} make the following changes:
  +
  +
'memcache.local' => '\OC\Memcache\Redis',
  +
'filelocking.enabled' => 'true',
  +
'memcache.locking' => '\OC\Memcache\Redis',
  +
'redis' => array(
  +
'host' => 'localhost',
  +
'port' => 6379,
  +
'timeout' => 0.0,
  +
),
  +
  +
and start Redis:
  +
  +
systemctl enable redis.service
  +
systemctl start redis.service
  +
  +
Finally, disable the File Locking App, as the Transational File Locking will take care of it (and would conflict).
  +
  +
If everything is working, you should see 'Transactional File Locking Enabled' under Server Status on the Admin page, and syncs should no longer cause issues.
  +
  +
=== "Cannot write into apps directory" ===
  +
  +
As mentioned in the [http://doc.owncloud.org/server/6.0/admin_manual/configuration/configuration_apps.html official admin manual], either you need an apps directory that is writable by the http user, or you need to set {{ic|appstoreenabled}} to {{ic|false}}.
  +
  +
''Also'', not mentioned there, the directory needs to be in the {{ic|open_basedir}} line in {{ic|/etc/php/php.ini}}.
  +
  +
{{Accuracy|Does not seem to work with 8.0.2}}
  +
  +
One clean method is to have the package-installed directory at {{ic|/usr/share/webapps/owncloud/apps}} stay owned by root, and have the user-installed apps go into e.g. {{ic|/var/www/owncloud/apps}}, which is owned by http. Then you can set {{ic|appstoreenabled}} to {{ic|true}} and package upgrades of apps should work fine as well. Relevant lines from {{ic|/etc/webapps/owncloud/config/config.php}}:
  +
  +
{{bc|<nowiki>
 
'apps_paths' =>
 
'apps_paths' =>
 
array (
 
array (
400行目: 599行目:
 
),
 
),
 
),
 
),
</pre>
+
</nowiki>}}
  +
Example open_basedir line from {{ic|/etc/php/php.ini}} (you might have other dirs in there as well):
 
  +
Example {{ic|open_basedir}} line from {{ic|/etc/php/php.ini}} (you might have other directories in there as well):
<pre>
 
  +
open_basedir = /srv/http/:/usr/share/webapps/:/var/www/owncloud/apps/
 
  +
open_basedir = /srv/http/:/usr/share/webapps/:/var/www/owncloud/apps/
</pre>
 
   
 
Directory permissions:
 
Directory permissions:
  +
<pre>
 
$ ls -ld /usr/share/webapps/owncloud/apps /var/www/owncloud/apps/
+
{{hc|$ ls -ld /usr/share/webapps/owncloud/apps /var/www/owncloud/apps/|
drwxr-xr-x 26 root root 4096 des. 14 20:48 /usr/share/webapps/owncloud/apps
+
<nowiki>drwxr-xr-x 26 root root 4096 des. 14 20:48 /usr/share/webapps/owncloud/apps
drwxr-xr-x 2 http http 48 jan. 20 20:01 /var/www/owncloud/apps/
+
drwxr-xr-x 2 http http 48 jan. 20 20:01 /var/www/owncloud/apps/</nowiki>}}
  +
</pre>
 
  +
=== Security warnings even though the recommended settings have been included in nginx.conf ===
  +
  +
At the top of the admin page there might be a warning to set the {{ic|Strict-Transport-Security}}, {{ic|X-Content-Type-Options}}, {{ic|X-Frame-Options}}, {{ic|X-XSS-Protection}} and {{ic|X-Robots-Tag}} according to https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/harden_server.html even though they are already set like that.
  +
  +
A possible cause could be that because owncloud sets those settings, uwsgi passed them along and nginx added them again:
  +
{{hc|$ curl -I https://domain.tld|
  +
<nowiki>...
  +
X-XSS-Protection: 1; mode=block
  +
X-Content-Type-Options: nosniff
  +
X-Frame-Options: Sameorigin
  +
X-Robots-Tag: none
  +
Strict-Transport-Security: max-age=15768000; includeSubDomains; preload;
  +
X-Content-Type-Options: nosniff
  +
X-Frame-Options: SAMEORIGIN
  +
X-XSS-Protection: 1; mode=block
  +
X-Robots-Tag: none</nowiki>}}
  +
  +
While the fast_cgi sample config has a parameter to avoid that ( {{ic|fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice}} ), when using uwsgi and nginx the following modification of the uwsgi part in nginx.conf could help:
  +
  +
{{hc| /etc/nginx/nginx.conf|
  +
<nowiki>...
  +
# pass all .php or .php/path urls to uWSGI
  +
location ~ ^(.+\.php)(.*)$ {
  +
include uwsgi_params;
  +
uwsgi_modifier1 14;
  +
# hode following headers received from uwsgi, because otherwise we would send them twice since we already add them in nginx itself
  +
uwsgi_hide_header X-Frame-Options;
  +
uwsgi_hide_header X-XSS-Protection;
  +
uwsgi_hide_header X-Content-Type-Options;
  +
uwsgi_hide_header X-Robots-Tag;
  +
uwsgi_hide_header X-Frame-Options;
  +
#Uncomment line below if you get connection refused error. Remember to commet out line with "uwsgi_pass 127.0.0.1:3001;" below
  +
uwsgi_pass unix:/run/uwsgi/owncloud.sock;
  +
#uwsgi_pass 127.0.0.1:3001;
  +
}
  +
...</nowiki>}}
   
 
== 参照 ==
 
== 参照 ==
 
* [http://owncloud.org/ ownCloud 公式ウェブサイト]
 
* [http://owncloud.org/ ownCloud 公式ウェブサイト]
* [http://doc.owncloud.org/server/7.0/admin_manual/ ownCloud 7.0 管理者ドキュメント]
+
* [http://doc.owncloud.org/server/8.2/admin_manual/ ownCloud 8.2 管理者ドキュメント]

2016年1月10日 (日) 16:55時点における版

関連記事

ownCloud はクラウドストレージを提供するためのソフトウェア群です。

ownCloud のインストールと設定はどのウェブサーバーとデータベースを動かすかによって異なってきます。現在のところ wiki には #Apache の設定#Nginx + uwsgi_php の設定 が載っています。

必要環境

ownCloudウェブサーバーPHPデータベースを必要とします。古典的な LAMP の組み合わせで問題なく動作し、推奨 されています。

インストール

公式リポジトリから owncloudインストールしてください。

/etc/php/php.ini必要な以下のエクステンションをアンコメントします [1]:

gd.so
iconv.so
xmlrpc.so
zip.so

また、php-intlphp-mcrypt をインストールして以下のエクステンションをアンコメントすることが 推奨 されています:

bz2.so
curl.so
intl.so
mcrypt.so

キャッシュ

パフォーマンスを向上させるために、APCu による PHP キャッシュを使うことを推奨します。PHP#APCu を見てください。同じく OPCache も有効にすると有益です。PHP#OPCache を参照。

APCu を有効にした後、以下のディレクティブを /etc/webapps/owncloud/config/config.php に追加してください:

'memcache.local' => '\OC\Memcache\APCu',
ノート:
  • PHP 設定[apc] の下に apc.enable_cli=1 を追加してください。また、/etc/php/conf.d/apcu.iniextension=apcu.so をアンコメントしてください。2015年7月12日現在、これらの設定をしないと 複数問題 が発生します。
  • 2016年1月4日現在、OwnCloud 8.2.2 では php-apcu-bc パッケージに含まれている "APCu Backwards Compatibility Module" が必要です。パッケージをインストールしたら /etc/php/conf.d/apcu.iniextension=apcu.so の後に extension=apc.so を追加してください。

詳しくは 公式ドキュメント を参照。

/dev/urandom のアクセス

ownCloud 8.1.0-1 は /dev/urandom にアクセスする必要があります。php.ini で有効にしてください。

php.iniopen_basedir:/dev/urandom を追加します (末尾にスラッシュは付きません)。例:

open_basedir = /srv/http/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/dev/urandom

もしくは、/etc/httpd/conf/extra/owncloud.confphp_admin_value open_basedir:/dev/urandom を追加するほうが良い結果が得られるかもしれません。

Nginx + uwsgi_php では上記の設定は反映されません。uwsgi_php の設定ファイルに :/dev/urandom を指定してください:

/etc/uwsgi/owncloud.ini
php-set = open_basedir=%(owncloud_data_dir):/tmp/:/usr/share/pear/:/usr/share/webapps/owncloud:/etc/webapps/owncloud:/dev/urandom

データベースのサポート

使用するデータベースバックエンドにあわせて、/etc/php/php.ini の以下の拡張をアンコメントしてください:

  • MySQL の場合、pdo_mysql.so をアンコメントしてください。
  • PostgreSQL の場合、pdo_pgsql.sopgsql.so をアンコメントして php-pgsql をインストールしてください。
  • SQLite の場合、pdo_sqlite.sosqlite3.so をアンコメントして php-sqlite をインストールしてください。

Exif のサポート

公式リポジトリから exiv2 をインストールして php.iniexif.so エクステンションをアンコメントすることで exif サポートを有効化できます。

オールインワンの Docker を使う

ownCloud のインストールと設定を素早く安全に行う方法として Docker を使うことができます。Docker のリポジトリ には始めから ownCloud がインストールされている完全な LAMP スタックのイメージが複数存在します。Docker コンテナは基本的に chroot 環境よりも安全でありオーバーヘッドも少なくなります。Docker 上の ownCloud はかなり古いマシンでもスムーズに動作するでしょう。普通に ownCloud をインストールするよりも大抵は Docker をインストールしてから ownCloud イメージをインストールする方が簡単で時間がかかりません。

ノート: Docker イメージは ownCloud の公式サポートがありません。

Apache の設定

ノート: Apache HTTP Server#PHP に書かれているようにして PHP を有効化してください。

Apache の設定ファイルを ownCloud の設定ディレクトリにコピーします:

# cp /etc/webapps/owncloud/apache.example.conf /etc/httpd/conf/extra/owncloud.conf

そして /etc/httpd/conf/httpd.conf の一番下で設定ファイルをインクルードします:

Include conf/extra/owncloud.conf

セキュリティを確保するために、ownCloud のインストールマニュアル に書かれているようにディレクトリのパーティションを設定してください:

#!/bin/bash
ocpath='/usr/share/webapps/owncloud'
htuser='http'
htgroup='http'
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chown -R root:${htuser} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown root:${htuser} ${ocpath}/.htaccess
chown root:${htuser} ${ocpath}/data/.htaccess
chmod 0644 ${ocpath}/.htaccess
chmod 0644 ${ocpath}/data/.htaccess

そして Apache (httpd.service) を再起動します。

ウェブブラウザで http://localhost/owncloud を開いて下さい。ユーザーアカウントを作成してインストールウィザードに従う必要があります。

WebDAV

OwnCloud には WebDAV の実装が付いておりデフォルトで有効になっていますが、Apache の実装と衝突する可能性があります。OwnCloud は /etc/httpd/conf/httpd.confmod_davmod_dav_fs を無効化することを 推奨 しています。

サブディレクトリで ownCloud を動かす

デフォルトの owncloud.confhttpd.conf でインクルードすることで、ownCloud は80番ポートと localhost ドメインをコントロールします。

サブディレクトリで ownCloud を動作させたい場合は、/etc/httpd/conf/extra/owncloud.conf を編集して include ファイルの <VirtualHost *:80> ... </VirtualHost> の部分をコメントアウトしてください。

Nginx + php-fpm の設定

ownCloud の公式ドキュメントでは php-fpm で PHP を使っています。したがってそれが最もサポートされている構成になります。以下は Arch Linux で動作するように、推奨されるサーバー設定 から多少変更を加えています。php-fpm と SSL 証明書が必要です。

user http;
worker_processes auto;

events {
	worker_connections 1024;
}

http {
	
	#sendfile	on; # Appears to cause problems with webdav.
	#tcp_nopush	on;

	server {
		listen 80;
		server_name owncloud.example.com;
		# enforce https
		return 301 https://$server_name$request_uri;
	}

	server {
		include	mime.types;
		default_type application/octet-stream;

		listen 443 ssl;
		server_name owncloud.example.com;

		ssl_certificate /etc/ssl/server.crt;
		ssl_certificate_key /etc/ssl/server.key;

		# Add headers to serve security related headers
		add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
		add_header X-Content-Type-Options nosniff;
		add_header X-Frame-Options "SAMEORIGIN";
		add_header X-XSS-Protection "1; mode=block";
		add_header X-Robots-Tag none;

		# Path to the root of your installation
		root /usr/share/webapps/owncloud;
		# set max upload size
		client_max_body_size 10G;
		fastcgi_buffers 64 4K;

		# Disable gzip to avoid the removal of the ETag header
		gzip off;

		# Uncomment if your server is build with the ngx_pagespeed module
		# This module is currently not supported.
		#pagespeed off;

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

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

		location = /robots.txt {
			allow all;
			log_not_found off;
			access_log off;
		}

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

		location / {
			# 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 ~ \.php(?:$|/) {
			fastcgi_split_path_info ^(.+\.php)(/.+)$;
			include fastcgi_params;
			fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
			fastcgi_param PATH_INFO $fastcgi_path_info;
			fastcgi_param HTTPS on;
			fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
			# Unix domain sockets are faster than TCP sockets
			fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
		}

		# 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;
		}

	}
}

php-fpm を http ユーザーで動作させるように設定して、上記のようにパーミッションを設定すれば、動作するはずです。ownCloud の設定の config.example.php を手動でコピーするのは推奨されていません。最初の実行時に自動的に生成されます。/usr/share/webapps/owncloud/data という ownCloud のデータディレクトリを作成して所有者を root:http にすることで自動設定が行われます。

Nginx + uwsgi_php の設定

Apache を使わずに、uwsgi-plugin-php アプリケーションサーバーを使って ownCloud を固有のプロセスで動かすことができます。uWSGI 自体にリソースの使用を制限するための機能が豊富に含まれており、アプリケーションのセキュリティを強化したり、専用のユーザーで動くようにプロセスを分けられます。

設定

  • まず最初に Nginx サーバーをセットアップしてください。詳しくは Nginx のページを参照。
  • /etc/nginx/nginx.conf ファイルの http セクションに以下の行でサーバーを設定:
# your nginx-server configs
# ...

# uncomment to run as user and group http
#user http;

http {
    # more configs
    # ...
    server {
        listen       80;
        #listen       443 ssl;
        server_name  localhost;

        #ssl_certificate      cert.pem;
        #ssl_certificate_key  key.pem;

        #ssl_session_cache    shared:SSL:1m;
        #ssl_session_timeout  5m;

        #ssl_ciphers  HIGH:!aNULL:!MD5;
        #ssl_prefer_server_ciphers  on;

        #this is to avoid Request Entity Too Large error
        client_max_body_size 1000M;
        # deny access to some special files
        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
            deny all;
        }
        # pass all .php or .php/path urls to uWSGI
        location ~ ^(.+\.php)(.*)$ {
            include uwsgi_params;
            uwsgi_modifier1 14;
            #Uncomment line below if you get connection refused error. Remember to comment out line with "uwsgi_pass 127.0.0.1:3001;" below
            #uwsgi_pass unix:/run/uwsgi/owncloud.sock;
            uwsgi_pass 127.0.0.1:3001;
        }
        # everything else goes to the filesystem,
        # but / will be mapped to index.php and run through uwsgi
        location / {
            root /usr/share/webapps/owncloud;
            index index.php;
            rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
            rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
        }
    }
}
  • 次に uWSGI の設定ファイルを作成します。/etc/uwsgi/owncloud.ini を使うと良いでしょう:
[uwsgi]
master = true
socket = 127.0.0.1:3001

# Change this to where you want ownlcoud data to be stored (maybe /home/owncloud)
owncloud_data_dir = /usr/share/webapps/owncloud/data/
chdir             = %(owncloud_data_dir)

plugins = php
php-docroot     = /usr/share/webapps/owncloud
php-index       = index.php

# only allow these php files, I don't want to inadvertently run something else
php-allowed-ext = /index.php
php-allowed-ext = /public.php
php-allowed-ext = /remote.php
php-allowed-ext = /cron.php
php-allowed-ext = /status.php
php-allowed-ext = /settings/apps.php
php-allowed-ext = /core/ajax/update.php
php-allowed-ext = /core/ajax/share.php
php-allowed-ext = /core/ajax/requesttoken.php
php-allowed-ext = /core/ajax/translations.php
php-allowed-ext = /search/ajax/search.php
php-allowed-ext = /search/templates/part.results.php
php-allowed-ext = /settings/admin.php
php-allowed-ext = /settings/users.php
php-allowed-ext = /settings/personal.php
php-allowed-ext = /settings/help.php
php-allowed-ext = /settings/ajax/getlog.php
php-allowed-ext = /settings/ajax/setlanguage.php
php-allowed-ext = /settings/ajax/setquota.php
php-allowed-ext = /settings/ajax/userlist.php
php-allowed-ext = /settings/ajax/createuser.php
php-allowed-ext = /settings/ajax/removeuser.php
php-allowed-ext = /settings/ajax/enableapp.php
php-allowed-ext = /core/ajax/appconfig.php
php-allowed-ext = /settings/ajax/setloglevel.php
php-allowed-ext = /ocs/v1.php

# set php configuration for this instance of php, no need to edit global php.ini
php-set = date.timezone=Etc/UTC
php-set = open_basedir=%(owncloud_data_dir):/tmp/:/usr/share/pear/:/usr/share/webapps/owncloud:/etc/webapps/owncloud:/dev/urandom
php-set = session.save_path=/tmp
php-set = post_max_size=1000M
php-set = upload_max_filesize=1000M
php-set = always_populate_raw_post_data=-1

# load all extensions only in this instance of php, no need to edit global php.ini
php-set = extension=bz2.so
php-set = extension=curl.so
php-set = extension=intl.so
php-set = extension=pdo_sqlite.so
php-set = extension=exif.so
php-set = extension=gd.so
php-set = extension=imagick.so
php-set = extension=gmp.so
php-set = extension=iconv.so
php-set = extension=mcrypt.so
php-set = extension=sockets.so
php-set = extension=sqlite3.so
php-set = extension=xmlrpc.so
php-set = extension=xsl.so
php-set = extension=zip.so
# uncomment following line to use mysql-backend
#php-set = extension=pdo_mysql.so

processes = 10
cheaper = 2
cron = -3 -1 -1 -1 -1 /usr/bin/php -f /usr/share/webapps/owncloud/cron.php 1>/dev/null

# Uncomment line below and replace http with a specific user/group name which you want uwsgi to run with.
#uid = http
#gid = http

有効化

uWSGI には設定ファイルをインスタンスの識別子として使ってアプリケーションを起動したり有効化できるテンプレートユニットが入っています。例えば:

# systemctl start uwsgi@owncloud.socket

上のコマンドは /etc/uwsgi/owncloud.ini 設定ファイルを参照して必要に応じて起動します。

ブート時にデフォルトで uwsgi サービスを有効化するには、次を実行:

# systemctl enable uwsgi@owncloud.socket
ノート: systemd のソケットアクティベーション を利用することで、インスタンスへの接続がない間は無駄にリソースを消費しないようにしています。すぐに有効化したい場合は、.socket という部分を削除してサービスを起動・有効化してください。

Uwsgi#サービスの起動も参照。

同期

デスクトップ

公式クライアントは owncloud-client パッケージでインストールできます。AUR には様々なバージョンが存在します: owncloud-client-betaAUR[リンク切れ: アーカイブ: aur-mirror], owncloud-client-gitAUR and owncloud-client-qt5AUR[リンク切れ: アーカイブ: aur-mirror]。使用方法はドキュメントの こちらのページ に書かれています。

カレンダー

Mozilla ThunderbirdLightning カレンダーを使って ownCloud のカレンダーにアクセスするには以下の URL を使います:

https://ADDRESS/remote.php/caldav/calendars/USERNAME/CALENDARNAME

Kontact や Evolution など CalDAV に対応するプログラムを使って ownCloud のカレンダーにアクセスするには、以下の URL を使います:

https://ADDRESS/remote.php/caldav

詳しくは 公式ドキュメント を見て下さい。

連絡先

Thunderbird と連絡先を同期するには、SOGo フロントエンドLightning エクステンションをインストールして公式ドキュメントの 手順 に従う必要があります。

davfs2 でファイルをマウントする

ownCloud を永続的にマウントしたい場合、まず davfs2 をインストールしてください (Davfs に説明があります)。

もし ownCloud が https://own.example.com にある場合、WebDAV の URL は https://own.example.com/remote.php/webdav になります (ownCloud 6.0 現在)。

ownCloud をマウントするには、次のコマンドを使います:

# mount https://own.example.com/remote.php/webdav /path/to/mount

/etc/fstab にエントリを作成することもできます:

/etc/fstab
https://own.example.com/remote.php/webdav /path/to/mount davfs rw,user,noauto 0 0
ヒント: 自動でマウントできるように Davfs#通常ユーザーでマウント で説明されているようにファイルにユーザー名 (と必要であればパスワード) を保存できます。
ノート: ディレクトリは作成・コピーできるのに、ファイルの作成やコピーができない場合、Davfs#ファイルの作成やコピーができない を見てください。

Android

小額で使うことができる公式 Android アプリが Play ストア にあり、無料で使えるアプリが F-Droid にあります。

連絡先とカレンダーの同期を有効にするには:

  • Android 4 以上を使っている場合:
    1. [2] をダウンロードしてください (Play ストア, F-Droid)。
    2. httpd.conf で mod_rewrite.so を有効化してください。
    3. Account 設定で新しい DAVdroid アカウントを作成して、"短い"サーバーアドレスとログイン名/パスワードを指定してください。例: https://cloud.example.com (ウェブサーバーでリダイレクトを正しく設定していれば /remote.php/{carddav,webdav} の部分は必要ありません。DAVdroid は適切な URL を認識するはずです)。
古いバージョンが対象ですが、こちらの記事 には有用な情報が記載されています。
  • 4.0 以下のバージョンの Android を使っていて、フリーのソフトウェアを使いたい場合、カレンダーと連絡先の同期には aCal を、カレンダーだけの同期には CalDAV Sync Adapter (F-Droid) を試して下さい。フリーでないソフトウェアを使う気があるのであれば、CardDAV-Sync と CalDAV-Sync の使用が 推奨 されています。

巨大なファイル

WebDAV は大きなファイルを扱うのには向いていません、CPU とメモリを食いつぶしてしまいます。

現在のバージョンでは、ownCloud に大きなデータをコピーする良い方法はないように思われます。

対処法:

大きなファイルをあなたの ownCloud に直接コピーし、データベースを完全リスキャンします (例えば Re-scan filesystem アドオンを使うことができます)。

ですが、この方法は将来 ownCloud が計画している end-to-end 暗号化が実装された時に使えなくなるかもしれないので、注意してください。

重要なノート

  • owncloud.example.xxx のようなサブドメインを使う場合、証明書でカバーされているか確認してください。そうでなければ、ownCloud クライアントや wevdav からの接続は失敗するかもしれません。
  • ownCloud の sync-clients を使うことを計画しているなら、ntpd をインストールして ownCloud サーバーで実行してください。ntpd が実行されてないと、sync-client は失敗します。

(上記のように SSL 暗号化を追加する場合、/etc/httpd/conf/extra/httpd-ssl.conf を編集して DocumentRoot "/srv/http"DocumentRoot "/usr/share/webapps/owncloud" に変更してください。)

  • ownCloud のアプリは他にも ここ で探すことができます。
  • 新しいアプリケーションをインストールするには、アプリストアから zip をダウンロードして、それを /srv/http/owncloud/apps/ に展開します。その後、httpd を再起動してください:
# systemctl restart httpd

サーバーにログインしてアプリセクションを開けば新しいアプリが追加されているはずです。

  • HTTP のベーシック認証で ownCloud へのアクセスを保護するときは、"status.php" ファイルは認証から外して誰でもアクセスできるようにしてください [3]

SABnzbd

SABnzbd を使う場合、sabnzbd.ini ファイルに以下を設定すると良いでしょう:

folder_rename 0

というのは ownCloud はアップロードされたファイルを速攻でスキャンするからです。展開された接頭辞などを SABnzbd が削除することを予防します。

トラブルシューティング

自己署名証明書が使えない

ownCloud は cURLSabreDAV を使って WebDAV が有効になっているかチェックします。(LAMP の記事に書かれているように) 自己署名証明書で SSL/TLS を使って、ownCloud の管理者ページにアクセスすると、以下のエラーメッセージが表示されます:

Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken.

LAMP のチュートリアルにしたがって設定を行っている場合、以下の手順を実行してください:

証明書のためのローカルディレクトリを作成して、そこに LAMP の証明書をコピーします。これによって ca-certificates のアップデートによって証明書が上書きされるのを防ぎます。

# cp /etc/httpd/conf/server.crt /usr/share/ca-certificates/WWW.EXAMPLE.COM.crt

WWW.EXAMPLE.COM.crt/etc/ca-certificates.conf に追加:

WWW.EXAMPLE.COM.crt

そして証明書を更新:

# update-ca-certificates

httpd サービスを再起動して証明書を有効にしてください。

これで動作しない場合は /etc/php/php.ini で mod_curl を無効化してみてください。

Android デバイスの自己署名証明書

Once you have followed the setup for SSL, as on LAMP for example, early versions of DAVdroid will reject the connection because the certificate is not trusted. A certificate can be made as follows on your server:

 # openssl x509 -req -days 365 -in /etc/httpd/conf/server.csr -signkey /etc/httpd/conf/server.key -extfile android.txt -out CA.crt
 # openssl x509 -inform PEM -outform DER -in CA.crt -out CA.der.crt 

The file android.txt should contain the following:

 basicConstraints=CA:true

Then import CA.der.crt to your Android device:

Put the CA.der.crt file onto the sdcard of your Android device (usually to the internal one, e.g. save from a mail attachment). It should be in the root directory. Go to Settings > Security > Credential storage and select Install from device storage. The .crt file will be detected and you will be prompted to enter a certificate name. After importing the certificate, you will find it in Settings > Security > Credential storage > Trusted credentials > User.

ソース: [4]

Cannot write into config directory!

Check your httpd configuration file (like owncloud.conf). Add your configuration directory (/etc/webapps by default) to

php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/path/to/dir/"

Restart the httpd or php-fpm service to activate the change.

Cannot create data directory (/path/to/dir)

Check your httpd configuration file (like owncloud.conf). Add your data directory to

php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/path/to/dir/"

Restart the httpd or php-fpm service to activate the change.

CSync failed to find a specific file.

This is most likely a certificate issue. Recreate it, and do not leave the common name empty or you will see the error again.

# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt

ログイン後に白いページが表示される

おそらく新しくインストールしたアプリが原因です。修正するには、phpMyAdmin を使って oc_appconfig テーブルを編集するか (運が良いことにテーブルに edit オプションがある場合) mysql で手動で修正してください:

mysql -u root -p owncloud
MariaDB [owncloud]> delete from oc_appconfig where appid='<nameOfExtension>' and configkey='enabled' and configvalue='yes'
MariaDB [owncloud]> insert into oc_appconfig (appid,configkey,configvalue) values ('<nameOfExtension>','enabled','no');

テーブルから関連する設定が削除されるので、後でまた追加してください。

GUI の同期クライアントで接続できない

HTTP のベーシック認証を使っている場合、"status.php" が対象から外れていることを確認してください。このファイルは誰からでもアクセスできるようにしておく必要があります [5]

Server waits forever after creating admin account, before giving a 503 error

If the server waits forever but the database is working, try installing all of the apps available in the ArchLinux repos. If you don't have any apps installed, it can cause issues.

Some files upload, but give an error 'Integrity constraint violation...'

You may see the following error in the ownCloud sync client:

   SQLSTATE[23000]: Integrity constraint violation: ... Duplicate entry '...' for key 'fs_storage_path_hash')...

This is caused by an issue with the File Locking app, which is often not sufficient to keep conflicts from occurring on some webserver configurations. A more complete Transactional File Locking is available that rids these errors, but you must be using the Redis php-caching method. Install redis and php-redisAUR, comment out your current php-cache mechanism, and then in /etc/php/conf.d/redis.ini uncomment extension=redis.so. Then in config.php make the following changes:

   'memcache.local' => '\OC\Memcache\Redis',
   'filelocking.enabled' => 'true',
   'memcache.locking' => '\OC\Memcache\Redis',
   'redis' => array(
        'host' => 'localhost',
        'port' => 6379,
        'timeout' => 0.0,
         ),

and start Redis:

   systemctl enable redis.service
   systemctl start redis.service

Finally, disable the File Locking App, as the Transational File Locking will take care of it (and would conflict).

If everything is working, you should see 'Transactional File Locking Enabled' under Server Status on the Admin page, and syncs should no longer cause issues.

"Cannot write into apps directory"

As mentioned in the official admin manual, either you need an apps directory that is writable by the http user, or you need to set appstoreenabled to false.

Also, not mentioned there, the directory needs to be in the open_basedir line in /etc/php/php.ini.

この記事またはセクションの正確性には問題があります。
理由: Does not seem to work with 8.0.2 (議論: トーク:Nextcloud#)

One clean method is to have the package-installed directory at /usr/share/webapps/owncloud/apps stay owned by root, and have the user-installed apps go into e.g. /var/www/owncloud/apps, which is owned by http. Then you can set appstoreenabled to true and package upgrades of apps should work fine as well. Relevant lines from /etc/webapps/owncloud/config/config.php:

  'apps_paths' => 
  array (
    0 => 
    array (
      'path' => '/usr/share/webapps/owncloud/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 => 
    array (
      'path' => '/var/www/owncloud/apps',
      'url' => '/wapps',
      'writable' => true,
    ),
  ),

Example open_basedir line from /etc/php/php.ini (you might have other directories in there as well):

open_basedir = /srv/http/:/usr/share/webapps/:/var/www/owncloud/apps/

Directory permissions:

$ ls -ld /usr/share/webapps/owncloud/apps /var/www/owncloud/apps/
 drwxr-xr-x 26 root root 4096 des.  14 20:48 /usr/share/webapps/owncloud/apps
 drwxr-xr-x  2 http http   48 jan.  20 20:01 /var/www/owncloud/apps/

Security warnings even though the recommended settings have been included in nginx.conf

At the top of the admin page there might be a warning to set the Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection and X-Robots-Tag according to https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/harden_server.html even though they are already set like that.

A possible cause could be that because owncloud sets those settings, uwsgi passed them along and nginx added them again:

$ curl -I https://domain.tld
...
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: Sameorigin
X-Robots-Tag: none
Strict-Transport-Security: max-age=15768000; includeSubDomains; preload;
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none

While the fast_cgi sample config has a parameter to avoid that ( fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice ), when using uwsgi and nginx the following modification of the uwsgi part in nginx.conf could help:

 /etc/nginx/nginx.conf
...
        # pass all .php or .php/path urls to uWSGI
        location ~ ^(.+\.php)(.*)$ {
            include uwsgi_params;
            uwsgi_modifier1 14;
            # hode following headers received from uwsgi, because otherwise we would send them twice since we already add them in nginx itself
            uwsgi_hide_header X-Frame-Options;
            uwsgi_hide_header X-XSS-Protection;
            uwsgi_hide_header X-Content-Type-Options;
            uwsgi_hide_header X-Robots-Tag;
            uwsgi_hide_header X-Frame-Options;
            #Uncomment line below if you get connection refused error. Remember to commet out line with "uwsgi_pass 127.0.0.1:3001;" below
            uwsgi_pass unix:/run/uwsgi/owncloud.sock;
            #uwsgi_pass 127.0.0.1:3001;
        }
...

参照