ubuntuにnextcloudを入れた後のトラブルシューティング（その1）

# はじめに
ubuntuにnextcloudをインストールしてみました．ところが，下の図にあるように「管理者設定」を見ながらトラブルシュートをするという作業が場合によっては必要となります．

![スクリーンショット 2024-01-02 170252.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773471/af35b6f2-7da4-8931-2233-2fce1b6be5f3.png)

ここにある「セットアップに関するいくつかのエラーがあります」をひとつずつ解決したことをメモとして記します．

ここでは，そのなかで
- PHPのメモリ制限が推奨値の512 MB以下です。
- ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、プロフィール設定で国コードなしの電話番号を有効にするために必要です。国コードなしの電話番号を許可するには、"default_phone_region" を地域の ISO 3166-1 コードとともに設定ファイルに追加してください。 詳細については、ドキュメント↗を参照してください。
- メールサーバーの設定が未設定または未確認です。「基本設定」で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。 詳細については、ドキュメント↗を参照してください。

について記述しました．

# 前提条件
【OS】ubuntu22.04
【Webサーバ】apache
【nextcloud】ver.28
【データベース】mariadb
【php】8.1
【インストールパス】/var/www/html/nextcloud/
インストールは[「Ubuntu 22.04に Nextcloud をインストールする方法」](http://memorandum.cloud/2023/01/23/1858/)を参考に行いました．

# トラブルシューティング
以下，各項にトラブルに関わるメッセージ別で解決方法を示します．

## ＊「PHPのメモリ制限が推奨値の512 MB以下です。」
これが出た場合は，[参考記事](https://twinturbo-power.com/2021/04/nextcloud%E3%81%AE%E8%AD%A6%E5%91%8A%E3%82%92%E8%A7%A3%E6%B1%BA%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F.html#index_id1)などにも書かれているようにphp.iniにおけるmemory_limitを512M以上の数値にすれば解決します．
ただし，ubuntuにおいては[php.iniが何個もあるよう](https://atmarkit.itmedia.co.jp/ait/articles/1202/10/news121.html)なのでphp-fpmに関わるものを編集します．
```
# vi /etc/php/8.1/fpm/php.ini
```
::: note info
 php.iniの存在するディレクトリにおける
＊ 8.1はphpのバージョン
＊ fpmはphp-fpmに関わるもの
であるという意味のようです。
実際には，[「もういい加減覚えよう。php.iniはどこにあるのか」](https://qiita.com/ritukiii/items/624eb475b85e28613a70)を参考にご自身で探すとよろしいかと思われます．
:::

:::note info
[「Nextcloud21.0.1+Apache+PHP+MariaDB+RedisをUbuntu 20.04にセットアップ」](https://qiita.com/S_Katz/items/31424703e804bf1ebd92)を参考にインストールされた場合はこのような事象は起こらないと思われます．
:::
そのなかでmemory_limitに関わる行（430行目あたり）を（必要であればコメントアウトして）以下のように書き換えます．
```/etc/php/8.1/fpm/php.ini
# memory_limitに関わる行を（必要であればコメントアウトして）以下のように書き換える
memory_limit = 512M
```
そのあと，
```
# systemctl restart apache2 php-fpm
```
を打って，「管理者設定」を再度確認してみてください．

## ＊「ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、プロフィール設定で国コードなしの電話番号を有効にするために必要です。国コードなしの電話番号を許可するには、"default_phone_region" を地域の ISO 3166-1 コードとともに設定ファイルに追加してください。 詳細については、ドキュメント↗を参照してください。」

ここでは，[Nextcloud デフォルトの電話地域 解決方法](https://www.surlofia.com/nextcloud-no-default-phone-region-set-solution/)などを参考に，以下のように解決しました．
/var/www/html/nextcloud/config/config.php における記述において，日本国内に存在するサーバの場合だと 
'default_phone_region' => 'JP',
を追加するのです．

```/var/www/html/nextcloud/config/config.php　の下部　修正前
　・・・・
  'installed' => true,
);

```

```/var/www/html/nextcloud/config/config.php　の下部　修正後
　・・・・・
  'default_phone_region' => 'JP', # この行を追加する
  'installed' => true,
);

```
:::note info
ここにおける 'JP' はJAPANの場合ですが，その根拠については[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)をご参考ください．
:::
:::note warn
この記事の場合ではnextcloudを /var/www/html/nextclud/ にインストールしたという前提ですが，/config/config.phpの前の部分については各自の環境に合わせて読み替えてください．
:::
そのあと，
```
# systemctl restart apache2 php-fpm
```
を打って，「管理者設定」を再度確認してみてください．

## ＊「メールサーバーの設定が未設定または未確認です。「基本設定」で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。 詳細については、ドキュメント↗を参照してください。」

Web上におけるnextcloudの管理者設定の画面
![スクリーンショット 2024-01-02 184119.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773471/6436fb77-e336-e8b8-a9a6-662231c6f110.png)
において左側の「基本設定」をクリックすると
![スクリーンショット 2024-01-02 184236.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773471/59f66c84-17fa-6ba6-24e6-f6d75808bf42.png)
なかほどに，メールサーバーの欄があります．ここに送信元となるメールアドレスに関わる情報を入力してください．多くの場合は認証が必要となるので
認証　□　認証を必要とする
と書かれたところの　□　をクリックしますと
![スクリーンショット 2024-01-02 184955.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773471/200643a2-ae08-02ff-d8b4-4711ef5c4317.png)
となって，送信元のメールサーバ資格情報を記載するカラムが出現しますので，それについて必要な情報を入力します．

::: note warn
たとえば[Gmailだと資格情報の入力において注意が必要](https://qiita.com/tomokei5634/items/f8671a8f1414a8aec3ee)です．
:::
メールアドレスに関わる情報の入力がおわったら「保存」をクリックして，「メールを送信」をクリックして送信します．

::: note warn
左側上部にある「個人情報」においてメールアドレスが入力されていない場合は，入力をするように促されますので，パスワードリマインドなどを受信できるメールアドレスを入力してください．
:::
無事に送信され，一例として，受信先のメールアドレスに
```
From: Nextcloud <hoge@hoge.com>
To: hoge2@hoge.com
Subject:メール設定のテスト

hoge2さん、成功です！

このメールが見えているということは、メール設定がうまくいっているということです。

-- 
Nextcloud - すべてのデータを安全に保管します
これは自動的に生成されたメールです。返信しないでください。
```
が届いていることが確認できれば，ここでの問題解決はできたことになります．

::: note info
ここで示したメールの一例では，
To：個人情報におけるメールアドレス
From：先述の基本情報にて入力した送信元メールアドレス
が，それぞれ対応しています．
:::

# まとめ

ここでは，nextcloudにおける管理者設定で出現するエラーなどのトラブルシューティングについて，
- PHPのメモリ制限が推奨値の512 MB以下です。
- ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、プロフィール設定で国コードなしの電話番号を有効にするために必要です。国コードなしの電話番号を許可するには、"default_phone_region" を地域の ISO 3166-1 コードとともに設定ファイルに追加してください。 詳細については、ドキュメント↗を参照してください。
- メールサーバーの設定が未設定または未確認です。「基本設定」で設定を行ってください。その後、フォームの下にある「メールを送信」ボタンで設定を確認してください。 詳細については、ドキュメント↗を参照してください。

の3件を記述しました．
それによって，
![スクリーンショット 2024-01-02 192144.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773471/5995838a-d9e7-8046-cf3f-40fda7369b65.png)
のように3つの問題が解決されております．

なお，他の問題については，稿を改めたいと思います．


# References.
(1)[クライアントがアクセスできる範囲を制限する](https://webukatu.com/wordpress/blog/37067/#phpini-7)
(2)[「もういい加減覚えよう。php.iniはどこにあるのか」](https://qiita.com/ritukiii/items/624eb475b85e28613a70)
(3)[Nextcloud デフォルトの電話地域 解決方法](https://www.surlofia.com/nextcloud-no-default-phone-region-set-solution/)
(4)[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)