"exec () был отключен по соображениям безопасности" & "Неопределенная переменная" - PullRequest
0 голосов
/ 03 декабря 2009

Я нашел классный скрипт резервного копирования MySQL. Это работает нормально на некоторых хостинговых компаниях. Сейчас я пробую его на другом хосте, на котором работает PHP версии 5.2.8.

У меня есть файл php.ini, который содержит это (как в корневом каталоге, так и в текущем каталоге):

disable_functions =. 

Я получаю эти предупреждения, и кажется, что они больше, чем предупреждения. Если exec() не запускается, база данных не резервируется.

Неопределенная переменная: вывод в / home / nealsent / public_html / backups / backup_dbs.php в строке 21
Неопределенная переменная: res в / home / nealsent / public_html / backups / backup_dbs.php в строке 210
exec () был отключен по соображениям безопасности в / home / nealsent / public_html / backups / backup_dbs.php on line 210

Код следующий.

// dump db
unset($output);

    // Line 210:
exec("$MYSQL_PATH/mysqldump $db_auth --opt $db 2>&1 >$BACKUP_TEMP/$db.sql", $output, $res);

Ответы [ 2 ]

4 голосов
/ 03 декабря 2009

Многие хосты отключают определенные функции и не позволяют переопределять их в пользовательских файлах php.ini (только потому, что PHP предлагает возможность иметь собственный файл php.ini, не означает, что все настройки PHP обязательно настроены для изменения этот вариант через такой).

Скорее всего, хост просто не разрешает использование exec (). С этим мало что можно поделать.

2 голосов
/ 03 декабря 2009

Другая возможность заключается в том, что exec был отключен PHP безопасный режим . Со страницы, на которую вы ссылаетесь, похоже, что вы могли бы избежать этого, поместив выполняемый вами скрипт в PHP «безопасный режим exec dir».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...