opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

OwnCloudをArchLinuxに導入できた

ということで導入メモ。と言っても前にやろうとして失敗した部分を補って今回やったので設定は前回やった時のものを使っている。つまりどういうことかというと、結構忘れてる箇所があるかもしれない。

http://owncloud.org/

を導入してみる。

httpsを有効化する

httpsは大事な気がするのでSSLを有効化する。(必要ないなら飛ばしてもいいかもしれない)

http://k-ishik.seesaa.net/article/48436415.html

この記事が良い感じ。CA.shを使うと意味不明なのでとりあえず上の記事の通りにするとできる。
PKIなる構造があるようでよくわからなかったんだが最近結構分かるようになってきた。

上の記事の補足説明をしておくと、例えばArchLinuxの/usr以下などにCAとtlsという適当な名前のディレクトリを作りその中でそれぞれ作業をするといい。上の記事の「CA側」という処理は/usr/CA以下中心で、「サーバー側」というのは/usr/tls以下中心で作業するといい。


できたら続いて次の記事の最後のほうを参考に作業をする。

http://www.maruko2.com/mw/Apache/SSL%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%A8mod_ssl%E3%81%AE%E8%A8%AD%E5%AE%9A#Apache_mod_ssl_.E3.81.AE.E8.A8.AD.E5.AE.9A

sslapacheに設定する方法が書いているのでこれに従う。
ここで使う2つのファイルは、一つは上の記事の作業通りに作っているなら/usr/tls/private以下にできているはずのファイル(これがserver.key)
そしてもう一つは、上の記事どおりに作業をしているなら記事で最終的に生成した「ホスト名.pem」を使う。
これが(server.crt いわゆる証明書?)

owncloudを導入する

AURにあるowncloudを導入する。yaourtを使って

$ sudo yaourt -S owncloud

でインストール。yaourtが無いなら頑張って手動で。

apacheの設定をする

apacheの設定をしてみる。/etc/httpd/conf/httpd.confを開く

$ sudo vi /etc/httpd/conf/httpd.conf

で、まずLoadModuleを追加する。

LoadModule php5_module modules/libphp5.so

これをたくさん"LoadModule ...."とか書いてるあたりに適当に追加する。

そして、適当な位置に以下の行を追加する。(下のほうでいいよ)

Include /etc/httpd/conf/extra/owncloud.conf
Include conf/extra/php5_module.conf

この2つ。

owncloud.confを設定する

"/etc/httpd/conf/extra/owncloud.conf"を開く

$ vi /etc/httpd/conf/extra/owncloud.conf

で、ここは以下にサンプルを貼るので自分の環境に合わせて適当に設定

<IfModule mod_alias.c>
Alias /owncloud /usr/share/webapps/owncloud/
</IfModule>
<Directory /usr/share/webapps/owncloud/>
   Options FollowSymlinks
   Order allow,deny
   AllowOverride all
   allow from all
   #下のphp_admin_valuは下の奴をそのままコピーして同じところに貼っつける。
   php_admin_value open_basedir "/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/var/owncloud"
</Directory>
<VirtualHost *:80>
#   ServerAdmin foo@foofarm.com
    ServerAdmin opampg@gmail.com
    DocumentRoot /usr/share/webapps/owncloud
    ServerName owncloud.foo.com #ここも適切に変更
    ErrorLog logs/owncloud.foo.info-error_log
    CustomLog logs/owncloud.foo.info-access_log common
</VirtualHost>

という具合に適当に設定する。php_admin_valueでopen_basedirを書き換えるとphp.iniよりも優先される。ここに"/var/owncloud"を入れ忘れて"Can't create owncloud data dir"的なエラーが出ておいらは悩んでたので注意。

php.iniを設定する

$ sudo vi /etc/php/php.ini

を開いて、編集する。

以下の行をそれぞれ見つけてコメントアウトする。

extension=gd.so
extension=xmlrpc.so
extension=zip.so
extension=iconv.so

そして、さらに使うデータベースの種類によって追加でそのextensionもコメントアウト(有効化)する。
例えばpostgresqlを使うなら

extension=pgsql.so

をコメントアウトする。
MySQLはやってないからわからないけどMySQLなら(wikiによると)以下の3つ

extension=mysql.so
extension=mysqli.so
extension=pdo_mysql.so

SQLiteもできるっぽい。

サーバーが使うディレクトリを用意してなかったら用意する

"/var/owncloud"などサーバーが使うディレクトリが用意されてなかった場合用意しておく。
"/var"はroot所有なのでhttpdが走るhttpユーザーじゃ変更ができないし、だからといって"var"をhttpユーザー所有に変更するわけにもいかないので。

$ sudo mkdir /var/owncloud

とか。

owncloudのconfig.phpをいじる

"/usr/share/webapp/owncloud/config/config.php"をいじる必要がある。
以下にサンプルを貼っておくよ。

<?php
$CONFIG = array (
  'passwordsalt' => '------------',
  'datadirectory' => '/var/owncloud',
  'dbtype' => 'pgsql',
  'version' => '4.90.6',
  'dbname' => 'dbname here',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'instanceid' => '50fd38761f11e',
  'dbuser' => 'db-user here',
  'dbpassword' => '1e4bfde9673acb9eaf3b3b5127cafc09',
  'installed' => true,
  'maxZipInputSize' => 838860800,
  'allowZipDownload' => true,
  'loglevel' => '1',
);

データベースなどの設定もここにする必要が有るようだ。

サーバーを起動する

起動する前に以下のコマンドを実行(owncloudをサブディレクトリで実行する場合)

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

httpdを動かす前に、使うデータベースを起動する。

$ sudo systemctl start postgresql

などとしてまずデータベースを起動。

$ sudo systemctl start httpd

してapacheサーバーを起動。

試しに自分のサーバのURLにブラウザでアクセスする。

いろいろ設定画面が出てきたら成功。最初にいろいろ設定させられると思う。



自分のユーザーを作って完成



もし、ファイルサイズが大きすぎてアップデートできません的エラーが出て悩んだら次の記事を参考
OwnCloudのMAX_FILE_SIZE - opamp_sando's blog

終わりに


こんな具合にちゃんとhttpsを使ってアクセスできてる。
ちなみに明日はうちの高校は入試で休みである...ふふ。

とりあえず以下が他に参考にしたサイト

https://wiki.archlinux.org/index.php/Owncloud

とりあえず今後何か書き忘れてたり問題があった場合はその都度訂正していくよ。
あと、Webサーバー運用とか初心者なので何か間違いやまずいことがあればコメントなどで教えていただけると幸いですorz

Firefox ブラウザ無料ダウンロード