2017-05-12 62 views
2

我在shell腳本中有一個問題。我在/var/www有一個apache2 web服務器。我有index.php和PHP代碼爲:從它的文件夾位置執行shell腳本而不是調用者文件夾位置?

<?php system('sh /minecraft/server1/starter1.sh', $retval); ?>

starter1.sh代碼:

sudo -i screen -d -m -S Server1 java -Xmx1G -jar /minecraft/server1/spigot.jar

,如果我去/minecraft/server1/和我執行sh ./starter1.sh服務器正常啓動,但是當我打電話來自index.php/var/www)的腳本(starter1.sh)服務器似乎從/root/開始。如何正確地從網頁(/var/www/html/index.php)撥打起動機(/minecraft/server1/starter1.sh)?

如果我做了一些錯誤的命令,請告訴我,但幫我解決這個問題

+0

你如何找出你的命令運行正常,並開始/根? – hassan

回答

0

只是改變你的腳本,並添加一個CD /我的世界/服務器1 /須藤之前[..]

編輯:刪除sudo後的-i

+0

不起作用。服務器再次啓動/ root/ –

+0

如果您需要從該路徑啓動它,因爲您需要保存的文件更改Server1 java -Xmx1G -jar /minecraft/server1/spigot.jar到 –

+0

哦對不起,我沒有看到 - 我在sudo之後。它會將當前密碼更改爲根密碼。儘量避免它: sudo screen -d -m -S Server1 java -Xmx1G -jar /minecraft/server1/spigot.jar –

0

您可以使用以下命令更改您的工作目錄: chdir(「current_directory /.../」);

因此,代碼應該是:

<?php 
    chdir("current_directory/.../"); 
    system('sh /minecraft/server1/starter1.sh', $retval); 
?> 
+0

不工作。但我解決了。不管怎樣,謝謝你! –