自前クラウド

nextcloudによる自前クラウドの構築です。

nextcloudのデータベースは最初のログイン時に
sqliteかMySQL(またはMariaDB)選択しますので
どちらかがサーバーで稼働している必要があります。
またPHPも対応バージョンが必要となります。

MySQLを選択するなら使用するデータベースを
作成しておきます。
SQLliteを採用する場合はNextcloudのインストール
まで読み飛ばしてください。

# mysql -u root -p ←rootのパスワードで入室
 
     データベース作成
> CREATE DATABASE nextcloud;  

     ユーザーとパスワード作成
> create user ‘nextcloud’@’localhost’ identified by ‘password’;
> grant all privileges on nextcloud.* to ‘nextcloud’@’localhost’;
> quit

 上記例はデータベース名もユーザー名も
 nextcloudにしてあります。

なお
mysql> grant all privileges on nextcloud.* to ‘nextcloud’@’localhost’ identified by ‘password’;
では
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘password” at line 1
という構文エラーになります。

PHPはバージョンが8.0です。
非推奨の古いPHPをご使用の方は、ここを参考に
バージョンを上げてください。

いよいよNextcloudのインストールです

# wget https://download.nextcloud.com/server/releases/latest.tar.bz2
# tar -jxvf latest.tar.bz2
# mv nextcloud/ /home/ユーザー/public_html/
# mkdir /home/ユーザー/public_html/nextcloud/data
# chown -R apache:apache /home/ユーザー/public_html/nextcloud
# rm -f latest.tar.bz2

設定ファイル作成

vim /etc/httpd/conf.d/nextcloud.conf

Alias /nextcloud /var/www/nextcloud


Require all granted
AllowOverride All
Options FollowSymLinks MultiViews


Dav off


Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger

Apache再起動

# systemctl restart httpd

管理者アカウントを作成

サイトにアクセス

https://サーバー名/nextcloud/

任意のユーザー名
任意のパスワード
ストレージとデータベースを選択
MySQL/MariaDBを選択
MySQLのユーザー名(nextcloud)
MySQLのパスワード
データベース名(nextcloud)
データベースのホスト名(localhost)

これらが終わったらインストールします。

他設定いろいろ

# crontab -u apache -e
 */5 * * * * php -f /home/ユーザー/pubulic_html/nextcloud/cron.php

# vim /etc/php.d/10-opcache.ini

以下、行頭の;を削除してコメント解除
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.save_comments=1

PHP使用可能メモリ量が少なければ

# vim /etc/php.ini

memory_limit = ****M

****Mは最低512MB、環境による最大限を
割り振っておくとよいでしょう。
ちなみに拙宅サーバーは4Gです。

拙生は経験しておりませんが、一括ダウンロード時の際
ファイル名文字化けすることがあるらしく、その対処法は
以下の通りです。

vim /home/info/public_html/nextcloud/3rdparty/deepdiver/zipstreamer/src/ZipStreamer.php

ずっと下の方にある

// Utility methods ////////////////////////////////////////////////////////

private static function normalizeFilePath($filePath) {
//return trim(str_replace(‘\\’, ‘/’, $filePath), ‘/’);
   ↑ //でコメント行とする。
return mb_convert_encoding(trim(str_replace(‘\\’, ‘/’, $filePath), ‘/’),”SJIS”,”UTF-8″);
   ↑ 追記する。
}

# systemctl restart httpd
# systemctl restart php-fpm

自身の備忘録の要素が強く検証が足りていませんので
後に訂正や追記があるかもしれません。

なおクライアント側はこちら
Download for desktopプルダウンメニューから
ご自身のOSに合わせてダウンロードしてください。
モバイル用も置いてあります。

HOME