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とかではだめ、自分自身の所有で読み込みと書き込みだけ付与)。 #しないとmsmt