カテゴリー: PC-OS-IT
CATEGORY ARCHIVE
WEBサーバーの異常をメールで知るためにLan内専用のメールサーバーを構築する事にした。
いろんなサイトを参考にしたが、"Job for dovecot.socket failed." が発生して手こずったので記録として残す。
環境・前提条件
OS : Raspberry pi OS (Buster)
SSL : letsencrypt
protocol : とりあえずエラーにならなかったもの
lan内に限るので、認証やsslは取り合えず行わない。また、当面メールボックスで行う
参考にしたサイト
Job for dovecot.socket failed. が発生することが多く、最終的に下記サイトを参考にした。
'https://qiita.com/bzy/items/6edc8cfe48cba3eacb18'
パラーメタの説明は、下記サイトが参考になる
' https://w.atwiki.jp/sanosoft/pages/155.html '
ユーザーの追加
sudo useradd user-name -s /sbin/nologin
sudo passwd user-name
パスワードを入れ間違えたときは
sudo passwd -d user-name でパスワード消去して登録しなおす
sudo mkdir /home/user-name
sudo chown user-name:user-name /home/user-name
postfixのインストール
ほとんど設定は上記サイトに従った。それゆえ詳細は上記サイトの方が詳しいです。
なお、aptでのインストール中の質問に対しては、 'http://memorandum.cloud/2020/09/22/メールサーバー構築postfixdovecot-raspberry-pi%EF%BC%88ラズベリーパイ/' を参考にした。
sudo apt install postfix
sudo nano /etc/postfix/main.cf
myhostname = mydomain.com
mydomain = mydomain.com
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
ポート番号を25から587に変更する
sudo nano /etc/postfix/master.cf
dovecotのインストール
sudo apt install dovecot-pop3d
sudo nano /etc/dovecot/dovecot.conf
disable_plaintext_auth = no
# Enable installed protocols
protocols=pop3
listen = *
sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
sudo nano /etc/dovecot/conf.d/10-master.conf
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
# port = 995
# ssl = yes
}
}
sudo nano /etc/dovecot/conf.d/15-mailboxes.conf
# NOTE: Assumes "namespace inbox" has been defined in 10-mail.conf.
namespace inbox {
inbox = yes # <- この部分を追加
再起動
sudo systemctl restart postfix
sudo systemctl restart dovecot
一応、これでようやく動いた (いろいろ行ったので一部記入もれあるかも)
postfixとdovecotを動かすのが大変だったのでtelnetを入れ、テストに使う
想定環境
telnetで接続される側: raspberry pi OS
コマンド投入端末側 : windows
試験する機能 : raspberry piにインストールしたpostfix 及び dovecotによるメール機能
telnetサーバーのインストール
windows側でtelnetクライアント有効化
コントロールパネルの「プログラムと機能」の中から、「windowsの機能の有効化または無効化」を選び、その中から「telnetクライアント」を有効化する
送信機能の確認(postfix)
telnet raspiのIPアドレス ポート番号で開始する
mail from: 送信元メールアドレス
rcpt to: 送信先アドレス
data
blablabla
.
quit
の順で行う
telnet 192.168.1.234 587
mail from: sender@mydomain
rcpt to: receiver@mydomain
data
blablabla
.
quit
受信機能の確認(dovecot)
telnet raspiのIPアドレス ポート番号 で接続
user 受信者のメイルアカウント
pass パスワード
list
retr メイル番号
quit
telnet 192.168.1.234 110
user receiver
pass password
list
retr 2
quit
昨日まで出来ていたのに段落ブロックや整形済みブロックにテキストの貼り付けができなくなった。
朝、function.phpを少し変更したので、元に戻してみたり再起動も試したがそれでも同じ。ネットで検索しても該当するものが見当たらない。IEからChoromeに変えたらできたという記事があったので、Microsoft EdgeからFirefoxに変えてみたところコピペ機能復活。 理由は不明。
サーバー変更してletsencryptを引っ越しました。
raspberry piで組んでいたWordPressのサーバーを変更しましたので、その際の備忘録です。
旧環境と新環境
旧環境: raspberry pi 3 B+ + raspbean(wheezy) + apache
新環境: raspberry pi 4 (4GB) + raspberry OS(Buster) + apache
参考にしたサイト
方針やコマンド等は下記を参考にさせていただいた。
http://www.ubuntu-perl-web.com/blog/20200619081050.html
https://blog.fileshelfplus.com/vps/280
参考にさせていただいたサイトによると、/etc/letsencrypt を旧環境から新環境にそのまま移せばよさそうだったので、その様にした。
旧環境での準備(/etc/letsencryptを固める)
sudo tar cfv letsencrypt.tar.gz /etc/letsencrypt
固めたファイルは新環境に移しておく
新環境でのletsencryptの準備
sudo apt install certbot
sudo apt install python-certbot-apache
/etc/letsencryptの展開
sudo tar xfv letsencrypt.tar.gz
SSLの有効化
有効化は下記サイトを参考にした
https://qiita.com/HO_Pollyanna/items/aee45b25e2318d39157b
sudo apt install certbot
sudo apt install python-certbot-apache
confファイルの調整
sudo nano /etc/apache2/sites-enabled/default-ssl.conf
1.Document rootの調整
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
2. pemファイルの指定(SSLEngine on の後ろに追加:sample.comの部分を書き換える)
SSLCertificateFile /etc/letsencrypt/live/sample.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sample.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/sample.com/chain.pem
apache再起動
sudo systemctl restart apache2
PHP version up from PHP7.3 to PHP7.4 by WordPress request
WordPressの管理画面からPHPをPHP7.4へバージョンアップしろと怒られたので、PHPをPHP7.3からPHP7.4へ更新したのでその記録です。OSはRaspberry OS、ブラウザはApacheです。
環境
OS: Raspberry OS (Buster)
Brawser: Apache2
WordPress: Version 5.4
PHP: PHP7.3
Step1: PHP更新用のリポジトリーを登録する
どのリポジトリーが良いのかわからなかったけど、https://emc-craft.xyz/raspberrypi/php74-inst/ を参考にしてpackages.sury.org を登録した。
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
Step2: PHPを更新する
PHP7.3の時は、php-mbstringでインストールしたが今回それで行うとphp8.0-mbstringがインストールされ、まだダメとWordPressに怒られる。従って、php7.4-mbstringと指定すること。
sudo apt remove php*
sudo apt install php7.4
sudo apt install php7.4-zip php7.4-mysql php7.4-xml php7.4-gd php7.4-curl
sudo apt install php7.4-mbstring
Step3: Apache2の設定を更新する
これを行っていないと、WordPressからPHP7.3だと怒られる。
sudo a2dismod php7.3
sudo a2enmod php7.4
Step4: php.iniを再設定する
php.iniの設定値は、https://www.javadrive.jp/php/install/index8.html のサイトに従った。
sudo nano /etc/php/7.4/apache2/php.ini
下記を設定
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_detection = Off
Step5: Apacheを再起動する
sudo systemctl restart apache2
それに伴い、過去の投稿が無くなっていたり変更があります。
変更の経緯
Raspberry piで運用していたためSDカードの寿命が心配なのと、旧い版数なのでSD copierが使えずバックアップも取れないこと、スパムが多いため対応をしたいというのが理由でした。
主な変更
raspberry pi 3 B から raspberry pi 4 B へ変更
raspbian(wheezy) から raspberry OS (buster)へ変更
クラシックエディターからGutenbergに変更
テーマをtwentyfourteenから、自作のテーマへ変更
などです。
手こずった点などを記録として残す。
物の準備
raspberry pi 4 + SSD で運用しようとした。 手順を誤ったため不必要な物まで購入するはめになってしまった。
- raspberry pi 4 4B (4GB) 6069円
- SDHCカード
- アーマー金属ケース パッシブ冷却 1590円
- HDMI-microHDMIケーブル (ヘッドレスインストールの仕方を先に確認しておけば購入しなくともよかったのに・・・)
- 電源アダプター(5V3A対応) ※なかなか売っていなくて時間がかかった。本体と一緒にネットで購入するほうが時間的にも価格的にも良い。
- ポータブルSSD (不良品で途中からエラー頻発。保証書で交換してもらった。交換後は問題なし)
- LAN用スイッチングHub ( wordpress移行中に2つのサーバーを同時に使用するため必要)
(検品:やらずやり直しの羽目になってしまった)
SSDに問題ないか購入後確認する。
別のubuntu OSのPCから、
sudo badblocks -s -v /dev/sdc
にてリードエラーがないかを確認する。 なお、sdcは適宜合わせる。
SSDブートまでもっていく
※SDHCカードを作ってからSSDにコピーしたが、今は、直接SSDに書き込めるようである。
- Raspi imagerを、https://www.raspberrypi.org/software/ からdownloadする
- (SDHCに書き込む)
- (SDHCからブートし、立ち上げ中に出てくる質問等に答えて立ち上げる)
- (SSHを有効にする)
- (xrdpをインストールする)
sudo apt install xrdp - SSDを取り付けて、SD copierでSSDに書き込む
- (power offし、SDHCを抜き)SSDから立ち上げる
- ※ SSDに直接書き込んだ場合は、この後、SSH有効化及びxrdpのinstallする。
- これ以降、HDMIインターフェイス及びキーボード、マウスの直結は不要となる。