スポンサーリンク

ミニPC+Ubuntu+Nginx+RoundCubeでWebメーラーを構築する

Ubuntu
スポンサーリンク

先日、ミニPCにメールサーバーを構築しました。

今回はメールをブラウザで見れるようにする、RoundCubeをインストールしてWebメーラーを構築します(GMailみたいなやつ)。

なお、WebメーラーはSSLでアクセスします。

Nginxのインストール(インストール済みなら不要)

Nginxのインストールですが、こちらの記事を参考にさせていただきました。

Ubuntu22.04 nginx最新の安定版をインストールする - Qiita
概要2022/08/11現在最新の安定版のバージョンは1.22.0ですが、リポジトリ追加していないUbuntu22.04でsudo apt install nginxを実行すると1.18.0がイン…

ここでは、コマンドラインを簡単にまとめておきます。

必要なパッケージをインストール。

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」ダウンロード。

Roundcube Webmail Downloads
Free and open source webmail software for the masses, written in PHP

今回は、「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を作成する。

ドメイン名、ポート番号は各自読み替えてください。

listen7000 ssl外部からアクセスできるポート番号
server_nameevening-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 Serverlocalhost
Database Nameroundcube
Database user nameuser-name
Database passwordpass-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で登録しているユーザー名、パスワードです。

試しに、テスト送信してみる。

こちらのサイトを参考にさせていただきました。

Postfix + Dovecot + RoundCubeでメールサーバーをつくろう - Qiita
メールサーバー、欲しいですよね?最近インターネット回線を変えたところOP25Bがなくなったので、じゃあメールサーバー立てようということで書いています。SSL/TLS認証、SPF、DKIM対応のメ…
Install Roundcube Webmail on Ubuntu 22.04/20.04 with Apache/Nginx
Roundcube is a free open-source webmail client written in PHP. This tutorial shows you how to install Roundcube webmail ...

412は在庫切れ、N150が販売中です。

第12世代インテルTwin Lake-N150 mini pc GMKtec G3 Plusミニpc 最大周波数3.6GHz 4コア/4スレッド DDR4 8GB+256GB SSD /高速2.5G有線LA/WIFI6/BT5.2 TDP 6W 小型pc M.2 2280 NVMe(PCIe3.0)ミニパソコン VESA対応 4K静音性 2画面同時出力 Windows 11 Pro

コメント

タイトルとURLをコピーしました