0
我試圖從drupal網站(運行在Windows的xampp上)啓動一個julia程序,它需要在後臺運行異步,而php腳本繼續執行。這是我想要使用的代碼:從apache php stack(在drupal)啓動Julia作爲後臺進程
$juliaFile = escapeshellarg(DRUPAL_ROOT . '/sites/all/modules/tsap/Modeling/runme.jl');
$cmd = "start /B julia $juliaFile";
pclose(popen($cmd, 'r'));
此代碼的工作完美,如果我通過命令行PHP腳本運行它,但是當它運行通過Apache,然而,下位這是行不通的的代碼都來自從命令行和Web服務器的工作原理(唯一的區別是運行的,而不是朱莉婭程序的PHP腳本)
$phpFile = escapeshellarg(DRUPAL_ROOT . '/sites/all/modules/tsap/Modeling/runme.php');
$cmd = "start /B php $phpFile";
pclose(popen($cmd, 'r'));
我也嘗試調用PHP文件中獲取的一個代碼塊由Web服務器執行,也可以從命令行執行,並在服務器嘗試執行時失敗。
我也得到使用反引號操作符和exec()
(他們阻止在電話會議上),並在同一個問題用COM::run()
結果作爲問題pclose(popen())
沒有人有獲得朱莉婭調用工作任何想法?
感謝您的時間
據我所知,&在windows上不可用,而start/B是另一種選擇,無論如何我試過了,它導致了julia和php版本都失敗。我也嘗試過使用proc_open和proc_close,它們導致與popen和pclose相同的行爲,即爲後臺php進程而不是後臺julia進程。 – Velvacaine
如果這樣,它不是由子進程調用者函數引起的。這是其他原因。 –