2011-09-13 15 views
10

PHP.sh dosyasını php'den nasıl çalıştırabilirsiniz?

shell script (/home/scripts/fix-perm.sh) kullanarak bir kabuk komut dosyasını çalıştırmak çalışıyorum bu i

çalışıyorum kodudur aynı sunucu

içindedir

<?php 
echo shell_exec('/home/scripts/fix-perm.sh'); 
?> 

yukarıdaki kod

çalışmıyor herkes lütfen bana yardımcı olabilir linux server

kullanıyorum?

+5

Bir hata mı veriliyor ya da bir şey yapmıyor mu? Bir izin hatası mı atıyor? Altında çalışan php betiği nedir? Daha fazla bilgi lütfen. Ayrıca bir bash betiğini varsayarak 'bash /home/scripts/fix-perm.sh' dosyasını çalıştırmayı deneyebilirsiniz. – IslandCow

+0

hiçbir şey göstermiyor – NidhinRaj

cevap

20

Kabuk exec, gerçek bir komut olması gereken bir dize alır. Şimdi bir dosya yolunu geçiyorsunuz. Bu, "dosyayı bu yoldan yürüt" olarak yorumlanmaz. Birkaç şey yapabilirsin.

Yapmanız gereken şey dosyayı bir program ile aramaktır. yorumunda önerildiği gibi ya bash sh deyin:

echo shell_exec('sh /home/scripts/fix-perm.sh'); 

Başka bir seçenek olabilir:

$contents = file_get_contents('/home/scripts/fix-perm.sh'); 
echo shell_exec($contents); 

Ben ilk seçenek ancak daha iyi olacağını düşünüyorum.

Dış programların yürütülmesine yönelik tüm komutların, bir dosya yolu veya başka bir şey yerine gerçek komutlar beklediğini unutmayın. Bu, shell_exec, exec, passthru ve diğerleri için geçerlidir.

+0

Ben de yapmamayı öneririm. Dosyayı çalıştırılabilir yapmak çok daha temizdir. –

+0

İkisini de denedim ama hiçbir şey göstermiyor, herhangi bir sonuç döndürecek mi? çalışıp çalışmadığını nasıl bulabilirim? – NidhinRaj

+0

shell_exec, bir komutun ürettiği çıktıyı döndürür. Eğer senaryonuz bir şey çıkarmazsa, çıktı yoktur :) – hoppa

İlgili konular