ownCloudのインストールと設定

ownCloudのインストールに苦労したので記しておきます。
だれかの役に立てば幸いです。

環境
>〜自宅サーバー(ProxmoxVE)〜
メモリ：5G
CPU：仮想1Core
ストレージ：HDD 1024GB
OS：Ubuntu

# 準備
はじめに必要なものをインストールしていきます。

+ Apache
+ php
+ MariaDB

が必要になります。
### Apache２をインストールします。
```bash:Apacheをインストール
sudo apt install apache2
```
### phpをインストールします。
phpをインストールするのですが、少し古いバージョンを入れるために、外部リポジトリを使用するため、
リポジトリ管理に必要な software-properties-common をインストールします。
```bash:software-properties-commonをインストール
sudo apt install software-properties-common
```
ppa:ondrej/php リポジトリを apt に登録します。
```bash:リポジトリを登録
sudo apt-add-repository ppa:ondrej/php
```
リポジトリ情報の更新を行います。
このコマンドにより、先ほど追加したリポジトリが使えるようになります。
```bash:aptを更新
sudo apt update
```
php7.3をインストールします。
```bash:phpをインストール
sudo apt install php7.3 php7.3-curl php7.3-dom php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-zip
```
### Maria DBをインストールします。
```bash:MariaDBをインストール
sudo apt install mariadb-server
```

# 設定ファイルの編集
必要なものがインストールできたら設定を編集していきます。

### ownCloud用の設定ファイルを作成
以下のコマンドを使用し、ownCloudの設定ファイルを作成する。
```bash:ownCloudの設定ファイルを開く(作成)
cd /etc/apache2/sites-available/
sudo nano owncloud.conf
```
以下を記述します。
```text
Alias /tamaocloud "/var/www/html/owncloud/"
<Directory /var/www/html/owncloud/>
    Options +FollowSymlinks
    AllowOverride All
    <IfModule mod_dav.c>
        Dav off
    </IfModule>
    SetEnv HOME /var/www/html/owncloud
    SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>
```

### phpの設定を変更
```bash:phpの設定ファイルを開く
sudo nano /etc/php/7.3/apache2/php.ini
```
以下の項目を変更する。
```
upload_max_filesize = 2M → 1024M
max_file_uploads = 20 → 100
post_max_size = 8M → 1024M
```
### 設定の反映
シンボリックリンクの作成とモジュールの有効化を実施するため、以下のコマンドを実行します。
```bash:シンボリックリンクの作成とモジュールの有効化
sudo a2ensite owncloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
```

設定を反映させるためApacheの再起動を行います。
```bash:Apacheの再起動
sudo systemctl restart apache2
```

# データベースの作成
続いてデータベースを作成します。

MariaDBにアクセスします。
```bash:MariaDBを開く
sudo mysql -u root
```
データベースとユーザーを作成します。
```sql:データベースの作成
CREATE DATABASE IF NOT EXISTS ownCloud;
GRANT ALL PRIVILEGES ON ownCloud.* TO 'root'@'localhost' IDENTIFIED BY 'password';
```

データベース名やユーザー名、パスワードを変更してください。

筆者の環境ではデータベース名を`ownCloud`ユーザー名を`root`パスワードは`password`に設定しています。

# ownCloudの構築
続いて、ownCloudの構築を行います。
### ソフトウェアのダウンロード
```bash:ownCloudのダウンロード
cd /var/www/html/
sudo wget https://download.owncloud.com/server/owncloud-complete-20220919.tar.bz2
```
:::note info
2022年12月16日時点の最新バージョンは`owncloud-complete-20220919.tar.bz2`でした。
バージョンの確認は [ここ](https://download.owncloud.com/server/ "ダウンロードページ") から確認できます。
:::

### ソフトウェアの解凍
ダウンロードができたら解凍します。
```bash:解凍
sudo tar xvf owncloud-complete-20220919.tar.bz2
```

### ダウンロードしたファイルを削除
```bash:解凍前ファイルを削除
sudo rm -f owncloud-complete-20220919.tar.bz2
```

### ownCloudのフォルダや権限の設定
データフォルダやセッションフォルダの作成とアクセス権限の設定をします。

```bash:権限設定など
sudo mkdir /var/www/html/owncloud/data
sudo chown www-data:www-data /var/www/html/owncloud/data
sudo chmod 750 /var/www/html/owncloud/data
sudo chmod 777 /var/www/html/owncloud
sudo mkdir /var/lib/php/session
sudo chmod 777 /var/lib/php/session
```
:::note alert
ここでサーバーの再起動やApacheの再起動をしてください。
```bash:Apacheの再起動
sudo systemctl restart apache2
```
:::

# onwCloudにアクセス
ここまでできたらownCloudにアクセスします。

### 管理者アカウントの作成
ユーザー名パスワードは自由に決めてください。
データディレクトリはそのまま

データベースは設定したものを入力します。

入力が完了したらセットアップを完了してください。


# まとめ
これでownCloudの導入が完了しました。
以外にも簡単にできるので是非してみてください。

ドメイン名/owncloudからドメイン名だけにするにはルートドキュメントを変更してください。