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 /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
色々間違っているものを修正しました。後何点か間違っているかもなので、ご指摘お願い致します。
まんまやっても入らなかったところが、それです。
とても参考になりました.ありがとうございます!!!
返信削除恐れながら,
SSLCertificateKeyFile /etc/pki/tls/private/localhost.crt
↓
SSLCertificateKeyFile /etc/pki/tls/certs/owncloud_server.key
ではエラー出てしまいますので,変更後のパスは
/usr/local/ssl/owncloud_server.key
が正しいかと思いました.
もしくは,説明の中で,ディレクトリを移動させる説明があるとよりわかりやすいかな,と.
また,これは僕のミスなのですが,この設定を行ってもなかなか接続できなくて,原因はファイアーウォールの設定で,SSL接続の443ポートを閉じている事でした.これもこの記事を読んでいる誰かのお役に立てれば幸いです.
コメントありがとうございます!
返信削除修正致しました-。
一人でやってるとどうしてもミスります・・・。