2009-08-30 3 views
0

Итак, моя проблема заключается в следующем. Этот код отлично работает при загрузке страницы через веб-браузер. Но когда я запускаю скрипт из командной строки так: «php script.php», он бомбит.PHP error_log & includes not working

script.php является:

<?php 
include_once('class.WebsiteScraper.php'); 
$ws = new WebsiteScraper(); 
$ws->test(); 
... 
?> 

class.WebsiteScraper.php является:

<?php 
echo 'test'; 
class WebsiteScraper { 
    public function test() { 
     echo 'test2'; 
    } 
} 
?> 

Это возвращает ошибку:

PHP Fatal error: Call to undefined method WebsiteScraper::test() in ... on line 4

только при вызове с помощью командной строки делает это случается. Другая вещь, чтобы отметить, когда я добавляю в

error_log('hey there'); 

Для script.php, он выдает сообщение об ошибке в стандартный вывод, а не в моем журнале ошибок. Но при вызове из веб-браузера он помещает его в журнал ошибок. Есть идеи?

+0

Есть ли ошибка @ инклюднике не найден? –

+0

Нет, вот что ... Я бы ожидал ошибки b/c, «файл не существовал», если я помещаю фиктивное имя файла в ошибку. Итак, он находит это, но не может загрузить метод в моем классе? –

ответ

1

Используйте command line option--ini, чтобы проверить, если командная строка загружается один и тот же файл конфигурации Apache:

php --ini 

Вы также можете позвонить phpinfo().

Возможно, ваш файл не включен - возможно, из-за включения путей.

Edit:

Попробуйте добавить

error_reporting(E_ALL); 
+0

Вот и все! Я использую MAMP, и я редактировал мой ini-файл для MAMP (используется вместе с Apache). Но файл sys ini находится где-то в другом месте. –

+0

Welp, держитесь. Я проверил оба ini-файла, и оба правильны. Но при вызове сценария из командной строки «error_log» все равно не работает. –

+0

Кроме того, включенные файлы не возвращают ошибки - php может «открыть поток», но ни один из файлов в файлах не учитывается/не выполняется. –