Ubuntu14.04 に owncloud8.1を導入した際の覚書。
導入時の主なセッティングは、

  • Ubuntu14.04 のLAMP構成によるインストールが終わっている。
  • Apacheの設定が終わっている。
  • MySQLの設定が終わっている。

あくまで覚書ですので、すべての環境で同じように導入できるかは検証してません。

・参考サイト
https://doc.owncloud.org/server/8.0/admin_manual/installation/source_installation.html

準備

PHP関連パッケージの確認

現在のシステムに導入されているPHP関連パッケージの一覧

$ dpkg -l | grep php
ii  libapache2-mod-php5                 5.5.9+dfsg-1ubuntu4.13              amd64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  php5-cli                            5.5.9+dfsg-1ubuntu4.13              amd64        command-line interpreter for the php5 scripting language
ii  php5-common                         5.5.9+dfsg-1ubuntu4.13              amd64        Common files for packages built from the php5 source
ii  php5-gd                             5.5.9+dfsg-1ubuntu4.13              amd64        GD module for php5
ii  php5-json                           1.3.2-2build1                       amd64        JSON module for php5
ii  php5-mysql                          5.5.9+dfsg-1ubuntu4.13              amd64        MySQL module for php5
ii  php5-readline                       5.5.9+dfsg-1ubuntu4.13              amd64        Readline module for php5

不足しているパッケージのインストール

$ sudo apt-get install php5-curl php5-intl php5-mcrypt php5-imagick

Owncloudのインストールとセットアップ

Owncloudのダウンロードとインストール
$ cd /tmp
/tmp$ wget https://download.owncloud.org/community/owncloud-8.1.3.tar.bz2
    [...]
2015-10-15 11:50:42 (2.27 MB/s) - `owncloud-8.1.3.tar.bz2' へ保存完了 [27099465/27099465]

MD5sum のダウンロード

/tmp$ wget https://download.owncloud.org/community/owncloud-8.1.3.tar.bz2.md5
    [...]
2015-10-15 11:49:24 (464 KB/s) - `owncloud-8.1.3.tar.bz2.md5' へ保存完了 [36/36]

md5sumでアーカイブファイルをチェック

/tmp$ md5sum -c owncloud-8.1.3.tar.bz2.md5 < owncloud-8.1.3.tar.bz2
-: OK

アーカイブファイルを解凍

/tmp$ tar -xjf owncloud-8.1.3.tar.bz2
/tmp$ ls -l
合計 26480
drwxr-xr-x 12 cloudadmin cloudadmin     4096  9月 11 00:35 owncloud
-rw-rw-r--  1 cloudadmin cloudadmin 27099465  9月 11 00:41 owncloud-8.1.3.tar.bz2
-rw-rw-r--  1 cloudadmin cloudadmin       36  9月 11 00:41 owncloud-8.1.3.tar.bz2.md5
drwxr-xr-x  4 root  root      4096 10月 15 11:44 passenger.DUzGcsB

Owncloudをインストールディレクトリにインストール

/tmp$ sudo cp -r owncloud /var/lib
apache2 のバーチャルホストを追加する
$ sudo vi /etc/sites-availalble/default-ssl
[ ... ]
<VirtualHost *:443>
    ServerName  cloud.example.com
    DocumentRoot /var/lib/owncloud
    <Directory "/var/lib/owncloud/">
        AllowOverride all
        Options -MultiViews
        Require all granted
    </Directory>
    SSLEngine on
    SSLCertificateFile  /etc/apache2/server.crt
    SSLCertificateKeyFile   /etc/apache2/server.key
</VirtualHost>

Apacheを再起動

$ sudo service apache2 restart
サイトにアクセスして初期設定

このあたり失念。管理パスワード等の設定があったはず。

Owncloud関連のファイル・ディレクトリのパーミッションを変更

以下のシェルスクリプトを実行する。
※ ocpath は環境に合わせる。
※ ディレクトリ、${ocpath}/data は予め作成

#!/bin/bash
ocpath='/var/lib/owncloud'
htuser='www-data'
htgroup='www-data'
rootuser='root' # On QNAP this is admin

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

chown -R ${rootuser}:${htgroup} ${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 ${rootuser}:${htgroup} ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess

chmod 0644 ${ocpath}/.htaccess
chmod 0644 ${ocpath}/data/.htaccess

ローカルの管理ユーザをグループに参加させる

$ sudo gpasswd -a cloudadmin www-data
$ id cloudadmin
uid=1000(cloudadmin) gid=1000(cloudadmin) groups=1000(cloudadmin),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),100(users),108(lpadmin),109(sambashare),1001(regza),1007(rvm)

導入後に行った設定など

管理画面の警告「メモリキャッシュが設定されていません」への対処

参考URL
https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/security_setup_warnings.html

php5-apcuのビルドとセットアップ

ubuntu14.04 の php5-apcu はバージョンが古いので、次のようにして新しいバージョンをビルドする。

パッケージの導入
$ sudo apt-get install php5-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  pkg-php-tools shtool
提案パッケージ:
  dh-make
以下のパッケージが新たにインストールされます:
  php5-dev pkg-php-tools shtool
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
[...]
pbcuをビルド
$ sudo pecl channel-update pecl.php.net
Updating channel "pecl.php.net"
Channel "pecl.php.net" is up to date

$ sudo pecl install apcu-4.0.7
downloading apcu-4.0.7.tgz ...
Starting to download apcu-4.0.7.tgz (118,670 bytes)
..........................done: 118,670 bytes
43 source files, building
running: phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
Enable full APC compatibility [yes] : yes
Enable internal debugging in APCu [no] :
building in /tmp/pear/temp/pear-build-root6ogYPn/apcu-4.0.7
running: /tmp/pear/temp/apcu/configure --enable-apc-bc=yes --enable-apcu-debug=no
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
....
Build process completed successfully
Installing '/usr/lib/php5/20121212/apcu.so'
Installing '/usr/include/php5/ext/apcu/apc_sma_api.h'
Installing '/usr/include/php5/ext/apcu/apc.h'
Installing '/usr/include/php5/ext/apcu/apc_lock_api.h'
Installing '/usr/include/php5/ext/apcu/apc_cache_api.h'
Installing '/usr/include/php5/ext/apcu/apc_bin_api.h'
Installing '/usr/include/php5/ext/apcu/apc_pool_api.h'
Installing '/usr/include/php5/ext/apcu/apc_api.h'
Installing '/usr/include/php5/ext/apcu/apc_serializer.h'
install ok: channel://pecl.php.net/apcu-4.0.7
configuration option "php_ini" is not set to php.ini location
You should add "extension=apcu.so" to php.ini
設定ファイルに追加
$ sudo vi /etc/php5/apache2/conf.d/20-apcu.ini
extension=apcu.so
config.phpに追加
$ sudo vi /var/lib/owncloud/config/config.php
<?php
$CONFIG = array (
  'instanceid' => 'ocq9d50yx39b',
  'passwordsalt' => '8dxEHdNSl06uonPyLT8CRSelf8+bIt',
  'secret' => 'tYxvNAQc04DN5E3gu0sSqfFVPlZ1IebWbnAIYXPUifz46nhS',
  'trusted_domains' =>
  array (
    0 => 'cloud.example.com',
  ),
  'datadirectory' => '/var/lib/owncloud/data',
  'overwrite.cli.url' => 'https://cloud.example.com',
  'dbtype' => 'mysql',
  'version' => '8.1.3.0',
  'dbname' => 'ocdb1510',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'oc_sir-nake',
  'dbpassword' => 'knm07av6qq8dke5qw8sr0grxb6dec4',
  'logtimezone' => 'UTC',
  'installed' => true,
  'memcache.local' => '\OC\Memcache\APCu',   <- この部分追加
);

The “Strict-Transport-Security” HTTP header is not configured

管理画面に次のような警告が。

The “Strict-Transport-Security” HTTP header is not configured to least “15768000” seconds. For enhanced security we recommend enabling HSTS as described in our security tips

参考URL
https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/security_setup_warnings.html

バーチャルホストに以下を追加
<VirtualHost *:443>
    ServerName  cloud.example.com
    DocumentRoot /var/lib/owncloud
    <Directory "/var/lib/owncloud/">
        AllowOverride all
        Options -MultiViews
        Require all granted
    </Directory>
    <IfModule mod_headers.c> 追加
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" 追加
    </IfModule> 追加
    SSLEngine on
    SSLCertificateFile  /etc/apache2/server.crt
    SSLCertificateKeyFile   /etc/apache2/server.key
</VirtualHost>

アップデートファイルサイズの変更

.htaccessとphp.iniを編集
※memory_limit>=post_max_size>=upload_maxsize
※memory_limitはそのサーバの物理メモリを超えないように

$ sudo vi /var/lib/owncloud/.htaccess
php_value upload_max_filesize 1G
php_value post_max_size 1G
php_value memory_limit 1G
php_value mbstring.func_overload 0
php_value always_populate_raw_post_data -1
php_value default_charset 'UTF-8'
php_value output_buffering off

php.iniは設定を変更する。

$ sudo vi /etc/php5/apache2/php.ini
memory_limit=1G
upload_max_filesize = 1G
upload_fiesize = 1

owncloud更新のTips

owncloud更新時に

sudo chmod -R g+w /var/lib/owncloud/

更新後

sudo chmod -R g-w /var/lib/owncloud/

サーバーステータス"Transactional File Locking is disabled."

php5-redisがインストールされているならば削除する。

$ sudo apt-get remove php5-redis

redis-server他必要なパッケージのインストール

$ sudo apt-get install redis-server php-pear php5-dev

peclを利用してredisをビルドしてインストール

$ sudo pecl install redis
downloading redis-2.2.7.tgz ...
Starting to download redis-2.2.7.tgz (134,340 bytes)
............done: 134,340 bytes
13 source files, building
running: phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
building in /tmp/pear/temp/pear-build-rootj4Dq7G/redis-2.2.7
[...]
Build process completed successfully
Installing '/usr/lib/php5/20121212/redis.so'
install ok: channel://pecl.php.net/redis-2.2.7
configuration option "php_ini" is not set to php.ini location
You should add "extension=redis.so" to php.ini

/etc/php5/mods-available にモジュールができていることを確認

$ cd /etc/php5/mods-available/
$ ls -al
合計 68
drwxr-xr-x 2 root root 4096 10月 15 16:09 .
drwxr-xr-x 6 root root 4096 7月 29 08:00 ..
-rw-r--r-- 1 root root 18 2月 19 2014 apcu.ini
-rw-r--r-- 1 root root 68 9月 30 00:49 curl.ini
-rw-r--r-- 1 root root 64 7月 3 00:56 gd.ini
-rw-r--r-- 1 root root 60 2月 19 2014 imagick.ini
-rw-r--r-- 1 root root 84 9月 30 00:49 intl.ini
-rw-r--r-- 1 root root 68 2月 18 2014 json.ini
-rw-r--r-- 1 root root 58 2月 20 2014 mcrypt.ini
-rw-r--r-- 1 root root 70 1月 8 2014 memcached.ini
-rw-r--r-- 1 root root 70 7月 3 00:56 mysql.ini
-rw-r--r-- 1 root root 71 7月 3 00:56 mysqli.ini
-rw-r--r-- 1 root root 83 7月 3 00:56 opcache.ini
-rw-r--r-- 1 root root 66 7月 3 00:56 pdo.ini
-rw-r--r-- 1 root root 74 7月 3 00:56 pdo_mysql.ini
-rw-r--r-- 1 root root 76 7月 3 00:56 readline.ini
-rw-r--r-- 1 root root 19 3月 8 2014 redis.ini

$ cat redis.ini
extension=redis.so

redisモジュールを有効にし、Apacheを再起動。

$ sudo php5enmod redis
$ sudo service apache2 restart
 * Restarting web server apache2                [ OK ]

確認

$ php --ri redis

redis

Redis Support => enabled
Redis Version => 2.2.7

redis-serverのプロセスを確認。

$ ps axl | grep redi
1 116 3539 1 20 0 39516 5096 ep_pol Ssl ? 0:05 /usr/bin/redis-server 127.0.0.1:6379

owncloudのconfig.phpを編集し、項目追加。

$ sudo vi /var/lib/owncloud/config/config.php
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'filelocking.enabled' => 'true',
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' =>
    array (
      'host' => 'localhost',
      'port' => 6379,
      'timeout' => 0,
      'dbindex' => 0,
    ),

サーバーステータス
Transactional File Locking is enabled.

でOK


 
記事を共有する
カテゴリー: Linuxubuntu

zaturendo

中小企業社内SE。

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。