Syslog i b

Konfiguracja serwerów, usług, itp.
Norton
Posty: 2
Rejestracja: 10 grudnia 2010, 21:36

Syslog i błąd facility name, jak to skonfigurować?

Post autor: Norton »

  1. Mam plik phpmaillog

    Kod: Zaznacz cały

    #!/bin/sh
    logger -p mailphp.info wrapper-php: site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, pwd=${PWD}, uid=${UID}, user=$(whoami)
    
    Chcę zrobić sobie logi dla funkcji mail() z php, jednak mam problem z facilityname.

    Kod: Zaznacz cały

    ./phpmaillog
    logger: unknown facility name: mailphp.
    
    Kombinowałem z syslog-ng.conf i dodałem:

    Kod: Zaznacz cały

    destination df_mailphp { file ("/var/log/mailphp.log"); };
    filter f_mailphp { facility(mailphp); };
    
    # mailphp.*                  /var/log/mailphp.log
    log {
           source(s_all);
           filter(f_mailphp);
           destination(df_mailphp);
    };
    
    

    Jednak przy restarcie mam błąd:

    Kod: Zaznacz cały

    Stopping system logging: syslog-ng.
    Starting system logging: syslog-ngWarning: Unknown facility; facility='mailphp'
    
    Jak zdefiniować/dodać do loggera to moje facility>
  2. Chcę po prostu zapisywać dane do osobnego pliku, kombinowałem też z PHP phpmailwrapper.php.

    Kod: Zaznacz cały

    #!/usr/bin/php
    <?php
    
    $logfile = 'mail.form';
    
    //* Write the log
    file_put_contents($logfile, date('Y-m-d H:i:s').' HTTP_HOST='.$_SERVER['HTTP_HOST'].' '.$_ENV['PWD'].' '."\n", FILE_APPEND);
    ?>
    
    Ale działa tylko przy ręcznym wywołaniu, odwołuje się do tego pliku z PHP.INI ścieżka dla sendmaila.

    Kod: Zaznacz cały

    sendmail_path  = /usr/local/bin/phpmailwrapper.php
    Przy wysyłaniu poczty z php za pomocą mail() powinien ten plik się wykonać i stworzyć plik mail.form ale tak się nie dzieje.
Czy ktoś robił coś podobnego?
ODPOWIEDZ