PHP beklendiği gibi exec () çalışmıyor

3 Cevap php

Ben bir parametre dosyasını okur ve bir arama indeksi (Lemur / Indri) için haber makale içeriğini ekler bir kabuk 'add_article.sh' yürütmek için ihtiyaç olan bir PHP komut dosyası var.

Mükemmel (kabuk) kendi 'add_article.sh' senaryo çalışmaları yürütülürken, ama ben bu olsun php komut dosyası içinde çalışan:

$blah = exec("./add_article.sh", $out, $ret_val);

echo $out . "<BR />";
echo $ret_val . "<BR />";

Bu üretir

Array
255

Bu doğru dizinde ve hatta mutlak bir yol ile başarısız olur. Ben aynı dizinde başka bir komut çalıştırır ve tüm ince olan aynı dosyanın başka bir işlevi tam olarak aynı formatı kullanın.

Herhangi bir fikir?

3 Cevap

Eğer kabuk komut dosyası yürütme izinlerini kontrol ettiniz mi? Apache çoğu işletim sistemlerinde çok az izinleri olan bir kullanıcı olarak çalışır, böylece neden olabilir.

$out bir dizi olması gerekiyordu. Muhtemelen print_r() veya var_dump() Bu komut geri geliyor ne görmek gerekir; Yanlış neler söylüyorum olabilir.

Genel olarak, PHP komut dosyası çalışırken memnun olmayan bazı çevresel bağımlılık muhtemelen var. Apache içeriden yürütülüyor eğer bu özellikle yaygındır.

Deneyin:

$blah = exec("./add_article.sh", $out, $ret_val);

print_r($out);
echo '<br />';
echo $ret_val . "<br />";