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

サーバー建てたら作りたかった環境の一つは個人用のクラウドなファイル同期環境と、そこにテキストファイルを置けるテキストメモアプリの使用だった。
これ、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環境下でメモをつけている。
スマホでもテキストファイルを作成し、それを一覧出来る、パソコンからも参照、編集できる、というのは便利なのだ。
とりあえず、環境はできたかな。
あとはどのくらい、使うことやら