|
01-13-2005, 03:32 PM | #1 |
Green Mole
Join Date: May 2004
Posts: 25
|
command line and ABSOLUTE_SCRIPT_PATH
I've had phpdig up and running on my site for a while, but I've gotten tired of manully spidering, so I decided to look into setting up cron -- which largely appears to be really easy, bravo!
The problem I'm running into is that php spits out a bunch of include warnings when I try to run from the command line... I've no idea why, though I'm pretty sure I've got it set up properly. My config.php looks like: define('ABSOLUTE_SCRIPT_PATH','/Library/WebServer/Documents/tools/phpdig'); if ((!isset($relative_script_path)) || (($relative_script_path != ".") && ($relative_script_path != "tools/phpdig") && ($relative_script_path != "..") && ($relative_script_path != ABSOLUTE_SCRIPT_PATH))) My search.php isn't located in my phpdig directory, obviously. Anyway, these settings have everything on the website working well. But when I try the following from the command line [yep, I know php's in a slightly unusual place]: /usr/local/php/bin/php -f /Library/WebServer/Documents/tools/phpdig/admin/spider.php http://www.mydomain.com I get the following output: PHP Warning: main(../includes/config.php): failed to open stream: No such file or directory in /Library/WebServer/Documents/tools/phpdig/admin/spider.php on line 91 PHP Warning: main(): Failed opening '../includes/config.php' for inclusion (include_path='.:/usr/local/php/lib/php') in /Library/WebServer/Documents/tools/phpdig/admin/spider.php on line 91 PHP Notice: Use of undefined constant USE_RENICE_COMMAND - assumed 'USE_RENICE_COMMAND' in /Library/WebServer/Documents/tools/phpdig/admin/spider.php on line 93 PHP Warning: main(../admin/robot_functions.php): failed to open stream: No such file or directory in /Library/WebServer/Documents/tools/phpdig/admin/spider.php on line 112 PHP Warning: main(): Failed opening '../admin/robot_functions.php' for inclusion (include_path='.:/usr/local/php/lib/php') in /Library/WebServer/Documents/tools/phpdig/admin/spider.php on line 112 PHP Fatal error: Call to undefined function: phpdigprnmsg() in /Library/WebServer/Documents/tools/phpdig/admin/spider.php on line 128 Which seem like the kind of messages I might get if I had ABSOLUTE_SCRIPT_PATH incorrectly set. But I've looked at it a million times and retyped it and I swear it's correct. Any idea what I'm doing wrong here? Thanks for your help. Last edited by drywall; 01-13-2005 at 03:35 PM. |
01-13-2005, 03:56 PM | #2 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
The output is saying that PHP cannot find various files for inclusion WRT this location:
Code:
/Library/WebServer/Documents/tools/phpdig/admin/spider.php PHP Code:
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-13-2005, 07:25 PM | #3 |
Green Mole
Join Date: May 2004
Posts: 25
|
whoops
Okay, so you got me... I was actually trying to obscure a little bit the actual path I'm using (just paranoia on my part about disclosing full directory structures). Made the change in what I posted as config but not in the php warnings. But the cat's out of the bag, so I might was well confess... *actual* config.php:
define('ABSOLUTE_SCRIPT_PATH','/Library/WebServer/Documents/tools/phpdig'); if ((!isset($relative_script_path)) || (($relative_script_path != ".") && ($relative_script_path != "tools/phpdig") && ($relative_script_path != "..") && ($relative_script_path != ABSOLUTE_SCRIPT_PATH))) And *actual* command I'm using is: /usr/local/php/bin/php -f /Library/WebServer/Documents/tools/phpdig/admin/spider.php http://www.mydomain.com Sorry to be misleading and by doing so waste anyone's time. I'm an idiot. |
01-13-2005, 11:31 PM | #4 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
OIC, ha ha, anyway... where are the config.php and robot_functions.php files relative to the following:
Code:
/Library/WebServer/Documents/tools/phpdig/admin/spider.php
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-14-2005, 06:22 AM | #5 |
Green Mole
Join Date: May 2004
Posts: 25
|
The usual...
/Library/WebServer/Documents/tools/phpdig/admin/spider.php /Library/WebServer/Documents/tools/phpdig/includes/config.php /Library/WebServer/Documents/tools/phpdig/admin/robot_functions.php So they seem so to be where they're supposed to be... |
01-14-2005, 10:26 AM | #6 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
Are you sure "/Library/WebServer/..." is the full path? Maybe you have something like "/dir1/dir2/Library/WebServer/..." for the full path? Try the following script. Does it echo "/Library/WebServer/..." or something else?
PHP Code:
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-14-2005, 11:02 AM | #7 |
Green Mole
Join Date: May 2004
Posts: 25
|
Yep, I'm pretty darn sure (I'm basically co-sysadmin for the machine, so I know the dir structure pretty well). The above script outputs:
/Library/WebServer/Documents /Library/WebServer/Documents/tools/phpdig/test.php /Library/WebServer/Documents/tools/phpdig/test.php |
01-14-2005, 12:00 PM | #8 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
The only other thing I can think of is that it's a permission/ownership/group issue, where it runs from the web interface but not from shell. Check that the PhpDig files have "-rw-r--r--" permission and see if /usr/local/php/bin/php is set with "-rwxr-xr-x" permission. The crontab executable can have "-rws--x--x" permission.
Also, I did think about the php.ini file, perhaps changing: Code:
include_path = .:/usr/local/php/lib/php Code:
include_path = ./:/usr/local/php/lib/php:/Library/WebServer/Documents/tools/phpdig/admin:/Library/WebServer/Documents/tools/phpdig/includes
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-14-2005, 01:41 PM | #9 |
Green Mole
Join Date: May 2004
Posts: 25
|
Those both sounded like very good, promising ideas.
Unfortunately, my perssions were already set to those values, so that wasn't the problem. Edited my php.ini just to give that a try, and it didn't change anything at all -- still get the same errors. If I didn't know any better, I'd say that it seems like from the command line spider.php is still trying to use $relative_script_path instead of falling back on the ABSOLUTE_SCRIPT_PATH. That's the only way I can figure it'd work fine from the website but not from the command line... but I could be way off on that one. |
01-14-2005, 02:27 PM | #10 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
The $relative_script_path is used throughout the script, but it should be relative to wherever you are in the script. The ABSOLUTE_SCRIPT_PATH is so you can call PhpDig from shell while being outside the admin directory, but once called, the $relative_script_path should be page relative... unless... what's your "doc_root" set to in your php.ini file?
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-14-2005, 02:37 PM | #11 |
Green Mole
Join Date: May 2004
Posts: 25
|
I had to check and... It's not set to anything.
|
01-14-2005, 02:48 PM | #12 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
Hmm, is your /usr/local/php/bin/php running under user root?
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-14-2005, 03:01 PM | #13 |
Green Mole
Join Date: May 2004
Posts: 25
|
I believe so... it's running as whatever the default is -- pretty sure that's root (but I have to admit I don't know how to check or change that). /usr/local/php/bin/php is owned by root....
|
01-14-2005, 03:04 PM | #14 |
Head Mole
Join Date: May 2003
Posts: 2,539
|
What's a link to your PHP info?
__________________
Responses are offered on a voluntary if/as time is available basis, no guarantees. Double posting or bumping threads will not get your question answered any faster. No support via PM or email, responses not guaranteed. Thank you for your comprehension. |
01-14-2005, 03:13 PM | #15 |
Green Mole
Join Date: May 2004
Posts: 25
|
Don't wanna be a jerk, but there's some sensitive info on that page... (namely PHP_AUTH_PW) but PHP_AUTH_USER is "xxxxxx" -- anything in particular you want to see on that page?
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Problems running command line | remc | Troubleshooting | 2 | 03-15-2005 09:34 AM |
spider from command line | twanoo | Troubleshooting | 3 | 01-14-2005 11:04 AM |
command line using winxp | mrgee | Troubleshooting | 1 | 11-03-2004 03:20 AM |
Command Line entry and nothing happens | aslan | Troubleshooting | 6 | 08-27-2004 04:19 PM |
Indexing by command line... | Canadian | How-to Forum | 4 | 01-04-2004 07:44 PM |