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
0件のコメント