2012年11月14日水曜日

centos6ミニマムインストールからowncloud導入まで

centos6ミニマムインストールからowncloud導入まで

firestorageやgigafile便や宅ファイル便みたいなのを自宅サーバでやるための導入手順メモ。

今だとdropboxと言った方が良いのかな?

オンラインストレージのパッケージ候補としてはdeco driveという徳島県が作ってたOSS製品があるけど、どうしても導入手順が分からない(あるはずのないパッケージを要求される)ので、断念した。

要件としてはdecoDriveの方が近かったんだけど。こちらruby on railsとmysqlだった。

丁寧なインストール方法か、動画があると良いなあ。

http://deco-project.org/

で、これを断念して、owncloudというパッケージにすることに。

こちらはphp+mysqlで動く。

http://owncloud.org/

この導入方法を以下に。

構成はいわゆる64bitPC。

core 2 duo E6300

メモリ2GB

ハードディスクは何故か2台入っていたので、これをそのまま使う。

sda1    300GB

sdb1    1.5TB

centosはcentos6.3 x86_64。

CentOSをPCにミニマムインストール。

ハードディスクが2台あったので、sdb1にシステム(/やswap)、

sda1に/varを入れた。

これは/varがhttpdのデータを入れておく場所になるので、大容量の方がowncloud運用には都合が良い(owncloudのデータは/var/www/http内に格納されていくので)。

ネットワークの設定。

centos6からは、自動で設定してくれなくなったので、ifcfg-eth0(一つしかない場合)を自動で認識するようにする。

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    ONBOOT="no"

    を

    ONBOOT="yes"

に変更して保存

    service network start

でネットワークスタート。

再起動してもonbootがyesなのでネットワークは起動する。

hosts.allow、hosts.denyを適時書く。

firewall設定(iptables)のシェルスクリプトを書く。

selinuxを止めておく。

この辺は

http://centossrv.com/

を参照のこと。

GUI環境が欲しかったので、yumでgroupinstall。

    yum -y groupinstall Desktop "X Window System"

これでGNOMEデスクトップ環境をインストール出来る。

起動は

    startx

但し、インストール直後にやると何故か落ちるので、一度再起動させた方が良い。

常態化するなら

/etc/inittab



id:3~になっているところを

id:5~にする。

ミニマムインストールだと日本語選択をしても日本語環境が入っていないので、日本語環境を入れる。

    yum -y groupinstall "Japanese Support"

導入後

    vi /etc/sysconfig/i18n

    LANG="ja_JP.UTF-8"

となっていることを確認。なっていないなら修正。

httpd(apache)インストール

phpをインストール。

正直何が必要か分からないので、全部突っ込む。
    yum -y groupinstall "Development Tools"
    yum -y install php php-mbstring php-xml php-gd php-pdo php-pear php-devel php-mysql
    yum -y install libzip libzip-devel zlib-devel
全部は駄目だってさー。
http://lamp-oita.blogspot.jp/2012/06/owncloudcentos-6.html
php(本体)とphp-mbstring(たしか2バイト文字を扱うやつ)は必須。

httpd.confを編集

    vi /etc/httpd/conf/httpd.conf

    ServerTokens OS

    ↓

    ServerTokens Prod

    #ServerName www.example.com:80

    ↓

    ServerName localhost:80

    # AllowOverride controls what directives may be placed in .htaccess files.

    # It can be "All", "None", or any combination of the keywords:

    #   Options FileInfo AuthConfig Limit

    #

        AllowOverride None

      ↓

        AllowOverride All ← .htaccessの許可

この辺は必ず必要。後は

http://centossrv.com/apache.shtml

を参照。

ブラウザ入れ忘れていたのでfirefoxを入れる。

    yum -y install firefox

phpのテストページ作成

    vi /var/www/html/test.php

    内容は
    <?php
      phpinfo();

    ?>

php.iniを編集し、最大アップロードサイズを変更。サーバ容量を加味して適当に。

    vi /etc/php.ini

    post_max_size = 8M

    ↓

    post_max_size = 8000M

    upload_max_size = 2M

    ↓

    upload_max_filesize = 8000M

httpd(apache)を起動させてみる。

    service httpd start

firefoxのアドレス欄に

    localhost

と入力しエンターした際に、apacheのスタートなどが見えれば問題なし。

また、先程作製したtest.phpにアクセスし、見えれば問題なし。

    localhost/test.php

ね。

次はSSLに対応させる。

ここは先人の手順を踏襲しつつ、改変する(ubuntuでの手順なので)。

http://dev.classmethod.jp/etc/owncloud-1/

まずはopensslとmod_sslをインストール

    yum -y install openssl

    yum -y install mod_ssl

鍵や証明書を保存するディレクトリ作成

    mkdir /usr/local/ssl

    cd /usr/local/ssl

秘密鍵を生成

    openssl genrsa -aes128 -rand /dev/urandom -out owncloud_server.key 2048

パスフレーズを聞かれるので、パスフレーズを入力。確認があるので再度入力。(パスフレーズは覚えておくように)

上記秘密鍵に対応した証明書を発行するための「CSR」を生成。

日本ベリサインのサイトが詳しい

https://www.verisign.co.jp/ssl/help/csr/capache_new.html

    openssl req -new -key owncloud_server.key -out owncloud_server.csr

パスフレーズを聞かれるのでパスフレーズ入力後、必要情報を書いていく。

チャレンジパスワードやオプショナルカンパニーネームは必要ないので空エンター。

「サーバ証明書」の発行。有効期限は参考URLに沿って5年。

    openssl req -in owncloud_server.csr -out owncloud_server.crt -key owncloud_server.key -x509 -days 1827

パスフレーズを聞かれるのでパスフレーズ入力。

秘密鍵のパスフレーズ削除。

    >ApacheでSSLを使用する場合、Apacheのサービス起動時に秘密鍵のパスフレーズを聞いてきて途中で止まってしまうのを回避するため、秘密鍵であるowncloud _server.keyを復号化して、パスフレーズを入力しなくても秘密鍵を使用できるようにします。(念のためにオリジナルはバックアップをとっておきます。)

らしい。

    cp -p owncloud_server.key owncloud_server.key.bak

    openssl rsa -in owncloud_server.key -out owncloud_server.key

パスフレーズを聞かれるのでパスフレーズ入力。

オーナー情報をrootに変更。といってもrootで作業しているはずなので、chmodのみで可。

    chmod 400 *

    chown root:root *

openSSLをapacheで使えるように/etc/httpd/conf.d/ssl.confを変更。

    vi /etc/httpd/conf.d/ssl.conf

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt

    ↓

    SSLCertificateFile /usr/local/ssl/owncloud_server.crt

    SSLCertificateKeyFile /etc/pki/tls/private/localhost.crt

    ↓

    SSLCertificateKeyFile /etc/pki/tls/certs/owncloud_server.key
    SSLCertificateKeyFile /usr/local/ssl/owncloud_server.key
 (2014.03.09コメント頂き修正)

    > #  General setup for the virtual host, inherited from global configuration

    > #DocumentRoot "/var/www/html" ← #を削除(コメント解除)

    > ↓

    > DocumentRoot "/var/www/html"

    もやっとくといいらしい。

http://centossrv.com/apache-ssl.shtml

これで

    service httpd restart

させると、

    https://localhost

が表示できる。自己証明なので、ブラウザによっては警告される。

mysqlのインストール。

こちらも先人に倣ってインストールする。

http://centossrv.com/mysql.shtml

http://dsp74118.blogspot.jp/2012/07/ownclouddbsqlitemysql.html

    yum -y install mysql-server

    vi /etc/my.cnf

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0

    character-set-server = utf8

    ↑文字コード追加

    service mysqld start

これでmysqlがスタートする。

初期設定

    mysql_secure_installation

初めに(mysqlの)rootパスワードを聞かれるが、設定してないので空エンター。

次にパスワード設定するかと言われるので、yもしくはからエンター。

パスワードをタイプし(覚えておくように)確認タイプ。

匿名ユーザの削除、リモートrootアクセスの禁止、テストデータベース削除の確認が続くが、全部空エンター。

要はオッケーオッケー。

設定が終わったら、owncloud用のユーザを作成。

    mysql -u root -p

パスワードを聞かれるので、先程設定した(mysqlの)パスワード入力。

mysqlデータベースに、「owncloud」というデータベースを作る。

    create database owncloud default character set utf8;

確認。

    show databases;

ユーザ「owncloud」を作成し、DB「owncloud」に対するアクセス権を付与。

シングルクオーテーション内のyourpasswordは任意のパスワード入力。

    grant all on owncloud.* to owncloud@localhost identified by 'yourpassword';

確認。

    select host,user from mysql.user;

    exit

でmysqlを抜け、やっとowncloudのインストール。

http://blog.rutti.net/item_1069.html

まずwgetをインストール。

    yum -y install wget

ソースの保存場所作成し、移動

    mkdir /usr/local/src/owncloud

    cd /usr/local/src/owncloud

http://owncloud.org/より、ダウンロードリンクを引っ張ってきてwget。

執筆時の最新版は4.5.4。

    wget http://mirrors.owncloud.org/releases/owncloud-4.5.4.tar.bz2

ダウンロードしたら、解凍。

    tar -xvjf owncloud-4.5.1.tar.bz2

apacheのルート(/var/www/html/)にコピー

    cp -r owncloud /var/www/html/

apacheのルートに移動

    cd /var/www/html/

ファイルの所有者をapacheに変更

    chown -R apache:apache owncloud/

データフォルダを作る

    cd owncloud

    mkdir data

    chown apache:apache data

ファイルのパーミッションを変更する

    chmod 770 data

    chmod 777 config

    chmod 777 apps

ブラウザでowncloudディレクトリにアクセスすると、ここからインストール。

初めにアドミンのユーザを登録するので、

アドミンユーザ名とパスワードを入力する。

次にadvancedから、データベースを登録する。

configure the database



mysqlを選択。

ユーザ名はmysqlのユーザである「owncloud」、パスワードはユーザ「owncloud」のパスワード、データベース名は「owncloud」

finish setup

を押下すれば終了。

お疲れ様でした。

かなり駆け足なので、セキュリティ面ではかなり不安が残る内容。

外部に公開する場合、必ずセキュリティアップは必要。

rootキット検知やウイルススキャン、ファイヤーウォール等々は勿論、細かい所まで見ないと駄目ですよ。

因みに、32bitOSと64bitOSで、owncloudには違いがあります。

なんと32bitOSだと、ファイルのアップロード制限がかかり、2GBまでに切られます。

これはhttpd(apache)が32bitのため。

http://devadjust.exblog.jp/9451351

64bitなら上限はあってないようなものです。

これも参考にした。

http://blog.rutti.net/item_1069.html

以上。

2012/12/18
色々間違っているものを修正しました。後何点か間違っているかもなので、ご指摘お願い致します。
まんまやっても入らなかったところが、それです。

2 件のコメント:

  1. とても参考になりました.ありがとうございます!!!
    恐れながら,
    SSLCertificateKeyFile /etc/pki/tls/private/localhost.crt

    SSLCertificateKeyFile /etc/pki/tls/certs/owncloud_server.key
    ではエラー出てしまいますので,変更後のパスは
    /usr/local/ssl/owncloud_server.key
    が正しいかと思いました.
    もしくは,説明の中で,ディレクトリを移動させる説明があるとよりわかりやすいかな,と.

    また,これは僕のミスなのですが,この設定を行ってもなかなか接続できなくて,原因はファイアーウォールの設定で,SSL接続の443ポートを閉じている事でした.これもこの記事を読んでいる誰かのお役に立てれば幸いです.

    返信削除
  2. コメントありがとうございます!
    修正致しました-。

    一人でやってるとどうしてもミスります・・・。

    返信削除