Windows PHP kod hatası düzeltmek için: exec ("rm-rf F :/ tmpJob / *")

2 Cevap php

Windows üzerinde (http://localhost/filename.php) bir PHP dosyasını gezen zaman idam ediyor.

Web sunucusu Apache olduğunu.

Ben 2 adım ayrılabilir gerektiğini düşünüyorum:

Apache parçacığı 1.found kullanıcı

"F :/ tmpJob /" yönelik o kullanıcıya 2.give yeterli izinleri

Ben httpd.confunuzu kontrol ve bulundu:

User daemon
Group daemon

But there is no "daemon" user on windows. How to find the real user of apache threads?

2 Cevap

Er ... rm -rf Windows geçerli bir komut değil. Windows / DOS silme komutu del.

Windows rm -rf FILEPATH eşdeğer del /S /Q PATH (yani "emin misiniz?" Istemi vermeyin) Recursively silmek ve bu konuda sessiz olmaktır.

Sen mevcut sürecin sahibi alabilirsiniz mesela getmypid() ve the wmi class WIN32_PROCESS ile

<?php
$pid = getmypid();
$wmi = new COM ('winmgmts:{impersonationLevel=impersonate}//./root/cimv2');
$result = $wmi->execquery("Select * from Win32_Process Where ProcessID = '$pid'");

foreach($result as $row) {
  $owner = new VARIANT('');
  $domain = new VARIANT('');
  $row->GetOwner($owner, $domain);
  echo ' exe: ', $row->ExecutablePath, ' owner:', $owner, ' domain:', $domain, "\n";
}

Muhtemelen de çıkışını kontrol etmelisiniz

<pre><?php passthru('set'); ?></pre>

esp. PATH değişken. Belki UnixUtils SYSTEM hesabının PATH "" değildir.