CentOS7にyumでowncloudをインストールする


みなさんこんにちは。Dropboxの容量がやばげな @nullpopopo でございます。2015年2月9日にowncloud 8.0がリリースされたので、CentOS7にインストールしてみました。owncloudのコミュニティからリポジトリをインストールすると最新版のパッケージをyumでインストールできるので、試してみてください。

owncloudのyumリポジトリ インストール

curlでリポジトリのファイルを取得します。

$ cd /etc/yum.repos.d/
$ sudo curl -O http://download.opensuse.org/repositories/isv:/ownCloud:/community/CentOS_CentOS-7/isv:ownCloud:community.repo

CentOS7以外のリポジトリは、ここから辿って確認してください。

remiリポジトリ インストール

CentOS7の標準リポジトリにあるPHPは5.4系なので、remi-php56からインストールを行うようにします。

$ sudo yum -y install http://remi.kazukioishi.net/enterprise/remi-release-7.rpm

gd-lastインストール

php-gdが依存するgd-lastをremiリポジトリからインストールします。

$ sudo yum -y --enablerepo=remi install gd-last

PHPインストール

owncloudが依存するPHPをremi-php56リポジトリからインストールします。php-mysqlnd をインストールしないと、owncloudインストール画面でsqliteしか選択できなくなるので、忘れずにインストールしましょう。

$ sudo yum -y --enablerepo=remi-php56 install php php-cli php-common php-gd php-ldap php-mbstring php-pdo php-process php-xml php-mysqlnd

mysql-communityリポジトリ インストール

CentOS7の標準MySQLライブラリはmariadb-5.5なので、MySQLのコミュニティ版からインストールを行うようにします。

$ sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

mysql-community-serverインストール

mysql-community-serverをインストールすることでmysql-community-clientとmysql-community-clientがそれぞれmariadbとmariadb-libsを置き換えます。

$ sudo yum -y install mysql-community-server

owncloudインストール

yumでさっくりインストールしてしまいましょう。

$ sudo yum -y install owncloud

httpd.conf設定

ここでは最低限の設定を行います。httpd.confで /var/www/html ディレクトリのOprions設定にIndexesがあるので、これを削除します。使い慣れたエディタで

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

にするか、次のワンライナーたちで一撃置換してしまいましょう。なお、 /etc/httpd/conf.d/owncloud.conf で「AllowOverride All」しているので、httpd.confのAllowOverrideはNoneのままにしておきます。

$ HTTPDCONF=/etc/httpd/conf/httpd.conf
$ sudo cp -p ${HTTPDCONF} ${HTTPDCONF}.orig
$ HTTPDCONFLINE=$(wc -l ${HTTPDCONF} | awk '{print $1}')
$ HTTPDCONFNUM=$(cat -n ${HTTPDCONF} | egrep -A ${HTTPDCONFLINE} '(<Directory[[:space:]]*"/var/www/html">)' | \
egrep -m 1 -B ${HTTPDCONFLINE} '(</Directory>)' | egrep '(Options)' | egrep -v "#" | awk '{print $1}')
$ sudo sed -i "${HTTPDCONFNUM}s/Options[[:space:][:alnum:]]*/Options FollowSymLinks/" ${HTTPDCONF}

welcome.confの無効化

welcome.confがあると403エラーで余計な情報を表示してしまうので無効化します。

$ sudo mkdir -p /etc/httpd/conf.d/BACKUP
$ sudo mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/BACKUP/

Apacheのreloadと自動起動設定

ここまでhttpd.confに設定した内容を反映させるため、Apacheを再読み込みします。CentOS7(というよりsystemd?)はApacheがyumでインストールされるといきなり起動してしまうので、初回起動であってもreloadします。

$ sudo systemctl reload httpd.service
$ sudo systemctl enable httpd.service

mysqld起動と自動起動設定

$ sudo systemctl start mysqld.service
$ sudo systemctl enable mysqld.service

mysqld初期設定

mysql_secure_installationコマンドでmysqlサーバーの初期設定を行います。ここだけ対話式コマンドなので、一撃シェルスクリプトにする場合は、過去ブログを参考にmysqlコマンドで行ってください。

$ mysql_secure_installation
Enter current password for root (enter for none): 空エンター
Set root password? [Y/n] y
New password: (表示されない)
Re-enter new password: (表示されない)
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

owncloud用DB作成とユーザー作成

owncloud用のDBの文字コードをUTF-8で作成し、DB接続ユーザーを作成します。

$ ROOTPW=HOGEHOGEPASSWORD
$ DBNAME=ownclowd
$ DBUSER=clowdown
$ DBUSERPW=P@sSw0rD
$ mysql -u root -p${ROOTPW} -e "CREATE DATABASE ${DBNAME} DEFAULT CHARACTER SET utf8;"
$ mysql -u root -p${ROOTPW} -e "GRANT ALL PRIVILEGES ON ${DBNAME}.* TO ${DBUSER}@localhost IDENTIFIED BY \"${DBUSERPW}\";"
$ mysql -u root -p${ROOTPW} -e "FLUSH PRIVILEGES;"

firewall穴あけ

firewall-cmdコマンドでTCP/80の穴をあけます。

$ sudo firewall-cmd --zone=public --add-service http
$ sudo firewall-cmd --zone=public --add-service http --permanent

sshでの作業は以上です。

owncloud設定

ブラウザで http://〜〜〜/owncloud/ を開いて以下の順に作業します。

  • 1. 「管理者アカウントを作成してください」でユーザー名とパスワードを入力する

owncloud8-20150224-001

ユーザー名: nullpopopo
パスワード: 自分で決めたもの

  • 2. 「データベースを設定してください」で「MySQL/MariaDB」をクリックする

owncloud8-20150224-002-01

owncloud8-20150224-002-02

  • 3. 以下の項目を入力する

owncloud8-20150224-003

データベースのユーザー名: clowdown
データベースのパスワード: P@sSw0rD
データベース名: ownclowd
(データベースのホストはlocalhostのまま)

以上を入力してから「セットアップを完了します」をクリックし、初回ウィザードが表示されればOKです。ね、簡単でしょう?

owncloud8-20150224-004

[amazonjs asin="4798041866" locale="JP" title="はじめてのCentOS7 Linuxサーバ構築編 (TECHNICAL MASTER)"]