インストールガイド · 6 min read · Dec 19, 2025
Ubuntu 22.04にWallabagをインストールする方法

Wallabagは、後で読むためのサービスです。ウェブページを保存して、ゆっくりとしたペースで後で読むことができます。PocketやInstapaperなど、同様のサービスはたくさんありますが、自分のサーバーにインストールされたサービスを持つことははるかに良いです。なぜなら、ビジネスが終了してリンクが削除されることがないからです。
このチュートリアルでは、Ubuntu 22.04を実行しているサーバーにWallabagをインストールして設定する方法を説明します。また、Wallabagを実行するために必要なNginx、MySQL、Composer、PHPの設定方法も説明します。
前提条件
- Ubuntu 22.04を実行しているサーバー。
- sudo権限を持つ非rootユーザー。
wallabag.example.comのような完全修飾ドメイン名(FQDN)。- すべてが更新されていることを確認してください。
$ sudo apt update $ sudo apt upgrade - システムに必要な少数のパッケージ。
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yこれらのパッケージのいくつかは、すでにシステムにインストールされている可能性があります。
ステップ1 - ファイアウォールの設定
最初のステップはファイアウォールの設定です。Ubuntuにはデフォルトでufw(Uncomplicated Firewall)が付属しています。
ファイアウォールが実行中かどうかを確認します。
$ sudo ufw status
次の出力が得られるはずです。
Status: inactive
SSHポートを許可して、ファイアウォールを有効にするときに現在の接続が切断されないようにします。
$ sudo ufw allow OpenSSH
HTTPおよびHTTPSポートも許可します。
$ sudo ufw allow http
$ sudo ufw allow https
ファイアウォールを有効にします。
$ sudo ufw enable
コマンドは既存のssh接続を中断する可能性があります。操作を続行しますか(y|n)? y
ファイアウォールはアクティブで、システム起動時に有効になります
再度ファイアウォールの状態を確認します。
$ sudo ufw status
似たような出力が表示されるはずです。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
ステップ2 - PHPとその拡張機能のインストール
Ubuntu 22.04には、少し古いPHP 8.1.2バージョンが付属しています。最新のPHP 8.1バージョンをOndrejのPHPリポジトリを使用してインストールします。
$ sudo add-apt-repository ppa:ondrej/php
次に、Wallabagに必要なPHPとその拡張機能をインストールします。
$ sudo apt install php8.1-fpm php8.1-mysql php8.1-bcmath php8.1-xml php8.1-zip php8.1-curl php8.1-mbstring php8.1-gd php8.1-tidy php8.1-intl php8.1-cli
インストールを確認します。
$ php --version
PHP 8.1.16 (cli) (built: Feb 14 2023 18:35:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.16, Copyright (c) Zend Technologies
with Zend OPcache v8.1.16, Copyright (c), by Zend Technologies
ステップ3 - Composerのインストール
ComposerはPHPの依存関係管理ツールであり、Wallabagのインストールに必要です。
次のコマンドを実行してComposerバイナリをダウンロードします。WallabagはComposer 2.2 LTSでのみ動作するため、コマンドを適宜修正しました。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
バイナリを/usr/local/binディレクトリに移動してComposerをインストールします。
$ sudo mv composer.phar /usr/local/bin/composer
そのバージョンを確認してインストールを確認します。
$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40
ステップ4 - MySQLのインストール
Ubuntu 22.04には最新のMySQLバージョンが付属しています。単一のコマンドでインストールできます。
$ sudo apt install mysql-server
MySQLのバージョンを確認します。
$ mysql --version
mysql Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
このステップはMySQLバージョン8.0.28以上に必要です。MySQLシェルに入ります。
$ sudo mysql
次のコマンドを実行してrootユーザーのパスワードを設定します。数字、大文字、小文字、特殊文字の組み合わせが含まれていることを確認してください。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
シェルを終了します。
mysql> exit
MySQLのセキュアインストールスクリプトを実行します。
$ sudo mysql_secure_installation
最初にrootパスワードを求められます。入力してください。次に、Validate Password Componentをインストールするかどうかを尋ねられます。これはMySQLで使用されるパスワードの強度をチェックします。インストールするにはYを押します。次に、パスワード検証ポリシーのレベルを設定するように求められます。最も強力な2を選択してください。
MySQLサーバーのデプロイメントを保護しています。
ユーザーrootのパスワードを入力してください:
VALIDATE PASSWORD COMPONENTはパスワードをテストしてセキュリティを向上させるために使用できます。パスワードの強度をチェックし、ユーザーが十分に安全なパスワードのみを設定できるようにします。VALIDATE PASSWORDコンポーネントを設定しますか?
はいの場合はy|Yを押し、いいえの場合は他のキーを押してください:Y
パスワード検証ポリシーの3つのレベルがあります:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
0 = LOW、1 = MEDIUM、2 = STRONGを入力してください:2
既存のパスワードをrootに使用します。
推定されるパスワードの強度:100
次に、rootパスワードを変更しないことを拒否するためにNを入力します。また、匿名ユーザーを削除し、リモートrootログインを禁止し、テストデータベースを削除し、特権テーブルを再読み込みするためにYを入力します。
rootのパスワードを変更しますか?(はいの場合はy|Y、いいえの場合は他のキーを押してください):N
... スキップ中。
デフォルトでは、MySQLインストールには匿名ユーザーがあり、ユーザーアカウントを作成しなくても誰でもMySQLにログインできます。これはテスト専用であり、インストールをスムーズに進めるためのものです。生産環境に移行する前に削除する必要があります。
匿名ユーザーを削除しますか?(はいの場合はy|Y、いいえの場合は他のキーを押してください):Y
成功。
通常、rootは「localhost」からのみ接続を許可されるべきです。これにより、誰かがネットワークからrootパスワードを推測できなくなります。
リモートでのrootログインを禁止しますか?(はいの場合はy|Y、いいえの場合は他のキーを押してください):Y
成功。
デフォルトでは、MySQLには「test」という名前のデータベースがあり、誰でもアクセスできます。これもテスト専用であり、生産環境に移行する前に削除する必要があります。
テストデータベースとそのアクセスを削除しますか?(はいの場合はy|Y、いいえの場合は他のキーを押してください):Y
- テストデータベースを削除中...
成功。
- テストデータベースの特権を削除中...
成功。
特権テーブルを再読み込みすると、これまでに行ったすべての変更が即座に反映されます。
特権テーブルを今すぐ再読み込みしますか?(はいの場合はy|Y、いいえの場合は他のキーを押してください):Y
成功。
すべて完了!
ステップ5 - MySQLの設定
MySQLシェルにログインします。プロンプトが表示されたらrootパスワードを入力します。
$ sudo mysql -u root -p
サンプルデータベースを作成します。
mysql> CREATE DATABASE wallabag;
SQLユーザーアカウントを作成します。
mysql> CREATE USER 'wallabaguser'@'localhost' IDENTIFIED BY 'Your_password2';
ユーザーにデータベースへのすべての特権を付与します。
mysql> GRANT ALL PRIVILEGES ON wallabag.* TO 'wallabaguser'@'localhost';
ユーザー特権をフラッシュします。
mysql> FLUSH PRIVILEGES;
シェルを終了します。
mysql> exit
ステップ6 - Nginxのインストール
Ubuntu 22.04には古いバージョンのNginxが付属しています。最新バージョンをインストールするために公式のNginxリポジトリをダウンロードする必要があります。
Nginxの署名キーをインポートします。
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Nginxの安定版のリポジトリを追加します。
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
システムリポジトリを更新します。
$ sudo apt update
Nginxをインストールします。
$ sudo apt install nginx
インストールを確認します。
$ nginx -v
nginx version: nginx/1.22.1
Nginxサーバーを起動します。
$ sudo systemctl start nginx
ステップ7 - SSLのインストール
SSL証明書を生成するためにCertbotをインストールする必要があります。Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。Snapdバージョンを使用します。
Ubuntu 22.04にはデフォルトでSnapdがインストールされています。次のコマンドを実行してSnapdのバージョンが最新であることを確認します。
$ sudo snap install core && sudo snap refresh core
Certbotをインストールします。
$ sudo snap install --classic certbot
次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリにシンボリックリンクを作成することで実行できることを確認します。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
次のコマンドを実行してSSL証明書を生成します。
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d wallabag.example.com
上記のコマンドは、サーバーの/etc/letsencrypt/live/wallabag.example.comディレクトリに証明書をダウンロードします。
Diffie-Hellmanグループ証明書を生成します。
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Certbotの更新スケジューラーサービスを確認します。
$ sudo systemctl list-timers
snap.certbot.renew.serviceが実行予定のサービスの1つとして表示されます。
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left Sat 2023-02-25 18:04:05 UTC 2h 59min ago snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left Sat 2023-02-25 10:49:23 UTC 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left Sat 2023-02-25 20:58:06 UTC 5min ago apt-daily.timer apt-daily.service
SSL更新が正常に機能しているかどうかを確認するために、プロセスのドライランを行います。
$ sudo certbot renew --dry-run
エラーが表示されなければ、すべて設定完了です。証明書は自動的に更新されます。
ステップ8 - Wallabagのインストール
/var/www/wallabag/htmlディレクトリを作成します。
$ sudo mkdir /var/www/html/wallabag -p
Wallabagの最新バージョンをダウンロードします。
$ wget https://wllbg.org/latest-v2-package
アーカイブを抽出します。
$ tar xzf latest-v2-package
抽出したディレクトリから先ほど作成したディレクトリにファイルを移動します。Wallabagの最新バージョンはGitHubのリリースページで確認できます。このチュートリアル執筆時点での最新バージョンは2.5.4です。
$ sudo mv wallabag-2.5.4/* /var/www/html/wallabag
アセットディレクトリを作成します。
$ sudo mkdir /var/www/html/wallabag/data/assets
/var/www/html/wallabagディレクトリの権限を現在ログインしているユーザーに変更します。
$ sudo chown -R $USER:$USER /var/www/html/wallabag
ディレクトリに移動します。
$ cd /var/www/html/wallabag
例のファイルをコピーしてparameters.ymlファイルを作成します。
$ cp app/config/parameters.yml.dist app/config/parameters.yml
Wallabagの設定を開始する前に、秘密鍵を生成します。後で使用するために鍵をメモしておきます。
$ openssl rand -base64 32
QLV/GpZwDobQbyQZQ15FkM1Hvt+ZFJZXw8GW9F4KR3o=
パラメータファイルを編集するために開きます。
$ nano app/config/parameters.yml
次のセクションを見つけて、データベースの資格情報を入力します。MySQLのデータベースポートは3306です。
..........
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: wallabag
database_user: wallabaguser
database_password: Your_password2
サーバーの説明とドメイン名を入力します。
domain_name: https://wallabag.example.com
server_name: "Howtoforge Wallabag"
SMTPの詳細を入力します。この場合、Amazon SESサービスを使用しています。
mailer_transport: smtp
mailer_user: YOUR_AES_USERNAME
mailer_password: YOUR_AES_PASSWORD
mailer_host: email-smtp.us-west-2.amazonaws.com
mailer_port: 587
mailer_encryption: tls
前に生成した秘密鍵を入力します。二要素認証を維持したい場合は、次の設定が適用されていることを確認してください。ユーザー登録を無効にしたい場合は、fouser_registrationの値をfalseに設定します。fouser_confirmation変数はtrueに設定されており、すべてのユーザー登録はメールで確認される必要があります。from_email変数の値をお好みのメールアドレスに変更してください。
# A secret key that's used to generate certain security-related tokens
secret: QLV/GpZwDobQbyQZQ15FkM1Hvt+ZFJZXw8GW9F4KR3o=
# two factor stuff
twofactor_auth: true
twofactor_sender: [email protected]
# fosuser stuff
fosuser_registration: true
fosuser_confirmation: true
.....
from_email: [email protected]
.....
Redis、RabbitMQ、Sentry設定に関連するさらなるセントリーがあります。必要に応じて、指定されたパッケージをインストールした後にそれらを設定できます。
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Composerを使用してWallabagに必要な依存関係をダウンロードしてインストールします。
$ SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
Wallabagコマンドラインツールを使用してインストールを完了します。
$ php bin/console wallabag:install --env=prod
データベースとそのスキーマをリセットするかどうかを尋ねられます。両方ともnoと入力します。次に、管理者アカウントを作成するかどうかを尋ねられます。続行するにはyesと入力し、アカウントのユーザー名、パスワード、メールアドレスを入力します。
wallabag installer
==================
Step 1 of 4: Checking system requirements.
------------------------------------------
------------------------ -------- ----------------
Checked Status Recommendation
------------------------ -------- ----------------
PDO Driver (pdo_mysql) OK!
Database connection OK!
Database version OK!
curl_exec OK!
curl_multi_init OK!
------------------------ -------- ----------------
[OK] Success! Your system can run wallabag properly.
Step 2 of 4: Setting up database.
---------------------------------
データベースはすでに存在するようです。リセットしますか?(はい/いいえ)[いいえ]:
> いいえ
スキーマが含まれているようです。リセットしますか?(はい/いいえ)[いいえ]:
> いいえ
キャッシュをクリア中...
データベースが正常に設定されました。
Step 3 of 4: Administration setup.
----------------------------------
新しい管理ユーザーを作成しますか(推奨)?(はい/いいえ)[はい]:
> はい
ユーザー名 [wallabag]:
> navjot
パスワード [wallabag]:
>
メール [[email protected]]:
> [email protected]
管理が正常に設定されました。
Step 4 of 4: Config setup.
--------------------------
設定が正常に設定されました。
[OK] wallabagが正常にインストールされました。
[OK] ウェブサーバーを設定できます。詳細はhttps://doc.wallabag.orgを参照してください。
ディレクトリの権限をNginxに戻します。
$ sudo chown -R nginx:nginx /var/www/html/wallabag
ステップ9 - NginxとPHPの設定
PHP-FPMの設定
/etc/php/8.1/fpm/pool.d/www.confファイルを開きます。
$ sudo nano /etc/php/8.1/fpm/pool.d/www.conf
PHPプロセスのUnixユーザー/グループをnginxに設定する必要があります。ファイル内のuser=www-dataおよびgroup=www-data行を見つけて、nginxに変更します。
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
ファイル内のlisten.owner = www-dataおよびlisten.group = www-data行を見つけて、nginxに変更します。
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
PHP-FPMとPHP-CLIの実行時間を60秒に増やします。
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.1/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.1/cli/php.ini
PHP-FPMのメモリ制限を128MBから256MBに増やします。
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.1/fpm/php.ini
PHP-FPMサービスを再起動します。
$ sudo systemctl restart php8.1-fpm
PHPセッションディレクトリのグループをNginxに変更します。
$ sudo chgrp -R nginx /var/lib/php/sessions
Nginxの設定
/etc/nginx/conf.d/wallabag.confファイルを作成して開きます。
$ sudo nano /etc/nginx/conf.d/wallabag.conf
以下のコードを貼り付けます。
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wallabag.example.com;
access_log /var/log/nginx/wallabag.access.log;
error_log /var/log/nginx/wallabag.error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/wallabag.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wallabag.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/wallabag.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 8.8.8.8;
root /var/www/html/wallabag/web;
location / {
try_files $uri /app.php$is_args$args;
}
# Pass PHP Scripts To FastCGI Server
location ~ ^/app\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Depends On The PHP Version
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
include fastcgi_params;
internal;
}
location ~ \.php$ {
return 404;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name wallabag.example.com;
return 301 https://$host$request_uri;
}
Nginx設定で使用されるルートディレクトリは/var/www/html/wallabag/public/であることに注意してください。
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
/etc/nginx/nginx.confファイルを開きます。
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;の前に次の行を追加します。
server_names_hash_bucket_size 64;
Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Nginx設定ファイルの構文を確認します。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nginxサービスを再起動します。
$ sudo systemctl restart nginx
ステップ10 - Wallabagにアクセス
ブラウザでhttps://wallabag.example.comのURLを開くと、次のログイン画面が表示されます。

インストール中に作成した資格情報を入力し、LOG INボタンを押して続行します。Wallabagのダッシュボードが表示されます。

Wallabagは、リンクを追加するためのすべてのブラウザ、モバイル、またはEbookリーダー用の多数のアプリを提供します。そして、他に何も気に入らない場合は、ブックマークレットを使用することもできます。その詳細は、ダッシュボードの右上にあるユーザーアイコンをクリックしてHow toセクションからアクセスできます。

ブラウザ拡張機能、モバイルアプリ、Wallabagブックマークレットへのリンクが提供されます。

これで完了です。Wallabagを使用して後で読むための記事を保存できます。
結論
これで、Ubuntu 22.04サーバーにWallabagをインストールするためのチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。