Monthly Archives: 10月 2015

[メモ][FreeBSD] owncloud + nginx + php-fpm + MySQLのインストール

Pocket

owncloudは自家製dropboxのようなもの。
以下、メモ。

owncloudの構成

owncloudはphpで作られている。
そしてインタフェースはhttps。
したがって、動作にはowncloudのほかに、php, webサーバが必要。
さらにバックエンド用のデータベースソフトウェアも必要である。

packageのowncloud

owncloudはバックエンドのDBにMySQL, SQLiteなどが選べる。
個人用ならSQLiteでも大丈夫そうだが、packageに用意されているowncloudはMySQLが有効、SQLiteが無効になっている。
SQLite版owncloudが欲しければportsからコンパイルする必要がある。
これまた面倒なのでpackageのものを使った。
packageからowncloudをインストールすると、phpは勝手に入るが、webサーバ、MySQLは別にインストールする必要がある。
ここではwebサーバにnginxを選んだ。
ではMySQLは。

MySQLのバージョン選定

いや、MySQLはMySQLに決まっているんだが、実はpackageを探すと、5.1, 5.5, 5.6の三つがあるのだ。

果たしてどれを選べばよいのであろうか。

MySQL 5.1 vs. 5.5 vs. 5.6 Performance Comparison


以上のURL他を見たところ、最新の5.6で良さそうなのでmysql56-server-5.6.24をインストールしておいた。

owncloudのインストール

packageで入れるだけ。
いっしょにnginx, mysql5.6も入れる。

MySQLの設定

owncloudのデータベースを受け持つMySQLの設定
システム起動時にMySQLも自動的に起動するように設定。

すぐ起動

mysql_secure_installationでセキュリティを高めておくと同時にスーパーユーザのパスワードも設定。

データベースの作成
USERはユーザ名に、CHANGE_THIS_PASSWORDはパスワードに書き換えること。

phpの設定

owncloudはphpで書かれている。そのphpの設定。
とはいえ、特別、何かすることはない。

/usr/local/etcにあるphp.ini-production を、php.ini としてコピー

次に/usr/local/etc/php/extensions.ini に以下の記載があることを確認する(デフォルトで記載があるはず)

php-fpmの設定

そのままでは静的コンテンツしか扱わないnginxが、phpを実行できるようにするための設定。
php-fpmがデーモンとして動作し、nginxからの要求に応じてphpを実行して結果を返す。
したがってphp-fpmとnginxがどう通信するかを規定したり、システム起動時にphp-fpmが自動的に起動するような指定が必要。

まずはphp-fpmの設定。
/usr/local/etc/php-fpm.confに以下があればよい。
それ以外はむしろ冗長だし、見にくくなるので削ってしまってよい。

システム起動時のphp-fpm起動設定
/etc/rc.conf内ではphp-fpmではなくphp_fpmとなることに注意(ハイフンではなくアンダースコア)

nginxの設定…の前に、SSLの準備

SSLのためにはサーバの鍵が必要。
手前味噌だが、ここにあるスクリプトを使ってくれい。

秘密鍵、証明書、DHパラメータ、三つのファイルを作成して、/usr/local/etc/sslあたりに入れる。

nginxの設定

以下、二つのサイトを参考にしつつ作成。

https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=nginx-1.8.0&openssl=1.0.1l&hsts=yes&profile=intermediate
https://doc.owncloud.org/server/7.0/admin_manual/installation/nginx_configuration.html

出来たのが以下。

nginxの起動設定とサービススタート

nginx, php-fpmを起動し、https://<サーバアドレス>にブラウザで繋げばOK

その他参考

https://doc.owncloud.org/server/7.0/admin_manual/configuration/database_configuration.html

No tags for this post.