Rust   |   Mint Xfce にプロキシーサーバーを設定して、Rust アプリケーションを動かす

ホーム  

概要

Mint Xfce にプロキシサーバーを設定して、Rust アプリケーションを動作させるまでの一連の流れを説明しています。

2025年10月9日
サスペンド復帰後に画面が真っ暗になるという Mint 固有の症状がなおりました。

サスペンドからの復帰時に画面が真っ暗になることの解決策

2025年10月9日に追加

Linux Mint には、サスペンドから復帰した時に画面が真っ暗になるという症状があります。システム自体は起動しているのですが、 画面だけが表示されません。ところが 22.1 Xia をやめて 22.2 Zara を新規インストールしたところ、この症状がなおりました。 ただ、その前に PC のドライバーをアップデートしていますので、そちらが良かったのかもしれません。手順は次のとおりです。

  1. Intel Lake N-150 を使用した MINI PC を使っています。WSL ではなく、Windows 11 と Linux Mint を個別にインストールして、BIOS で起動を切り替えています。
  2. まず、Xia 22.1 から Zara 22.2 にアップグレードしましが、なおりませんでした。
  3. MINI PC のメーカーサイトにドライバーアップデートがあったのでそれを Windows 11 でインストールしましが、 Linux Mint の症状はなおりませんでした。
  4. Linux Mint 22.2 Zara を新規インストール (クリーンインストール?) したところ、症状がなおりました。
  5. ディスプレイの名前も 22.1 Xia の時は「Diaplay-1」みたいな名前でしたが、今は「HSJ 15"」という、固有名詞らしい名前になりました。
  6. ドライバーのアップデート後に、22.1 Xia を新規インストールすればなおっていたのかもしれませんし、22.2 Zara の新規インストールが良かったのかもしれません。どちらが良かったのか、あるいはどちらも必要だったのかわかりません。
  7. なお、電源の設定や、スクリーンセーバーの設定、ディスプレイの設定などは何もせずになおっています。


Xfce 初期設定


Appearance → Settigs → Window Scaling で 2x を選ぶ。
Google Chrome をインストールする
Update Manager を起動する
Update Manager を起動中に Keyboard → Shortcut-key で SuperL の項目を削除する。


Caps Lock と Emacs バインディングの設定


# Caps Lock キーを Ctonrol キーにする

sudo nano /etc/default/keyboard
XKBOPTIONS="ctrl:nocaps"    // Caps Lock を Control にする
XKBOPTIONS="ctrl:swapcaps"  // Caps Lock と Control を入れ替える
sudo dpkg-reconfigure keyboard-configuration
再ログイン後に有効になります。

# Emacs キーバインドにする。次の方法で、nano, Firefox などいくつかのアプリケーションが Emacs キーバインドになります。

Settings Manager → Settings Editor で Channell の一番下の xsettings を開き、Gtk のグループの中に
プロパティ KeyThemeName データ型 String 値 Emacs を追加してください。
プロパティは欄は、/Gtk/KeyThemeName と入力します。
再ログイン後に有効になります。


nano で行番号を表示できるようにする


sudo nano /etc/nanorc
# 次の行を追加
set linenumbers


日本語化


Language で Japanese を設定
Input Method で Japanese を選び、Install して、Fcitx を選ぶ
再ログイン後日本語になります。
パネル右下のキーボードアイコンを右クリックして「設定」を選ぶと、インプットメソッド切り替え設定などが行えます。


SQLite と Rust のインストール

このコーナーでは、データベースとして SQLite を使っています。


# SQlite のインストール

sudo apt install sqlite3
sudo apt install libsqlite3-dev

# Rust のインストール

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install rustup


Apache2 のインストール

sudo apt update
sudo apt install apache2

# 端末の IP アドレス、もしくは URL で Apache2 のデフォルトページが表示されます。

# 設定ファイルの変更
sudo nano /etc/apache2/apache2.conf
170行目

# 修正前
<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
    Require all granted
</Directory>
#修正後、AllowOverride のところを None から All に変更する。
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

#設定を有効にする
sudo a2enmod rewrite
sudo service apache2 restart


プロキシサーバーの設定


# プロキシを有効にする
sudo a2enmod proxy
sudo service apache2 restart
sudo a2enmod proxy_http
sudo service apache2 restart
apachectl -M | grep proxy
 proxy_module (shared)
 proxy_http_module (shared)
 
# プロキシサーバの設定
sudo nano /etc/apache2/apache2.conf
# ファイルの最後に次を追加、Basic認証用のコードも記載しています。
<Location "/tera">
ProxyPass http://0.0.0.0:8080
ProxyPassReverse http://0.0.0.0:8080
</Location>

<Location "/askama">
ProxyPass http://0.0.0.0:3000
ProxyPassReverse http://0.0.0.0:3000
</Location>

# Bacis認証用のコード
<Location "/">
    AuthType Basic
    AuthName "Basic Authentication"
    AuthUserFile /var/www/html/.htpasswd
    Require user ユーザー名
</Location>

# 設定を有効にします。
sudo service apache2 restart


SSH のインストール


sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh

Tera と Askama のインストール


sudo apt install git

git clone https://github.com/ユーザー名/tera_proxy.git
mv tera_proxy tera
cd tara
carog build --release
nohup ./target/release/tera &
# IP アドレス/tara、もしくはURL/tera で表示されます。

cd ..
git clone https://github.com/ユーザー名/askama_proxy.git
mv askama_proxy askama
cd askama
cargo build --release
nohup ./tatget/release/askama &
# IP アドレス/askama、もしくはURL/askama で表示されます。


index.html

index ページを作り替えます。

cd /var/www/html
sudo mv index.html original_index.html

sudo nano index.html

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Home</title>
  <link rel="stylesheet" href="/tera/static/style.css">
</head>
<body>
  <div class="container">
    <h1>Home</h1>
    <div><a href="/tera"><button>Tera</button></a></div>
    <div><a href="/askama"><button>Askama</button></a></div>
    <!--
    <div><a href="/task/public"><button>Task</button></a></div>
    <div><a href="/bbs/public"><button>BBS</button></a></div>
    <div><a href="/ledger/public"><button>Ledger</button></a></div>
    <div><a href="/cart/public"><button>Amazoness</button></a></div>
    -->
  </div>
</body>
</html>


Basic 認証

サイトに認証機能をつけます。


sudo nano /var/www/html/.htaccess

AuthUserFile /var/www/html/.htpasswd
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user

パスワードは、 htpasswdファイル生成(作成) で作ります。

  1. ID にユーザー名を、Passwaord にパスワードを入力して、「生成」ボタンをクリックします。
  2. .htpasswd の欄に作られた文字列をコピーします。

sudo nano /var/www/html/.htpasswd

先ほどコピーした文字列をそのままペーストします。


システム起動時に自動起動するようにする

2025年10月9日に修正しました。


# Tera のプロジェクトディレクトリに tera.sh というファイルを作り、次のように記述します。

#!/bin/bash
cd ~/rust/tera && nohup ./target/release/tera &

# 次に実行権限を与えます。
chmod +x tera.sh

# 「セッションと起動」を開き、「自動開始アプリケーション」タブを選び、「追加」ボタンをクリックします。
# 表示される「アプリケーションの追加」パネルで任意の名前と説明を記入します。
# コマンド欄には、tera.sh までのパスを記入します。右のアイコンをクリックすると、ファイルを選択画面で選べます。
# トリガーは、Mint 22.1 Xia の場合は「再起動時」、Mint 22.2 Zara の場合は「ログイン時」を選びます。
# 最後に「OK」ボタンをクリックして、「閉じる」ボタンをクリックします。

# Askama も同じようにして設定します。


SSH でデータ転送


# データの送信
scp todo.db ユーザー名@xxx.xxx.xxx.xxx:~/tera
scp test.db ユーザー名@xxx.xxx.xxx.xxx:~/askama

# データの取得
csp ユーザー名@xxx.xxx.xxx.xxx.:~/tara/todo.db .
csp ユーザー名@xxx.xxx.xxx.xxx.:~/askama/test.db .


その他のコマンド


# ルーターのグローバル IP アドレスを調べる
curl httpbin.org/ip

# URL の IP アドレスを確認する
nslookup example.com

# ホスト名を変更する
sudo hostnamectl set-hostname 新しいホスト名
reboot
# 再起動後、ターミナルを開くと新しいホスト名になっています。
# 都合により再起動できない場合は次のようにします。
sudo systemctl restart systemd-hostnamed  
# ターミナルを一度閉じて、もう一度開くとホスト名が変更されています。

# アプリケーションのアンインストール(設定や環境なども完全に削除する)
sudo apt purge xxxx



1037 visits
Posted: Oct. 07, 2025
Update: Oct. 09, 2025

ホーム   目次