"Exec () güvenlik nedenleriyle devre dışı bırakıldı"

2 Cevap php

I found a cool MySQL backup script. It's working fine on some hosting companies. Now I'm trying it on a different host running PHP Version 5.2.8.

Ben (kök dir ve simdiki hem de) bu içeren bir php.ini dosyası vardır:

disable_functions =. 

I'm getting these warnings, and it seems like they are more than warnings. If exec() doesn't run, the database is not backed-up.

Undefined variable: output in /home/nealsent/public_html/backups/backup_dbs.php on line 21
Undefined variable: res in /home/nealsent/public_html/backups/backup_dbs.php on line 210
exec() has been disabled for security reasons in /home/nealsent/public_html/backups/backup_dbs.php on line 210

Kod aşağıdaki biridir.

// dump db
unset($output);

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

2 Cevap

Birçok ev belirli işlevleri devre dışı bırakmak, ve PHP özel bir php.ini olması olanağı sunar sırf (özel php.ini 'nin bunları geçersiz izin vermez, tüm PHP kurulumları mutlaka aracılığıyla bu seçeneği değiştirmek için izin yapılandırılmış anlamına gelmez gibi).

Şansı host sadece exec () süre izin vermez vardır. Değil kadar gerçekten bu konuda yapabilirsiniz.

Başka bir olasılık exec PHP ile devre dışı olmuştur olduğunu safe mode. Eğer exec-ing PHP "güvenli mod exec dir" içine komut dosyası koyarak bu önlemek olabilir gibi başvurulan sayfasında görünüyor.