Nextcloudの構築

導入してなぜか動かない → なぜか動くようになったので、作業メモを公開

サーバー建てたら作りたかった環境の一つは個人用のクラウドなファイル同期環境と、そこにテキストファイルを置けるテキストメモアプリの使用だった。

これ、Dropboxには使えるアプリなく、メモアプリのEvernoteやone noteは機能てんこ盛り過ぎ
Simplenoteを使っているが、これもメモしたのを改めて取りまとめようとするにはちょっと面倒。
ということで、Nextcloudでのメモアプリの使用を検討していた。

先日、StickPCにXubuntu24.10で自宅サーバーを構築し、古いサーバーからホームページ(HTML1.2相当)とWordpressを移管して公開していた。
うちのサーバーではユーザーディレクトリ公開としており、httpアクセスは下記のようになっている。

/var/www/html
-/home
/ユーザー1 作業ユーザー
/ユーザー2/public_html/ html1.2相当のホームページ公開
/ユーザー2/public_html/ Wordpressサイトとして公開

よって各アクセスについては下記のようになる。
http://サーバー名/  www/html/ルートフォルダー内のindex.html表示
http://サーバー名/~ユーザー2/ ホームページ表示
http://サーバー名/~ユーザー3/ Wordpressによるブログ公開

せっかく立てたサーバ、普段使いに何か良いものはないかと考えていて、そこで見つけたのが個人使用できるファイル同期アプリ、nextcloud
空いている/home/ユーザー1/public_html/を利用してnextcloudを導入することとした。

当初、参照にしたのは下記サイト
https://note.com/fueaoi/n/n67510cd8fd70#a28ea0b5-9f5a-48f2-8355-da5e1dff8a1c

NextCloudインストール先
/home/ユーザー1/public_html/
Dataフォルダ
/home/ユーザー1/public_html/data

NextCloud ゲット
$ wget https://download.nextcloud.com/server/releases/nextcloud-31.0.4.zip
$ unzip nextcloud-28.0.2.zip

$ cd ./nextcloud/
$ mv ./* ~/public_html/
フォルダ/nextcloudの中身をまるまる、/public_html/以下に移動

$ mkdir ~/public_html/data
データフォルダ作成

$ ls ~/public_html/
3rdparty composer.json cron.php lib package.json robots.txt
AUTHORS composer.lock data occ phpinfo.php status.php
COPYING config dist ocs public.php themes
LICENSES console.php index.html ocs-provider remote.php updater
apps core index.php package-lock.json resources version.php

$ sudo chown -R www-data:www-data /home/ユーザー1/public_html

$ sudo chmod -R 777 /home/ユーザー1/public_html

Apache2用にNextCloud用の設定を作成

$ sudo vi /etc/apache2/sites-available/nextcloud.conf


DocumentRoot /home/ユーザー/public_html/
ServerName localhost

Require all granted AllowOverride All Options FollowSymLinks MultiViews

設定有効化

$ sudo a2ensite nextcloud
Enabling site nextcloud.
To activate the new configuration, you need to run:
systemctl reload apache2

$ sudo systemctl start apache2

MariaDBコンソールをひらいて、Nextcloudで使用するユーザ、データベース、権限の追加
ユーザ: nextcloud
データベース名: nextcloud
パスワード: (パスワード)

$ sudo mysql -uroot

MariaDB [(none)]> CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4;

MariaDB [(none)]> CREATE USER ‘nextcloud’@’localhost’ IDENTIFIED BY ‘mmmsk8er’;
Query OK, 0 rows affected (0.031 sec)

MariaDB [(none)]> GRANT ALL ON nextcloud.* TO “nextcloud”@”localhost”;
Query OK, 0 rows affected (0.029 sec)

MariaDB [(none)]> SHOW GRANTS FOR ‘nextcloud’@’localhost’;
+——————————————————————————————————————+
| Grants for nextcloud@localhost |
+——————————————————————————————————————+
| GRANT USAGE ON . TO nextcloud@localhost IDENTIFIED BY PASSWORD ‘パスワード’ |
| GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost |
+——————————————————————————————————————+
2 rows in set (0.001 sec)

MariaDB [(none)]> quit;

データベース準備完了し、サーバーにアクセス
http://URL/~ユーザー1/
しれっとトップ画面出た!!

新しい管理者アカウント名
(アカウント名)
新しいパスワード
(パスワード)

データベースアカウント
nextcloud
データベースのパスワード
(パスワード)
データベース名
nextcloud
データベースのホスト名
localhost

ポート番号は入力せず

上記を入力し、インストールをクリック

画面は遷移
http://サーバー名/~ユーザー1/index.php/core/apps/recommended
おすすめアプリインストールと画面廃校する

しかしスマホにAndoroidアプリのメモをインストールしてログインしても、同期に失敗する??

NextCloud 推奨要件であるメモリーキャッシュを有効
$ sudo vi /home/ユーザー/public_html/config/config.php

// セクション内の最終行に追記
// [default_phone_region] には自身の国コードを指定 (ISO 3166-1)
‘installed’ => true,

‘default_phone_region’ => ‘JP’,
);

Redisサーバインストール
Redisサーバとは、インメモリデーターベースと言い、データーベースを高速化

$sudo vi /home/ユーザー1/public_html/config/config.php

一番下に追記
‘filelocking.enabled’ => true,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘redis’ => array(
‘host’ => ‘localhost’,
‘port’ => 6379,
‘timeout’ => 0.0,
‘password’ => ”,

メモリーキャッシュ設定
メモリーキャッシュを使用すると、Nextcloudの動作が一部メモリ上で行われるため、パフォーマンスが向上。

$ sudo apt install php-apcu -y

$sudo vi /home/ユーザー1/public_html/config/config.php
で、一番上の

<?php
$CONFIG = array (

copy
の下に、下記のコードを追記して保存してください。

‘memcache.local’ => ‘\OC\Memcache\APCu’,

変更した設定を反映させるためにApacheを再起動します。

$ sudo systemctl restart apache2

NextCloud 用に PHP の設定を調整

$sudo vi /etc/php/8.1/fpm/pool.d/nextcloud.conf
新規作成

[nextcloud]
user = www-data
group = www-data

listen.owner = www-data
listen.group = www-data
listen = /run/php/nextcloud.sock
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/sessions

php_value[max_execution_time] = 3600
php_value[memory_limit] = 2G
php_value[post_max_size] = 2G
php_value[upload_max_filesize] = 2G
php_value[max_input_time] = 3600
php_value[max_input_vars] = 2000
php_value[date.timezone] = Asia/Tokyo

php_value[opcache.memory_consumption] = 128
php_value[opcache.interned_strings_buffer] = 8
php_value[opcache.max_accelerated_files] = 10000
php_value[opcache.revalidate_freq] = 1
php_value[opcache.save_comments] = 1

上記設定しても、403 forbiddenなどとされて、同期できない。
またサーバー上ファイルが作れない。

その後、下記を参照に作業して、使えるようになった
参照 
https://remylog.com/nextcloud-ubuntu-private-cloud-setup/

$ sudo nano /etc/apache2/conf-available/nextcloud.conf
→ 先に設定していたのはsite-availableだった

Timeout 3600
ProxyTimeout 3600
DirectoryIndex index.php index.html
Header set Strict-Transport-Security “max-age=15768000; includeSubDomains; preload”

DocumentRoot /home/ユーザー1/public_html ServerName サーバー名(.jpまで)


Options FollowSymLinks MultiViews
AllowOverride All
Require all granted

<FilesMatch \.(php|phar)$>
    SetHandler "proxy:unix:/run/php/nextcloud.sock|fcgi://localhost"
</FilesMatch>

上記作成して、
$ sudo a2enconf nextcloud

$ sudo a2enmod headers
$ sudo a2enmod rewrite

$ sudo systemctl restart apache2

同期不良はなくなり、すくすく動く!

/conf-availableが原因だったのだろうか?
判らん…

そうして入れた、nextcloud。
本質的に使いたかったのはnextcloud ノート。

スマホ上でのメモアプリはsimplenoteをながらく使っていた。
これはブラウザ上からPCでも編集できる。

が、やはりテキストファイルでメモを残したいなと思っていて。
その昔はDropboxにテキストファイルを置くメモアプリがあったような気がしていたのだけど、見つからず。
そこで見つけたのがnextcloud ノート。

サーバーにはssh接続して、emacs-howm環境下でメモをつけている。
スマホでもテキストファイルを作成し、それを一覧出来る、パソコンからも参照、編集できる、というのは便利なのだ。

とりあえず、環境はできたかな。
あとはどのくらい、使うことやら

教習所錬

月曜日定例、スピードインラインスケート、チーム練習は松戸中央自動車学校にて。

5月後半、夜7時の練習開始時には19℃。
一ヶ月ぶりのスケート練習。
軽く陸トレして、スケート履いたらアップ兼ねて、300mを55秒ペースで20周。
その間に追い越しダッシュをしたが、3本入れられた。

練習は3周を、50秒、36秒、36秒と2本。
一周流してからの、一人でタイム測れば37秒。

さらに3周をもう1本やって、最後は39秒。

久しぶりに良く滑ったな。
明日の筋肉痛が怖いよ。

鯖のムニエル

夕飯は鯖のムニエル。

塩コショウ、コリアンダーで味付けした鯖に片栗粉をまぶして、ニンニク、唐辛子で香り付けしたフライパンで焼いて。
たっぷりのパクチー共に盛り付けて。

やはり、この食べ方が美味い。
表面パリパリ、鯖の身はふっくら。

飲み物は日本酒、剣菱酒造、黒松剣菱。

そして焼酎ハイボール。

週末、終了。