2017-09-26 9 views
0

PowerShellタスクをバックグラウンドで実行するためにPHPで基本的なWebサイトを作成しようとしています。PHP shell_exec基本的なPowerShellスクリプトを実行するために30秒以上かかる

<?php 
session_start(); 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<title>Maintenance Page</title> 
</head> 
<body> 
<?php 


// Path to the PowerShell script. Remember double backslashes: 
$psScriptPath = "C:\\xampp\\htdocs\\SetAHMaintModeON.ps1"; 

// Execute the PowerShell script, passing the parameters: 
$query = shell_exec("powershell -command $psScriptPath"); 
echo "Maintenance Mode is now enabled!"; 



?> 

<form method="post" action="home.php"> 
<input type="submit" name="returnHome" value="Home" <?php 
$_SESSION["siteState"] = "red"; ?>> 
</form> 
</body> 
</html> 

と呼ばなっているPowerShellのコード:

#Import Modules 

Import-Module F5 -ErrorAction Stop -Global 

#Declare variables 

$LtmOne = "myltm.com" 
$DataGroupName = "Maintenance_Mode" 
$State ="off" 

#Connect to F5 LTMs and set Maintenance Mode to on 

Connect-F5 $LtmOne 
Set-MaintenanceMode -Name $DataGroupName -State $State -Confirm:$false 

私はPHPの外でこのスクリプトを実行すると、それは秒以内に実行される私のPHPファイルには、次のようになります。しかし、私はPHPの後ろに置くとすぐに、実行がシュートアップ。私が持っているコードの非効率性はありますか?私は決して熟練PHP開発者ではないので、その可能性のある悪いコードはそれを遅くしています。私が持っている唯一の他の選択肢は、.NETでこれをすべて書き直すことです。これは、PHPがはるかに簡単な学習曲線を持つようになりました。

+0

"実行に30秒かかりますか"、または30秒後にタイムアウトして実行されているかわかりませんか? – TessellatingHeckler

+0

はい – jnunham

答えて

0

Apacheの代わりにIISにサイトが移行され、コードが数秒で実行されます。これはApacheとPowerShellの問題でなければなりません。

関連する問題