Ubuntu22.04にてapache+php+msmtprcをインストールしてphpからメールを送信できなかった。error.logを確認し対処したときのメモ
<前提>
・Ubuntu22.04
・以下のコマンドにて、apache+php+msmtprcをインストールしている場合
sudo apt install apache2
sudo apt install -y php
systemctl restart apache2
・msmtprcの設定ファイルは、/etc/msmtprcに配置している
・php.iniには以下のsendmailのパスを設定
[mail function]
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -t"
</var/log/apache2/error.logに出力されていた内容>
msmtp: /etc/msmtprc: Permission Denied
msmtp: /etc/msmtprc: contains secrets and therefore must have no more than user read/write permissions
<設定コマンド>
※以下rootユーザにて作業しています。
#rootユーザで/root/.msmtprc に設定ファイルを格納しておく
#設定ファイルのコピー
cp -p /root/.msmtprc /etc/msmtprc
#所有者はwww-data.www-dataにする。しないと
#しないとmsmtp: /etc/msmtprc: Permission Deniedになる
#所有者名の確認は、/etc/apache2/apache2.confのUserやGroupを確認する
#/etc/apache2/envvarsに
#export APACHE_RUN_USER=www-data
#export APACHE_RUN_GROUP=www-data
#の記載があるので確認する
chown www-data.www-data /etc/msmtprc
#権限は600にすること(777とかではだめ、自分自身の所有で読み込みと書き込みだけ付与)。
#しないとmsmtp: /etc/msmtprc: contains secrets and therefore must have no more than user read/write permissionsになる
chmod 600 /etc/msmtprc
コメント
コメントを投稿