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


コメント

このブログの人気の投稿

ubuntu18.04でカーネルのダウングレード

java apache commons io を使って文字コードを変換する方法

Android端末(OS:5.1.1,F-01H)でメール送信もできるWebサーバを作る