| 
 
 
 | 
| Keep Server Online 
 If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
 
 or
 
 
   
 A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
 
 Thank You! Steffen
 
 Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
 |  | 
 | 
| | 
| | 
|  Topic: can't popen to exim |  |  
| Author |  |  
| jobeard 
 
 
 Joined: 29 May 2015
 Posts: 2
 Location: SoCal
 
 | 
|  Posted: Fri 29 May '15 18:44    Post subject: can't popen to exim |   |  
| 
 |  
| Works as php program, but doesn't when invoked within a webpage.  Here's the synopsis: 
 Platform:
 Win/7 Pro Sp1
 Apache 	2.4
 Php	5.6
 Cygwin emulator gives Linux/Unix emu and has
 Exim 	4.84-1 (alternative to sendmail)
 
 program: sendit.php
 
  	  | Code: |  	  | hndl popen( exim ... ) fwrite(hndle, email_headers);
 fwrite(hndle, email_body);
 fflush(hndle);
 fclose(hndle);
 | 
 (a)launch from user account
 
 	php sendit.php	-> exim/exim_main.log updated
reports 368 bytes sent to exim
 -> email arrives
 >> demonstrates sendit.php works & Exim config and permissions are correct
 
 (b)launch from apache account  uid(apache) gid(srvc)
 
 	php sendit.php	-> exim/exim_main.log updated
reports 368 bytes sent to exim
 -> email arrives
 >> demonstrates sendit.php runs from any account
 
 (c)launch from within a web page
 Apache is run from its own uid/gid as in (b)
 page.phtml
 
 		sendit.php
-> NO update to exim log
 -> no mail recv'd
 reports same NNN bytes send to exim
 *NO* I/O errors
 
*I* fwriting_stream 368 bytes ...
 *** wrote body fragment 368
 *** wrote total 368
 *I* Wrote Body:(368) of 368
 *I* Wrote EOT(5) of 5
 *I* FLUSHING pipe
 *I* closing pipe
 *I* is closed pipe
 *I* returning 3
 
 adding -d+deliver+host_lookup+lookup+rewrite options to the popen(), yields nice trace - -
 EXCEPT when run withing Apache - - nothing shows up
 
 Apache cfg has ExecCGI in the directory and other php / perl programs run there.
 Issue is Exim is not within the Apache environment (/usr/bin/exim)
 
 So, created link /usr/bin/exim -> docroot/exim
 and reference this instance  popen(docroot/exim ...)
 
 Still fails to deliver via pipe -> exim
 
 Any ideas???
 |  |  
| Back to top |  |  
| James Blond Moderator
 
  
 Joined: 19 Jan 2006
 Posts: 7442
 Location: EU, Germany, Next to Hamburg
 
 | 
|  Posted: Sat 30 May '15 20:18    Post subject: |   |  
| 
 |  
| Are your php.ini settings the same on the command line as when you run it on apache? |  |  
| Back to top |  |  
| jobeard 
 
 
 Joined: 29 May 2015
 Posts: 2
 Location: SoCal
 
 | 
|  Posted: Sat 30 May '15 21:33    Post subject: |   |  
| 
 |  
| absolutely 	  | James Blond wrote: |  	  | Are your php.ini settings the same on the command line as when you run it on apache? | 
 
 #STATUS: SOLVED 2015-05-30
 Issue is Windows + Cygwin pathing
 
 PHP tolerates Cygwin as $PATH is available.
 Running within
 Apache LoadModule php5_module "c:/php/php5.6/php5apache2_4.dll" does not
 
 Must use an absolute WINDOWS path like
 c:/cygwin/bin/exim-4.84-1.exe within the server.
 
 php cmdPath_Tests.php
 
 uses file_exists($path) exec to
 find that path usable within Apache
 
 Jeff@JeffPC7%
 case 0 0
 $ ls -l /usr/bin/exim
 lrwxrwxrwx 1 Administrator None 24 Apr  6 09:19 /usr/bin/exim -> /usr/bin/exim-4.84-1.exe
 
 Jeff@JeffPC7%
 $ ls -l /usr/bin/exim /cygwin/bin/exim{,-4.84-1}.exe c:/cygwin/bin/exim-4.84-1.exe
 case 1 1
 ls: cannot access /cygwin/bin/exim.exe: No such file or directory
 ls: cannot access /cygwin/bin/exim-4.84-1.exe: No such file or directory
 lrwxrwxrwx 1 Administrator None 24 Apr  6 09:19 /usr/bin/exim -> /usr/bin/exim-4.84-1.exe
 
 case 3 1
 -rwxr-xr-x 3 Jeff          None 1192467 Jan 25 19:16 c:/cygwin/bin/exim-4.84-1.exe
 
 /usr/bin/exim
 0 0 /usr/bin/exim
 
 /usr/bin/exim-4.84-1.exe
 0 1 /usr/bin/exim-4.84-1.exe
 
 which: no exim-4.84-1.exe in (/cygwin/bin)
 1 1 File Exists
 <br> cmd 1 1 /cygwin/bin/exim-4.84-1.exe
 results: <NOTHING>
 
 /usr/bin/exim-4.84-1.exe
 2 1/usr/bin/exim-4.84-1.exe
 
 <br>*I* found: 3 1 c:/cygwin/bin/exim-4.84-1.exe
 <br> cmd results:
 2015-05-30 11:58:24 NP6FDA-000530-QD Completed
 ie: email sent
 |  |  
| Back to top |  |  
 
 | 
 |  | 
 |  |