先日、ミニPCにメールサーバーを構築しました。
今回はメールをブラウザで見れるようにする、RoundCubeをインストールしてWebメーラーを構築します(GMailみたいなやつ)。
なお、WebメーラーはSSLでアクセスします。
Nginxのインストール(インストール済みなら不要)
Nginxのインストールですが、こちらの記事を参考にさせていただきました。

ここでは、コマンドラインを簡単にまとめておきます。
必要なパッケージをインストール。
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
リポジトリの追加。
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Nginxのインストール。
sudo apt update
sudo apt install nginx
起動。
sudo systemctl start nginx
sudo systemctl status nginx
SSLサーバー証明書(Let’s Encrypt)の取得(取得済みなら不要)
当ブログのドメインのSSLサーバー証明書をLet’s Encryptで取得します。
certbotのインストール
sudo apt-get install certbot
証明書の発行(evening-network.server-on.netはドメイン名適宜、置き換えてください)
sudo certbot certonly --standalone -d evening-network.server-on.net
証明書の自動更新。cronで自動化。
sudo crontab -e
以下を追加。
# Renew the Let's Encrypt SSL certificates at 3:00 AM on the 1st of every month
00 03 01 * * sudo systemctl stop nginx; sudo certbot renew; sudo systemctl start nginx
証明書は、
/etc/letsencrypt/live/evening-network.server-on.net/ の下に配置されます。
PHPのインストールと設定(インストール済みなら不要)
PHPをインストールします。
バージョンを指定する場合。今回は8.0。
sudo apt update
sudo apt install php8.0-cli php8.0-mbstring php-pear php8.0-fpm php8.0-mysql php8.0-curl php8.0-dom php8.0-imagick php8.0-zip php8.0-intl
/etc/php/8.0/fpm/php.ini を修正
upload_max_filesizeを2Mから128Mに変更。
post_max_sizeを8Mから128Mに変更。
upload_max_filesize = 128M
post_max_size = 128M
etc/php/8.0/fpm/pool.d/www.conf を修正
変更前
user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
;listen.mode = 0660
変更後
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
apache2を削除する(今回はNginxを使用するため)。
sudo apt remove apache2 -y
sudo apt purge apache2 -y
sudo rm -rf /etc/apache2
MySQLのインストールと設定(インストール済みなら設定のみ)
インストール
sudo apt install mysql-server mysql-client -y
rootユーザーで設定を行う。
sudo mysql -u root -p
パスワードは任意。
次にデータベースを作成する。
下記のようにしたとき、
データベース名 | roundcube |
ユーザー名 | user-name |
パスワード | pass-word |
以下のコマンドを実行する。
すでにユーザー登録していて、同じユーザー名にする場合はCREATE USERは省略可能。
CREATE DATABASE roundcube CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'pass-word';
GRANT ALL ON roundcube.* to 'user-name'@'localhost';
exit
RoundCubeのインストール
RoundCubeを以下のサイトから「Complete」ダウンロード。
今回は、「roundcubemail-1.6.10-complete.tar.gz」
インストール場所は、「/var/www」の下。
あらかじめ、「/var/www」の下に、「roundcubemail-1.6.10-complete.tar.gz」おいておく。
解凍。
cd /var/www
sudo tar zxvf roundcubemail-1.6.10-complete.tar.gz
ディレクトリ名の変更。
sudo mv roundcubemail-1.6.10 roundcube
権限変更。
sudo chown -R nginx:nginx /var/www/roundcube
RoundCubeのテンプレートをSQLへインポート。
「roundcube」はデータベース名。
sudo mysql roundcube < /var/www/roundcube/SQL/mysql.initial.sql
nginx .conf ファイル作成
/etc/nginx/conf.d に roundcube.confを作成する。
ドメイン名、ポート番号は各自読み替えてください。
listen | 7000 ssl | 外部からアクセスできるポート番号 |
server_name | evening-network.server-on.net | ドメイン名 |
root | /var/www/roundcube/ | roundcubeがある場所 |
ssl_certificate | /etc/letsencrypt/live/evening-network.server-on.net/fullchain.pem | サーバー証明書 |
ssl_certificate_key | /etc/letsencrypt/live/evening-network.server-on.net/privkey.pem | サーバー証明書 |
server_name はWordpressをインストールしているIPアドレスを設定する。ここでは、192.168.100.55。
server {
listen 7000 ssl;
server_name evening-network.server-on.net;
root /var/www/roundcube/;
index index.php index.html index.htm;
error_log /var/log/nginx/roundcube.error;
access_log /var/log/nginx/roundcube.access;
ssl_certificate /etc/letsencrypt/live/evening-network.server-on.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/evening-network.server-on.net/privkey.pem;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.well-known/acme-challenge {
allow all;
}
location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(bin|SQL)/ {
deny all;
}
# A long browser cache lifetime can speed up repeat visits to your page
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
}
ファイルチェック。ここでエラーが出たら修正する。
sudo nginx -t
再起動。
sudo systemctl restart nginx
ブラウザでインストール設定
ここから、ブラウザでインストール設定します。
「https://evening-network.server-on.net:7000/installer」へアクセス。
ドメイン名、ポート番号は各自読み替えてください。
「NOT OK」がないこと。

「NEXT」ボタンを押下。
DataBaseSetup
(MySQLの設定を入力する)
Database Server | localhost |
Database Name | roundcube |
Database user name | user-name |
Database password | pass-word |

IMAP
imap_host
ssl://evening-network.server-on.net:993

SMTP
smtp_host
ssl://evening-network.server-on.net:465

言語設定
language 「ja_JP」

「Continue」を押下。
各項目がOKになっていること。NGの時は、「2. Create config」を押下して再設定する。

このConfigファイルは、
/var/www/roundcube/config/config.inc.php
にある。
ブラウザでログイン
引き続き、ブラウザでログインします。
「https://evening-network.server-on.net:7000/」へアクセス。
ドメイン名、ポート番号は各自読み替えてください。

ログイン名はUbuntuで登録しているユーザー名、パスワードです。

試しに、テスト送信してみる。
こちらのサイトを参考にさせていただきました。


412は在庫切れ、N150が販売中です。
コメント