【スキル】Linuxにアクセスできるようにする

前回からの続きになります。
今回はLinuxにNextCloudというサービスをインストールして、外からでもLinuxにアクセスできるようにしてみます。

 システム更新とリポジトリの準備

OSを最新の状態にし、最新版のPHPを利用するためにリポジトリを追加します。

システム更新

sudo dnf update -y

EPELおよびRemiリポジトリの追加

sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
コードは注意してご使用ください。

◆リポジトリ追加の仕組み(補足)

なぜ2つ入れるのか?:
EPEL: Remi リポジトリが動作するために必要な「依存パッケージ(部品)」が多く含まれているため、先に導入する必要があります。
Remi: 標準の App Store(標準リポジトリ)にはない、最新バージョンの PHP を専門に提供してくれる「特設ストア」のようなイメージです。

 PHP 8.3 のインストール

Nextcloudに必要な新しいPHP 8.3とモジュールをインストールします。

PHPモジュールのリセットとPHP 8.3の有効化

sudo dnf module reset php -y
sudo dnf module enable php:remi-8.3 -y

PHP本体と必須モジュールのインストール

sudo dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-intl php-pecl-apcu php-opcache php-bcmath php-gmp php-zip php-process

PHPのバージョン確認

php -v

 データベースとWebサーバーの設定

NextCloudを起動させるためにデータベースとWEBサーバーの設定が必要になるので、データベースのMariaDBとWEBサーバーのApacheをインストールして設定します。

MariaDBのインストールと起動

sudo dnf install -y mariadb-server
sudo systemctl enable –now mariadb

初期セキュリティ設定

sudo mysql_secure_installation

Apacheとwgetのインストール

sudo dnf install -y wget httpd
sudo systemctl enable –now httpd

データベースの作成

sudo mysql -u root -e “CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;”
sudo mysql -u root -e “GRANT ALL PRIVILEGES ON nextcloud_db.* TO ‘nextclouduser’@’localhost’ IDENTIFIED BY ‘パスワード’;”
sudo mysql -u root -e “FLUSH PRIVILEGES;”
※’パスワード’の部分は任意の強力なものに変更してください

 Nextcloud 本体のインストール

NextCloud本体をダウンロードして、設定していきます。

 最新版のダウンロードと解凍

wget download.nextcloud.com/server/releases/latest.tar.bz2
sudo tar -xvjf latest.tar.bz2 -C /var/www/html/

 データディレクトリ作成と権限設定

sudo mkdir -p /var/www/html/nextcloud/data
sudo chown -R apache:apache /var/www/html/nextcloud

 SELinuxの設定(Webサーバーからの通信を許可)

sudo setsebool -P httpd_can_network_connect_db on
sudo chcon -R -t httpd_sys_rw_content_t /var/www/html/nextcloud/

 ファイアウォールの開放

sudo firewall-cmd –permanent –add-service=http
sudo firewall-cmd –permanent –add-service=https
sudo firewall-cmd –reload

ここまでの作業で、NextCloudをインストールできたので、同じネットワーク内であれば、アクセスできるようになります。

 リモートアクセスの設定

先ほどの作業で、NextCloudを使用できるようになったのですが、iPhoneやiPadがNextCloudが入っているLinuxに入っているネットワーク内にないとアクセスできないようになっています。

LinuxにTailscaleというリモートアクセスができるようになるサービスを入れて、同じネットワーク内になくてもアクセスできるようにしていきます。

 Tailscaleリポジトリ追加とインストール

sudo dnf config-manager –add-repo https://pkgs.tailscale.com/stable/rhel/9/tailscale.repo
sudo dnf install -y tailscale
sudo systemctl enable –now tailscaled

 認証開始(表示されるURLにアクセスしてログイン)

sudo tailscale up

 TailscaleのIPを確認

tailscale ip -4

TailscaleのIPはNextCloudにアクセスするときに必要なIPになるので、必要な時にコマンドを入力して確認してください。

ブラウザで初期設定を終えた後、Tailscale経由でアクセスできるようにドメインを追加

sudo nano /var/www/html/nextcloud/config/config.php

trusted_domainsを下記のように編集します。

‘trusted_domains’ =>
array (
0 => ‘localhost’,
1 => ‘100.x.y.z’, // 確認したTailscaleのIPを追加
),

 Webブラウザでの最終設定

パソコンやiPhone、iPadのブラウザから http://(TailscaleのIP)/nextcloud にアクセスし、以下を入力します。
管理者ユーザー名/パスワード: 新規作成
データフォルダー: /var/www/html/nextcloud/data
データベースユーザー: nextclouduser
データベースパスワード: (手順3で決めたもの)
データベース名: nextcloud_db
ホスト名: localhost

最後に

今回、LinuxにNextCloudというサービスをインストールしてみました。iPhoneやiPadからLinuxにファイルや画像データをアップロードできるようになり、とても便利になりました。

作業途中でwgetやリポジトリを入れる際は、下調べしていたサイトのアドレスが間違っていたり、足りなかったりして、仕組みを理解するまでに時間がかかってしまいました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です