0. Penerangan
Dalam php, kita boleh menggunakan exec()
untuk melaksanakan arahan sistem, tetapi kadangkala kita menghadapi kegagalan pelaksanaan perintah, atau tiada pulangan Situasi dijelaskan di bawah: exec()
exec ( string $command [, array &$output [, int &$return_var ]] ) : string 参数说明: 1.$command 要执行的命令 2.$output 执行结果 3.$return_var 若同时设置 $output 和此变量,命令执行后的返回状态会被写入到此变量2. , tetapi situasi yang tidak dijangka mungkin berlaku atas sebab-sebab tertentu Di bawah ialah penjelasan mengenai dua situasi dan penyelesaian 2.1 Isu kebenaran
exec("ping www.baidu.com", $output);
Masalahping
, maka root digunakan semasa melaksanakan
. Tetapi apabila kami mengakses laman web, pengguna kami pada masa ini adalahJika kami tidak mengubah suai kebenaran pelaksanaan ping, ia tidak akan berjaya dilaksanakan.
Penyelesaian2.2 Masalah laluan arahanMasalahAda situasi lain apabila Apabila kita menggunakan exec untuk melaksanakan perintah tertentu, tiada ralat dilaporkan atau keputusan dikembalikan Sebabnya ialah arahan ini tidak ada dalam direktori yang dikonfigurasikan dengan pembolehubah persekitaran, iaitu, dalam failroot
ping
Ubah suai kebenaran pelaksanaan ping atau arahan yang sepadanwww
sebagai contoh, kita boleh menggunakan
, Cari laluan khusus arahan ini Contohnya, laluan di bawahTerdapat dua penyelesaian:
Penyelesaian(disyorkan)/etc/profile
ifconfig
1 Salin. arahan kepadawhereis ifconfig
, iaitu direktori di bawah pembolehubah persekitaran ( Tidak disyorkan)/usr/sbin
2 Lengkapkan laluan penuh arahan secara langsung
3 Tambah direktori sasaran kepada pembolehubah persekitaran, untuk contoh, tambahkan
pada direktori/usr/bin
Pembelajaran yang disyorkan :《exec('/usr/sbin',$output);
Tutorial Video PHP
》/usr/sbin