ownClowd 8.1 + HTTPS + Memcached の設定メモ(CentOS7.1.1503)

Linux
Linux
スポンサーリンク

ownCloud は、ドロップボックスのようなオンラインストレージを、自分のサーバ上に構築できるオープンソースソフトウェアです。クライアントは、WEBブラウザさえあれば、ownCloud で、ファイルを共有することが可能です。

さらに専用のクライアントソフトをインストールすれば、PC上に、自動で ownCloud と同期するフォルダを作成できます。iOS/Androidアプリも用意されているので、スマートフォンからでも使えます。試しに ownCloud8.1 を CentOS 7.1 にインストールしてみましたので、手順をメモしておきました。

LAMP 環境のインストール

ownCloud を動かすには LAMP 環境が必要です。今回は、こちらの手順でインストールしました。

ownCloud のインストール

ownCloud の yum リポジトリの追加

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-7/isv:ownCloud:community.repo
 

ownCloud のインストール

yum -y install owncloud

ownCloud の yum リポジトリの無効化

vim /etc/yum.repos.d/isv\:ownCloud\:community.repo

(略)
enabled=1
 ↓
enabled=0

インストール作業はこれだけです。おどろくほど簡単ですね(^^)

SSLサーバ証明書(自己署名)の作成

(2015年12月15日追記)正規の認証局が発行した、サーバー証明書を無料で取得できるようになりました。よければご参照ください → Let's Encrypt サーバー証明書の取得と自動更新設定メモ

・秘密鍵の作成

openssl genrsa 2048 > owncloud.key

・CSR(証明書署名要求)の作成
※Common Name(ドメイン名)「owncloud.example」は、ご自分のドメイン名に読み替えてください。

openssl req -new -key owncloud.key > owncloud.csr 
---下記を入力--------------------------- 
Country Name (2 letter code) [XX]:JP 
State or Province Name (full name) []:<空エンター> 
Locality Name (eg, city) [Default City]:<空エンター> 
Organization Name (eg, company) [Default Company Ltd]:<空エンター> 
Organizational Unit Name (eg, section) []:<空エンター> 
Common Name (eg, your name or your owncloud's hostname) []:owncloud.example
Email Address []:<空エンター> 
 
Please enter the following 'extra' attributes 
to be sent with your certificate request 
A challenge password []:<空エンター> 
An optional company name []:<空エンター> 

・SSLサーバ証明書の作成(有効期限10年)

openssl x509 -days 3650 -req -signkey owncloud.key < owncloud.csr > owncloud.crt

・秘密鍵とSSLサーバ証明書を適切な場所に移動

mv -i owncloud.key /etc/pki/tls/private/
mv -i owncloud.crt  /etc/pki/tls/certs/

・秘密鍵とSSLサーバ証明書のオーナーを root に変更

chown root:root /etc/pki/tls/private/owncloud.key
chown root:root /etc/pki/tls/certs/owncloud.crt
chmod 600 /etc/pki/tls/private/owncloud.key
chmod 600 /etc/pki/tls/certs/owncloud.crt

・CSRを削除

rm owncloud.csr

Apache HTTPSバーチャルホストの設定

・ownCloud デフォルトのコンフィグを読込まないようにする。

mv -i /etc/httpd/conf.d/owncloud.conf /etc/httpd/conf.d/owncloud.conf.org
 

・SSL設定ファイルのオリジナルをバックアッップします。

mv -i /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.KEEP
 

・コンフィグを作成します。
vim /etc/httpd/conf.d/ssl.conf

Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout  300
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
    ServerName owncloud.example
    DocumentRoot "/var/www/html/owncloud/"

    <Directory "/var/www/html/owncloud/">
        Options FollowSymLinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/html/owncloud
        SetEnv HTTP_HOME /var/www/html/owncloud

        Require all granted
    </Directory>

    <Directory "/var/www/html/owncloud/data/">
        # just in case if .htaccess gets disabled
        Require all denied
    </Directory>

    SSLEngine on
    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
    SSLCertificateFile /etc/pki/tls/certs/owncloud.crt
    SSLCertificateKeyFile /etc/pki/tls/private/owncloud.key

    ErrorLog logs/owncloud_error_log
    CustomLog logs/owncloud_access_log combined
</VirtualHost>

・httpd再起動
systemctl restart httpd

ownCloud 用のデータベースの作成

・MySQLに ownCloud 用のDBとユーザを作成します。
mysql -u root -p

・ownCloud用DBの作成
create database owncloud character set utf8;

・ownCloud用ユーザの作成
grant all privileges on owncloud.* to owncloud@localhost identified by '<パスワード>';

exit

ownCloud の初期設定

ブラウザで「https://owncloud.example/」にアクセスすると ownCloud の初期設定画面が表示されます。(自己署名証明書なので警告が表示されます)

管理アカウントのユーザ名とパスワードを入力して「ストレージとデータベース」をクリックします。
owncloud-01

「MySQL/MariaDB」を選択して、先ほど作成した、MySQLのユーザ名、<パスワード>、データベース名、を入力し「セットアップを完了します」をクリックします。
owncloud-02

「ownCloud へようこそ」が表示されれば、初期設定完了です。
owncloud-03

シンプルな画面で分かりやすいですね。(^^) ドラッグアンドドロップでアップロードできます。バージョン管理もできるようですね。
owncloud-05

メモリキャッシュ(Memcached)の設定

右上の[ユーザ名]→[管理] 画面で「メモリキャッシュが設定されていません。パフォーマンスを向上するために、可能であれば memcache を設定してください。」と表示されていました。パフォーマンスが向上するそうなので、メモリキャッシュ(Memcached)も設定してみました。
owncloud-04

・Memcached のインストール

yum -y install memcached-devel
yum -y install php-pecl-memcache

・自動起動設定
systemctl enable memcached

・起動
systemctl start memcached

・ownCloud のメモリキャッシュ設定
vim /var/www/html/owncloud/config/config.php

(略)
  'loglevel' => 3,
);
 ↓
(略)
  'loglevel' => 3,
  'memcache.local' => '\OC\Memcache\APCu',
);

終わりに

とても簡単にインストールができる ownCloud ですが、公式マニュアルを見てみると、データの保存先を Amazon S3 にしたり、API経由で操作ができたりと、面白そうな機能がたくさんありそうです。時間を見つけて、いろいろ試してみたいと思います。

コメント

  1. yaizawa より:

    OwnCloudのmemcache周りで悩んでいる際に参考にさせていただきました。
    真似して設定を入れ込んでみましたが、うまく行きませんでしたので試行錯誤してみたところ、提示されていた設定では恐らくmemcachdが効いていないように思われます。

    若干環境が違いますが、次のような経緯を踏みました。
    ・FreeBSDにPHP 5.6をpkgで導入
    ・memcachd、pecl-memcacheを導入
    ・「’memcache.local’ => ‘\OC\Memcache\APCu’,」を追加 ⇒ 動作せず
    ・config.sample.phpの記述を確認したところ、上記設定ではメモリキャッシュのバックエンドとしてAPC userを使用する模様
    —–引用開始—–
    * Available cache backends:
    *
    * * “\OC\Memcache\APC“ Alternative PHP Cache backend
    * * “\OC\Memcache\APCu“ APC user backend
    * * “\OC\Memcache\ArrayCache“ In-memory array-based backend (not recommended)
    * * “\OC\Memcache\Memcached“ Memcached backend
    * * “\OC\Memcache\Redis“ Redis backend
    * * “\OC\Memcache\XCache“ XCache backend
    —–引用終わり—–
    ・「’memcache.local’ => ‘\OC\Memcache\Memcached’,」に変更 ⇒ 動作せず
    ・念のためと思いpecl-memcacheを削除、pecl-memcachedを導入 ⇒ 動作

タイトルとURLをコピーしました