我发现了一个很酷的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 上 出于安全原因,在 210 /home/nealsent/public_html/backups/backup_dbs.php 中已禁用exec()
代码如下。
// dump db
unset($output);
// Line 210:
exec("$MYSQL_PATH/mysqldump $db_auth --opt $db 2>&1 >$BACKUP_TEMP/$db.sql", $output, $res);
答案 0 :(得分:4)
许多主机禁用某些功能,并且不允许在自定义php.ini中覆盖它们(因为PHP提供了自定义php.ini的能力,并不意味着所有PHP设置都必须配置为允许您更改通过这样的选项)。
主机可能根本不允许exec()时段。你真的无法做到这一点。
答案 1 :(得分:2)
另一种可能性是exec已被PHP safe mode禁用。从引用的页面看,您可以通过将正在执行的脚本放入PHP“安全模式exec目录”来避免这种情况。