Thanks for your reply. yes.same machine.i do get an access log entry from apache access log file but no error log. # sestatus SELinux status: disabled # /usr/local/php5.3.28/bin/php a.php |grep sendmail sendmail_from => no value => no value sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i Path to sendmail => /usr/sbin/sendmail -t -i FROM BROWSER: sendmail_from no value no value sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i Path to sendmail /usr/sbin/sendmail -t -i On Mon, Aug 24, 2015 at 10:26 AM, Richard <replies-lists-e7x6-php@xxxxxxxxxxxxxxxxxxxxx> wrote: > Are you certain you are on/hitting the same machine for your php CLI > script run and your browser instance? E.g., are you seeing http > access_log entries for the "test_mail.php" browser attempt on the > same machine where you are seeing maillog entries for your > (successful) CLI runs? > > I don't have a centos-6.5 machine, so it's possible that more is > being logged on my 6.7 machine, but with selinux enabled, I'm > getting 6-7 maillog lines, including: > > Aug 23 13:48:28 xxx sendmail[2138]: t7NDmSYo002138: > SYSERR(apache): queueup: cannot create queue file > ./qft7NDmSYo002138, euid=48, fd=-1, fp=0x0: Permission denied > > for the browser attempts on that script. > > What shows in the selinux/config file isn't definitive. Instead of > showing the contents of that file, issue the command "sestatus" > (with no options) to see the various status indicators. You should > see the following: > > SELinux status: > SELinuxfs mount: > Current mode: > Mode from config file: > > The values shown for first and third lines are the relevant ones for > your system's current status. > > By the way, what is shown in the phpinfo() output -- for both the > CLI and browser -- for: > > sendmail_path > Path to sendmail > > >> Date: Monday, August 24, 2015 08:54:24 +0800 >> From: Xinhao Zheng <xinhaozheng@xxxxxxxxx> >> >> Thanks for your reply. >> >># sestatus -b | grep sendmail >> get nothing >> >># cat /etc/selinux/config >> >># This file controls the state of SELinux on the system. >># SELINUX= can take one of these three values: >># enforcing - SELinux security policy is enforced. >># permissive - SELinux prints warnings instead of enforcing. >># disabled - No SELinux policy is loaded. >> SELINUX=disabled >># SELINUXTYPE= can take one of these two values: >># targeted - Targeted processes are protected, >># mls - Multi Level Security protection. >> SELINUXTYPE=targeted >> >>>>>> If you aren't seeing anything on these (both success and >>>>>> failure) i >> if i try to send email from command line,i do get mail log from >> /var/log/maillog but no if i try to send from browser. >> >> >> On Sun, Aug 23, 2015 at 10:47 PM, Richard wrote: >>> The issue is that when you do this through the CLI you are running >>> as a normal user. When you call this script/page via a browser >>> it's running as the httpd server. On my centos-6.7, php-5.3.3 >>> (you should really upgrade) system the latter approach is being >>> blocked by selinux. >>> >>> Did you run the: >>> >>> sestatus -b | grep sendmail >>> >>> command as suggested earlier? When I do I get: >>> >>> httpd_can_sendmail off >>> >>> on my centos system, with selinux "enforcing". When I disable >>> selinux, sending via the browser call to the script works. >>> >>> I.e., there are no bugs here -- just a system configuration issue. >>> >>> If you aren't seeing anything on these (both success and failure) >>> in your maillog I suspect that you aren't looking at the correct >>> log. You need to make certain that you are looking at, and taking >>> actions on, the correct environment. >>> >>> [please **DO NOT** include my email address in your reply. i'm on >>> the list and get the messages just fine that way.] >>> >>> >>> ------------ Original Message ------------ >>>> Date: Sunday, August 23, 2015 10:35:35 +0800 >>>> From: Xinhao Zheng <xinhaozheng@xxxxxxxxx> >>>> >>>> yes.reboot with no luck. >>>> >>>> one more thing,i run apache as reverse proxy,the frontend is >>>> nginx.but i think this has nothing to do with mail function. >>>> >>>> there is no log in apache error log,neither in /var/log/maillog. >>>> so any other idea. >>>> i googled a lot, tweak sendmail config, check the user perm .... >>>> >>>> somebody said this may be a bug in php5.3.28? >>>> >>>> >>>> >>>> >>>> On Sun, Aug 23, 2015 at 10:19 AM, Xinhao Zheng >>>> <xinhaozheng@xxxxxxxxx> wrote: >>>>> # cat /etc/redhat-release >>>>> CentOS release 6.5 (Final) >>>>> >>>>> >>> < snip > >>>>> >>>>> i tried chmod 777 to sendmail with no lucky shot. it seems >>>>> apache is not allow to send mail. >>>>> >>>>> >>>>> On Sun, Aug 23, 2015 at 9:56 AM, Aziz Saleh >>>>> <azizsaleh@xxxxxxxxx> wrote: >>>>>> >>>>>> >>>>>> >>>>>> On Sat, Aug 22, 2015 at 9:53 PM, Xinhao Zheng >>>>>> <xinhaozheng@xxxxxxxxx> wrote: >>>>>>> >>>>>>> i tried that.SElinux is off. >>>>>>> thanks! >>>>>>> >>>>>>> On Sun, Aug 23, 2015 at 9:45 AM, Aziz Saleh >>>>>>> <azizsaleh@xxxxxxxxx> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Sat, Aug 22, 2015 at 9:31 PM, Xinhao Zheng >>>>>>>> <xinhaozheng@xxxxxxxxx> wrote: >>>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> Thanks for help. >>>>>>>>> >>>>>>>>> i am sure they share the same config file. >>>>>>>>> /usr/local/php5.3.28/bin/php --ini shows >>>>>>>>> /usr/local/php5.3.28/etc/php.ini and phpinfo page show same >>>>>>>>> config file >>>>>>>>> >>>>>>>>> yes,i run same file. >>>>>>>>> >>>>>>>>> command line => /usr/local/php5.3.28/bin/php >>>>>>>>> /path/to/webroot/test_mail.php web browser => >>>>>>>>> http://IP/test_mail.php >>>>>>>>> >>>>>>>>> source code of test_mail.php >>>>>>>>> >>>>>>>>> <?php >>>>>>>>> define('DEBUG_MODE',1); >>>>>>>>> if (defined('DEBUG_MODE') ) { >>>>>>>>> error_reporting(E_ALL); >>>>>>>>> ini_set('display_errors',TRUE); >>>>>>>>> ini_set('error_log','/tmp/log_php'); >>>>>>>>> ini_set('log_errors',TRUE); >>>>>>>>> } >>>>>>>>> >>>>>>>>> $message = "Line 1\nLine 2\nLine 3" . date('Y-m-d') . ' unix >>>>>>>>> timestamp ' . time(); >>>>>>>>> $message = wordwrap($message, 70); >>>>>>>>> $ok = mail('mail1@xxxxxxxxx', 'My Subject' . date('Y-m-d') . >>>>>>>>> ' meeting', $message); >>>>>>>>> var_dump($ok); >>>>>>>>> $ok = mail('mail2@xxxxxxxxx', 'My Subject' . date('Y-m-d') . >>>>>>>>> ' meeting', $message); >>>>>>>>> var_dump($ok); >>>>>>>>> >>>>>>>>> ?> >>>>>>>>> >>>>>>>>> On Sun, Aug 23, 2015 at 12:19 AM, Richard wrote: >>>>>>>>> >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > > Date: Saturday, August 22, 2015 09:51:45 -0400 >>>>>>>>> > > From: Aziz Saleh <azizsaleh@xxxxxxxxx> >>>>>>>>> > > >>>>>>>>> > > On Sat, Aug 22, 2015 at 5:50 AM, Xinhao Zheng >>>>>>>>> > > <xinhaozheng@xxxxxxxxx> wrote: >>>>>>>>> > > >>>>>>>>> > >> Hello, >>>>>>>>> > >> >>>>>>>>> > >> i got a prolem.php mail() function can not send >>>>>>>>> > >> email from http request(apache),but it work well if >>>>>>>>> > >> i call it from command line. >>>>>>>>> > >> >>>>>>>>> > >> /usr/local/php5.3.28/bin/php test_mail.php >>>>>>>>> > >> => ok http://ip/test_mail.php => >>>>>>>>> > >> failed. >>>>>>>>> > >> >>>>>>>>> > >> i check both apache error log and /var/log/maillog,but >>>>>>>>> > >> nothing get there. i am running php5.3.28 over apache >>>>>>>>> > >> as module. with phpinfo and this command, >>>>>>>>> > >> /usr/local/php5.3.28/bin/php --ini , i am sure they use >>>>>>>>> > >> same php config file.i also tried to turn off the >>>>>>>>> > >> iptable,but no lucky shot. >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > >> >>>>>>>>> > > Use phpinfo() to confirm they are using the same >>>>>>>>> > > configs. >>>>>>>>> > >>>>>>>>> > Are you accessing the same "test_mail.php" page/code in >>>>>>>>> > both cases? If so, I really wouldn't expect it to work as >>>>>>>>> > the environments are totally different. >>>>>>>>> > >>>>>>>>> > Show your code. >>>>>>>>> > >>>>>>>>> > By the way, if you aren't generating a message (nothing in >>>>>>>>> > /var/log/maillog) then mucking with iptables will have no >>>>>>>>> > effect. >>>>>>>>> > >>>>>>>> >>>>>>>> Try running: >>>>>>>> >>>>>>>> sestatus -b | grep sendmail >>>>>>>> >>>>>>>> from command prompt, you are probably using SELinux and have >>>>>>>> httpd_can_sendmail set to off, in which case you can send >>>>>>>> mail via CLI but not Apache. >>>>>>> >>>>>>> >>>>>> >>>>>> I have ran into issues in the past where if I disabled SELinux, >>>>>> I had to restart the server for it to take effect, not sure if >>>>>> it is the same issue on your end, but wouldn't hurt to try if >>>>>> you haven't. >>> >>> ------------ End Original Message ------------ > > ------------ End Original Message ------------ > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php