OwnCloud (日本語)

From ArchWiki
Revision as of 03:04, 3 March 2013 by Enz worker (Talk | contribs) (Created page with "Category:Web Server (日本語) fr:Owncloud [http://en.wikipedia.org/wiki/OwnCloud ownCloud] はクラウドストレージを提供するためのソフトウェア...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

インストール

owncloudAURAURで利用することができます。

  1. はじめに、LAMP を対応するwikiの記事を読みながら設定します。
  2. AUR#Installing_packages を読んで owncloudAUR をインストールします。
  3. /etc/httpd/conf/httpd.conf に以下の設定を記述します。(php5はLAMPのセットアップ中に設定されています) :
 Include /etc/httpd/conf/extra/owncloud.conf
 LoadModule php5_module modules/libphp5.so
 Include conf/extra/php5_module.conf

/etc/php/php.ini の以下のエクステンションを有効化します。

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

/etc/php/php.ini のどちらか使用するデータベースに依存したエクステンションを有効化します。

 sqlite.so
 sqlite3.so
 pdo_sqlite.so

または

 mysql.so
 mysqli.so
 pdo_mysql.so

restart httpd (Apache)を再起動し、http://localhost にウェブブラウザでアクセスしてください。インストールウィザードに従って、あなたのアカウントを作成することが出来るでしょう。

カスタム設定

ファイルサイズの制限

ownCloudのデフォルト設定では2MB以下がアップロード許可サイズとして設定されています。 /etc/php/php.iniを以下のように設定することで、これを変更することができます。

As of version 4.0 this is no longer necessary! The maximum upload size is now set via the ownCloud gui

 upload_max_filesize = 2M

version 4.5では/usr/share/webapps/owncloud/.htaccess にアップロード制限がなされています.PHP is set up to run as CGI の場合動かないので、/etc/php/php.ini の制限を変更する必要があります。それからopen_basedirの変更も必要です。

 upload_max_filesize = 512M
 post_max_size = 512M
 memory_limit = 512M
 open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/

owncloudをサブディレクトリで実行する

httpd.confから読み込まれるデフォルトのowncloud.confは、ポート80とあなたのlocalhostドメインでコントロールされます。もしサブディレクトリで実行するようにしたいのなら、 'Include /etc/httpd/conf/extra/owncloud.conf'をスキップし、シンボリックリンクを以下のように使用してください:

ln -s /usr/share/webapps/owncloud/ /srv/http/

データを保管する

小さなファイル群

あなたのownCloudに新しいファイルを追加するなら、WebDAVもしくはウェブインターフェースを常に使います。それらが使えなければ、インデックス権限が得られません。

WebDAVの速度向上を図るために、php-apcのインストールを熟考してください。

SABnzbdを使っているとき、あなたのsabnzdb.iniファイルに以下の設定をすることをおすすめします。

folder_rename 0

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

大きなファイル群

WebDAVはCPUとメモリを食いつぶすので大きなファイルを扱うには適切ではありません。

現在のバージョンではあなたのownCloudに大きなデータをコピーする良い方法はありません。


これの回避方法があります。

大きなファイルをあなたのownCloudに直接コピーし、、データベースの完全リスキャンをします。 (例えば [http://apps.owncloud.com/content/show.php?content=151948&forumpage=0&PHPSESSID=37b915160effcc0f37cc761ad2ab88be アドオンを使うことができます)。


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

重要なノート

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

Nginx + uwsgi_php を使う方法

Apacheの利用を避け、wsgi_php アプリケーションサーバーを使い、ownCloud自身のプロセスで実行することができます。uWSGI自体はリソースを制限するための機能を豊富に含んでいて、確固たるアプリケーションセキュリティや、所有するユーザー以下でプロセスを実行し隔離することができます。

ngixの設定:

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

uWSGIの/etc/uwsgi/owncloud.ini(実行は uwsgi_php --ini /etc/uwsgi/owncloud.ini):

[uwsgi]
socket = 127.0.0.1:3001
master = true
chdir = /srv/http/owncloud
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/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-set = date.timezone=Europe/Skopje
php-set = open_basedir=/srv/http/owncloud:/tmp/:/usr/share/pear/:/usr/share/webapps/owncloud

processes = 10
cheaper = 2
cron = -1 -1 -1 -1 -1 /usr/bin/curl -H https://localhost/cron.php

最後に、特権環境を除くことが出来るuWSGIを開始させるための簡素なsystemdユニットファイルを定義します。:

[Unit]
Description=OwnCloud service via uWSGI-PHP

[Service]
User=http
ExecStart=/usr/bin/uwsgi_php --ini /etc/uwsgi/owncloud.ini
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGQUIT
Restart=always

[Install]
WantedBy=multi-user.target