Ben bir bash komut dosyası çalıştırmak için PHP ile Apache kullanıyorum ve bir sorun haline çalıştırıyorum. Sahte kod ...
Website Button -> Click -> jQuery.post("file.php") -> php: system("/home/user/file.sh cmd") -> bash: screen -S name -> bash: java -jar file.jar
Betik ardından adlandırılmış ekran oturumu başlatır ve bunun içinde (java -jar file.jar) bir Java uygulama çalışır. Neredeyse bütün bu şey çalışma var. Çalışmıyor tek şey Java uygulaması başlatıldığında, kendi yerel yapılandırma dosyaları birçok dışında birini, okuyamıyor olmasıdır.
Apache ev dizini ve bash komut dosyası ve Java uygulaması (yerel kullanıcı) sahibi aynı kullanıcı olarak çalışıyor. Betik CLI'den doğru koştu ise, Apache gibi çalıştığı gibi aynı kullanıcı olarak, her şey% 100 çalışıyor. Dosya izinleri bir sorun değildir.
Benim burada asıl mesele suçu ne bulgudur. Java uygulaması yapılandırma için yanlış yerde arıyor, yanlış kodlanmıştır. dosya? Benim PHP yanlış mı? Apache yanlış mı? VADEDE eksik komut biridir ve bu nedenle bir şey kırma? Gerçekten nereden başlayacağımı bilmiyorum.
Sadece yinelemek, PHP ve web sitesi kesip ve komut satırından bash komut dosyası çalıştırmak ise, bu eserler için. Ben PHP komut dosyasını çalıştırmak, Java uygulamasının yapılandırma dosyalarından biri okunamıyor.
Bir sürü kod HTML, Javascript, PHP ve bash arasında, burada var. Bana her komut sonrası için yardımcı olacak düşünüyorsanız, ben olacak.
Düzenleme: Ben denedim son şey, benim php komut çalışma dizini doğru .. İlgililer parçaları altında olduğunu onaylamak için:
<?php
session_start();
$action = $_REQUEST['action'];
$user = "public";
$home = "/home/minecraft/$user/mc/";
$script = "minecraft.sh";
$lck = "/home/minecraft/$user/mc/server.log.lck";
chdir($home);
function perform_action($action, $script, $home){
echo("Performing $script $action\n");
system("sh -c 'cd $home && ./$script $action'");
}
?>
Bu yüzden ilk önce uygun dizine değişen duyuyorum, ve sonra geçerli çalışma dizini (içindeki ekran ve ardından java uygulaması başlar) komut dosyası çalıştıran. Ben yanlış dizinde olsaydı, dosya yok olur ve böylece başlamak olmaz.
EDIT: Burada kullanıcı ve web ortamının sonuçları, öncesi ve sonrası: http://pastebin.com/ip0McMUc