なおすけの落書き帳

毎日がエブリデイ。

CentOS6+Nginx+php-fpmでownCloud入れた

なにがいいたいかというと久しぶりの更新ということです

夏休みの成果はまた書くとして、Dropboxの容量が枯渇しつつあったためownCloudをサーバに導入しました。

基本的にはドキュメント通りにいれたんだけど、Apacheじゃなくてnginx+php-fpmで入れたのでところどころハマった。
しかも昔Apacheを動かしてたこともありよけいことはまった…
というわけで導入メモします。

ついでだったのでlets encryptの自動更新とかの設定も直しました。
(知らん間にcertbot*1とか出すなよ…)

入れた環境

  • いつものサーバ
項目 詳細情報
OS CentOS 6.8
Nginx 1.11.3
PHP 5.6.18
MySQL 5.6.33
--- ---
ownCloud 9.0.1.3

あ、ちなみにiptablesSELinuxの設定は省きますよっと。
すでにNginx+php-fpmで他のWebサーバを動かしてる前提です。

実際にインストール

ownCloudのダウンロード

$ cd /path/to/owncloud_dir/
$ wget https://download.owncloud.org/community/owncloud-9.0.1.tar.bz2
$ tar xf owncloud-9.0.1.tar.bz2

はい。これでOK

DBのセットアップ

DBの接続情報はこんな感じで

項目
user owncloud
pass duolcnwo
$ mysql -uroot

mysql> create database owncloud;
mysql> grant all privileges on owncloud.* to owncloud identified by 'password';

nginxの設定

owncloud.confとか適当に名前をつけます

# For owncloud server
server {
  listen 80;
  server_name owncloud.example.com;

  location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; }
  location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }

  location /.well-known/acme-challenge { }

  # document root
  root /path/to/owncloud;
  index index.php;

  # set max upload size
  client_max_body_size 512M;
  fastcgi_buffers 64 4K;

  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
    deny all;
  }

  location / {
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
    rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

    rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

    try_files $uri $uri/ index.php;
  }

  # fastcgiのパス
  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # Unix socketで接続のとき
    fastcgi_pass unix:/var/run/php-fpm/www.sock;
    # TCP:9000で接続のとき
    # fastcgi_path 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /path/to/owncloud$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    include fastcgi_params;
  }
}

実際につなぐ

f:id:naosuke2dx:20160910200426p:plain:w300

こんな画面が出てくればOK
これ導入記録用にMacに入れたのでサポート外だって怒られてます。

Create an admin accountには好きなユーザ名とパスワードを入れます。

DBの設定がいるので、Strage & databaseをクリックして、Configure the databaseにさっきの接続情報own cloud, duolcnwoを入力したらOK。

f:id:naosuke2dx:20160910200708p:plain:w300

トラブルシューティング

ログインループが始まる

/var/lib/php/sessionの所有者を確認してみてください。 nginxが書き込み権限がないとセッション情報をサーバ側で保持できずにログインループが始まります。

パスワードわすれた

sudo -u nginx php /path/to/owncloud/occ user:resetpassword user_name
って魔法のコマンドを入力するとリセットできます。やったね!

アクセスするとPHPソースコードが手に入る

nginxの設定を見直しましょう(

なんかうまくいかん

/path/to/owncloud/config/config.phpをぶっ飛ばすとインストールの画面が出るようになります。
頑張って最初からやってみましょ。


参考