【スキル】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やリポジトリを入れる際は、下調べしていたサイトのアドレスが間違っていたり、足りなかったりして、仕組みを理解するまでに時間がかかってしまいました。
