2013-03-03 2 views
0

Я пытаюсь запустить задание CRON, которое обращается к моей базе данных и делает некоторую передачу файлов. Адаптирование его от другой работы CRON, что только что была передача файла, я поставил команду:Для этого адаптера требуется расширение PDO, но расширение не загружается ошибкой с заданием CRON

php -qn -d memory_limit=128M 

перед моим файлом CRON. Я помню, что я добавил memory_limit, потому что я переносил файлы, но не мог вспомнить о моей жизни, почему у меня был -qn -d. Копирование и ту же команду на другую CRON работу, которую необходимо получить доступ к базе данных с помощью Zend_Db_Adapter_Pdo_Mysql, я получил ошибку:

«Расширение PDO для этого требуется адаптер, но расширение не загружается ошибка»

И, только когда я использовал команду

php -q 

, что ошибка исчезла. 2 вопроса, то:

1) В чем разница между «-qn -d memory_limit = 128M» и «php -q» относительно задания CRON?

2) Почему у меня проблема с PDO, когда я использую прежнюю команду, а не последнюю?

-Эрик

ответ

1

Флаг -n означает «не использовать любые php.ini файлы», так что это не загружая никаких расширений (вызывающие ошибки PDO). Флаг -d позволяет вам задавать переменные конфигурации PHP, поэтому в вашем примере вы переопределяете предел памяти по умолчанию.

+0

Имея это в виду, могу ли я получить торт и съесть его? Другими словами, есть ли опция конфигурации для загрузки расширения, а также переопределение ограничения на память? – Eric

+0

Yup, должен работать, просто удалите -n: '-q -d memory_limit = 128M' –

+0

OK! В этом есть смысл. Тем не менее, это было мое впечатление от моего хоста (я использую хостинг-провайдера, если это имеет значение), что мне также нужен -n для задания CRON, иначе memory_limit = 128M будет проигнорирован. Если это правда, есть ли способ загрузить расширения, а также через задание CRON, или это -n на самом деле лишнее? – Eric