Help for running php as cli

software development

#1

Hi all.

I have procmail directing emails with certain subjects to a php script via a line similar to this in the procmailrc

| $HOME/blah/blah/script.php

i have chmodded the script to 755, and the shebang line of the script has the path given to me when i type in ‘which php’

however, after that the script dies.
viewing the procmail log
it says it gives it to the script, and everything is an unexpected error.
if i have <?php , it says ?php isn’t a directory
all lines after that are unexpected tokens.

any suggestions? i’ll post more specifics of people want them.


#2

In order to run a PHP script on the command line, you need to pipe your values through the PHP binary itself with the script as the argument:

| /path/to/php $HOME/blah/blah/script.php


#3

using the following recipie file:
| /usr/loca/bin/php $HOME/path/to/script

i get the following error logged:

/usr/local/bin/php: /usr/local/bin/php: No such file or directory

am i missing something with the piping?


#4

try double checking your pahts. I think it was just a type in this post, but your first typed “loca” instead of local. type “whereis php” to verifi it’s location on your server.

-Matttail


#5

turning on verbose logging showed that procmail was trying to execute 2 things
/path/to/php and /path/to/script

so i encaspulated the above line in quotes for

filter 0

:0

  • ^subject:.*appraisal
    | “/usr/local/bin/php -f $HOME/path/email_test2.php”

where email_test2.php is a script that will send an email to a hardcoded address when called. it runs fine calling it from php-cli

sending a test email to procmail gives the following in the log:

procmail: [1935] Tue May 24 11:39:07 2005
procmail: Assigning "SHELL=/bin/sh"
procmail: Match on "^subject:.*appraisal"
procmail: Assigning "LASTFOLDER=/usr/local/bin/php -f $HOME/path/email_test2.php"
procmail: Executing "/usr/local/bin/php -f $HOME/path/email_test2.php"
procmail: Notified comsat: "inhouseapps@:/usr/local/bin/php -f $HOME/path/email_test2.php"
From tansofun@fastmail.fm Tue May 24 11:39:07 2005
Subject: appraisal
Folder: /usr/local/bin/php -f $HOME/path/email_test2 1260
/usr/local/bin/php -f $HOME/path/email_test2.php: /usr/local/bin/php -f $HOME/path/email_test2.php: No such file or directory

the script, while it says is executed, never sends me an email to indicate it works.


#6

Well, simple; $HOME/path/email_test2.php doesn’t exsist. I think most likely the cause is $HOME isn’t set when this runs ($HOME is generally a shell thing, procmail isn’t executed within a shell, I believe).

Change your path to the fully qualified path and see if that works.


#7

that doesn’t work either.


#8

and it works for you on the command line? I don’t know what to say now… hrmm