ownCloud 設定 · 4 min read · Jan 22, 2026

あなたのクラウド、あなたのデータ、あなたの方法! - ownCloud 4.0 CentOS 6.2 + nginx + PostgreSQL

あなたのクラウド、あなたのデータ、あなたの方法! - ownCloud 4.0 CentOS 6.2 + nginx + PostgreSQL

この文書は、CentOS 6.2 ベースのウェブサーバーに tar パッケージから ownCloud を “ownCloud コミュニティ” によってインストールし、設定する方法を説明します。バックエンドとして nginx と php-fpm、PostgreSQL データベースを使用します。他のディストリビューションでは、ソフトウェアの前提条件のインストール手順に若干の変更があるかもしれません。このガイドは、製品のインストールを助けるだけでなく、特定のポイントがそのように行われる理由を理解するのにも役立ちます(これは、私のように Linux の使用を始めたばかりの知識がほとんどないユーザーにとって非常に役立ちます)。

ownCloud とは?

それは、ファイル / 連絡先 / カレンダーの共有ツールで、私の視点からは Dropbox と GroupOffice の両方の利点を最大限に活用しており(現時点ではメール統合を除く)、Alfresco や Sharepoint のように煩雑でも重くもありません。

開発者のいくつかのセクションへのリンク:

私は、後でソフトウェアに変更が加えられる可能性があるため、あなたにとって機能することを保証するものではありません。前提条件とメインの両方が、チュートリアルで述べた手順を正常に完了できないように壊れる可能性があります。
P.S. 追加されたバグは私のものです。コメントを使用するか、IRC をブラウズしてください。

予備ノート

このチュートリアルでは、次のものを使用します:

  • Centos 6.2 インストールメディア
  • ホスト名: owncloud.example.com
  • IP アドレス: 192.168.1.100
  • ルーターアドレス: 192.168.1.1
  • ネットマスク: 255.255.255.0
  • サーバーがパブリックインターネットに接続されていると仮定します(想像してください)
  • サーバーを ssh 経由でリモートで管理するためにコンピュータを使用します(Windows の putty)、サーバーがそばにあっても、またはメインのオペレーティングシステムの下で実行されている仮想マシンとして持っていても
  • GNU vim を主なテキストエディタとして使用します。ただし、他の好きなものを自由に使用してください。

要件

Centos 6.2 の動作するクリーン(最小)インストールが必要です(x86 または x86_64 は関係ありません)。私は個人的に x86_64 バージョンを使用しており、あなたも同様にすることを強くお勧めします。

最初のステップ

サーバーコンソールに root としてログインします。あなたは [root@owncloud ~]# プロンプトにいます。

私は、完全にオプションですが、後で役立つかもしれない特定の設定を好みます。私は、プロンプトで日付、時刻、サーバー名、現在のフォルダーを表示するようにターミナルを設定しています。また、日付/時刻付きのコマンドの履歴を表示するようにしています。デフォルトの履歴サイズの値も増やします。

そのためには、次のコマンドを実行します:

vi ~/.bash_profile

エクスポート PATH ディレクティブの後に前述の行を追加します。挿入モードに入るには「i」を押し、終了するには「ESC」を押します。Vi は vi です :)

# 50,000 コマンドを保持し、ファイルサイズを 10 倍大きくするための履歴サイズ
export HISTSIZE=50000
export HISTFILESIZE=500000
# 日付付きの履歴を表示する例: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
# "ls" コマンドの出力を自動的に色付け
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
# プロンプトを次のように表示するように設定: "Thu May 24 2012  14:28:56 owncloud.example.com of root @ ~]"
# 日付、時刻、場所を異なる色で表示します。すべての入力テキストをデフォルト値に設定します。
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y}  \e[1;31m\]\t \e[1;37m\] \H of \u @ \W] \033[00m\]"

ファイルを保存して終了します。再度、挿入モードの外で、”:wq” と入力して Enter を押すことで保存して終了するか、単に “ZZ” を押して同じことを行います。変更を適用するためにターミナルに再ログインするには、次のコマンドを実行します:

exit

ネットワーキング

インストール中に静的 IP アドレスを設定しなかった場合、DHCP 対応のルーターがあると仮定して、今すぐ設定する必要があります。そうでない場合は、次のステップに進んでください。

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

前述の行のみを変更または追加します。

BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"

保存して終了します。その後、ネットワークを再起動します:

service network restart

次のコマンドを実行してネットワークが再構成されたことを確認します:

ifconfig

これで、root として 192.168.1.100 のサーバーに ssh できるようになりました。しかし、まだそれを行わないでください。まず次のステップを完了してください。

サーバーのセキュリティ

さらに進む前に、サーバーが実際にインターネットに接続されていると仮定したため、セキュリティを強化する必要があります。3 つのことを行います。

  • ssh サーバーを再構成して root ログインを許可せず、デフォルトのポート 22 を他の一般的でないポート、すなわち 60606 に変更します。
  • 新しいポートでの受信接続を許可するように iptables を設定します。
  • ssh 経由でログインするための最初のシステムユーザーを追加します。
  1. リモートログインのセキュリティ

    コンソールからサーバーにまだログインしていない場合(つまり、ローカルコンソール、まだ ssh ではない)、root としてログインし、次のコマンドを実行します:
    vi /etc/ssh/sshd_config

変更されていないデフォルトファイルの 13 行目に Port 22 ディレクティブがあります。これを複製し、ポート番号を 60606 に変更してコメントを外します。
次に、PermitRootLogin yes ディレクティブを見つけ(挿入モードの外で「/」を押して探しているフレーズを入力します)、再度複製し、その値を no に変更してコメントを外し、ファイルを保存します。ああ、ハイライトをオフにするには”:noh”です。
その後、sshd を再起動します:

service sshd restart
  1. iptables の設定

    まず、既存の iptables を確認します:
    iptables -L -v --line-numbers

デフォルトインストールでは、位置 ‘4’ にデフォルトの ssh ポートで新しい tcp 接続を受け入れるディレクティブがあります。これを削除する必要があるため、次のコマンドを実行します:

iptables -D INPUT 4

次に、ポート 60606 への接続を許可する必要があります。次のコマンドを実行します:

iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT

最後に、現在の iptables 状態を保存するには、次のコマンドを実行します:

service iptables save   
service iptables restart
  1. 最初のユーザーの追加

    すべてが良好ですが、1 つだけ問題があります。root が許可されておらず、他のシステムユーザーがまだいないため、ssh から自分自身を禁止してしまいました。修正する時が来ました:
    useradd -c "ownCloud system user" -m -n cloudadmin

このユーザーのパスワードを設定します:

passwd cloudadmin

完了しました。最初のコマンドでユーザーのパスワードを設定できますが、この方法では、ターミナルウィンドウでの入力中にパスワードの値が表示され、root ユーザーの .bash_history にも保存されるため、望ましくありません。
これで、ローカルコンピュータのターミナルウィンドウで次のコマンドを実行して ssh 経由でログインできます:

ssh [email protected] -p60606

事前設定ステップ

ソフトウェアのインストールはほとんどの場合非常に簡単で、初期インストール時にほとんどを「チェック」できましたが、私は手作業で行うことを好みます。
インストールをセクションに分けることに意図的にしています。

  1. スーパーユーザーとしてのログイン

    この時点で、あなたは cloudadmin ユーザーとしてコンソールプロンプトにいるはずです。root 権限を取得するには、次のコマンドを実行します:

    su -
  2. ソフトウェアリポジトリ

    希望するソフトウェアを使用するには、2 つのリポジトリが必要です。
    最初は EPEL です。次のコマンドを実行します:

    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm

いいえ、i386 は間違いではありません。32 ビットと 64 ビットシステムの両方で同じです。
次に Remi を実行します:

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi   
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

次に、両方の epel と remi リポジトリを確認し、そこにない場合は、次のコマンドを実行して enabled=1 を設定します:

vi /etc/yum.repos.d/epel.repo   
vi /etc/yum.repos.d/remi.repo

最後に、システムを更新します。新しくインストールされた CentOS でも、最初に更新が必要な場合があります。次のコマンドを実行します:

yum update -y
  1. 精密な時間

    世界の他の部分と同期することは良いことです。次のコマンドを実行します:

    yum install ntp   
    service ntpd start   
    chkconfig ntpd on   
    ntpd
  2. その他のツール

    私の生活を少し楽にするために、私は vi の代わりに vim、top の代わりに htop、ターミナル内からすぐにテストするために elinks、良いデュアルペインファイルマネージャーとして mc、wget はダウンロードに必要で、man はほぼすべてを読むときに必要です。次のコマンドを実行します:

    yum install vim htop elinks mc wget man -y

ownCloud セットアップ

  1. ソフトウェアの前提条件

    一連の php 関連のものをインストールします。次のコマンドを実行します:
    yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql

php.ini を編集します。次のコマンドを実行します:

vim /etc/php.ini

変更すべきディレクティブは 4 つあります。
最初は 736 行目にある post_max_size ディレクティブです。
次は 848 行目にある cgi.fix_pathinfo ディレクティブです。
3 番目は 885 行目にある upload_max_filesize ディレクティブです。
最後は 956 行目にある date.timezone で、サーバーの場所に応じて変更します。

[...]
post_max_size = 64M
[...]
cgi.fix_pathinfo = 0
[...]
upload_max_filesize = 64M
[...]
date.timezone = "Europe/Prague"
[...]

方法がわからない場合は、次のコマンドを実行してタイムゾーン名を見つけることができます:

cat /etc/sysconfig/clock

次に、php-fpm を unix ソケットを使用するように構成します。次のコマンドを実行します:

vim /etc/php-fpm.d/www.conf

12 行目から次のようにします:

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

php-fpm を起動します:

chkconfig php-fpm on   
service php-fpm start
  1. バックエンド - PostgreSQL

    インストールして設定するには、次のコマンドを実行します:
    yum install postgresql postgresql-libs postgresql-server   
    service postgresql initdb   
    service postgresql start   
    chkconfig postgresql on

postgres システムユーザーとして postgres にログインし、データベースユーザー、データベースを作成し、権限を付与します:

su - -c "psql" postgres   
CREATE USER clouduser WITH PASSWORD 'userpass';   
CREATE DATABASE clouddb OWNER clouduser ENCODING 'UTF8';   
GRANT ALL PRIVILEGES ON DATABASE clouddb TO clouduser;   
\q

パスワードログインを許可するように postgresql 設定ファイルを変更します:

vim /var/lib/pgsql/data/pg_hba.conf
  • 次の行を探します:

    # IPv4 local connections:   
    host all all 127.0.0.1/32 ident
  • それを次のように変更します:

    # IPv4 local connections:   
    host all all 127.0.0.1/32 password

データベースを再起動します:

service postgresql restart
  1. nginx ウェブサーバー

    インストールし、ブート時に開始するように設定し、その後停止します:
    yum install nginx   
    service nginx start   
    chkconfig nginx on   
    service nginx stop

owncloud ウェブサイトのための設定ファイルを準備します:

vim /etc/nginx/conf.d/owncloud.conf
# http を https にリダイレクトします。
server {
  listen 80;
  server_name owncloud.example.com;
  rewrite ^ https://$server_name$request_uri? permanent;  # https を強制します
}
# owncloud (ssl/tls)
server {
  listen 443 ssl;
  ssl_certificate /etc/nginx/certs/server.crt;
  ssl_certificate_key /etc/nginx/certs/server.key;
  server_name owncloud.example.com;
  root /var/www/owncloud;
  index index.php;
  client_max_body_size 64M; # 最大アップロードサイズを設定
  # 直接アクセスを拒否
  location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
    deny all;
  }
  # デフォルトの試行順
  location / {
    try_files $uri $uri/ @webdav;
  }
  # owncloud WebDAV
  location @webdav {
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS on;
    include fastcgi_params;
  }
  # php を有効にする
  location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS on;
    include fastcgi_params;
  }
}

サーバーの証明書を作成しましょう。プロンプトの質問に設定に応じて答えます:

mkdir -p /etc/nginx/certs/   
cd /etc/nginx/certs/   
openssl genrsa -des3 -out server.key 1024   
openssl req -new -key server.key -out server.csr   
cp server.key server.key.orig   
openssl rsa -in server.key.orig -out server.key   
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

新しい設定を有効にするために nginx をリロードします:

service nginx reload
  1. ownCloud のファイルとディレクトリ

    ownCloud のインストールは、アーカイブをダウンロードして解凍し、サーバー側でいくつかの調整を行うことから成ります。そのため、次のコマンドを実行します:
    cd /tmp   
    wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2   
    tar xjf owncloud-4.0.0.tar.bz2   
    mv owncloud /var/www/   
    mkdir -p /var/www/owncloud/data   
    chmod 770 /var/www/owncloud/data   
    chown -R root:apache /var/www/owncloud

そして、最後のコマンドの apache グループはエラーではありません。php-fpm はデフォルトで apache ユーザーとして実行されます。

  1. ウェブサイトへのアクセス

    ウェブサイトにアクセスできるようにポート 443 を開きます。次のコマンドを実行します:
    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT   
    service iptables save   
    service iptables restart

テスト実行

ブラウザで https://owncloud.example.com にアクセスし、インストール手順を完了します。

管理者のユーザー名とパスワードを選択し、データベースバックエンドとして PostgreSQL を選択し、データベース接続設定に適切な値を入力します。

楽しんでください。

トラブルシューティング

ログファイルは次の場所にあります:

/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var/log/nginx/error.log

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。