2014-01-20 148 views
0

我試圖通過在php文件中編寫下面的命令,然後從控制檯以及crontab運行該php文件。我在php文件中的代碼就像系統命令從控制檯運行,但不是從linux中的crontab運行

#!/usr/bin/php -q 
<?php 
system ("/usr/local/sbin/googletts-cli.pl -o /var/lib/asterisk/sounds/asdapp/test.wav -s 0.9 -l en -t 'Some text is written here'"); 
?> 

如果我運行從康索爾這個PHP文件,那麼它工作正常,並生成WAV file.But如果我把PHP文件中的crontab像

* * * * * /var/lib/asterisk/agi-bin/asdapp/jagu_test.php 

那麼它是不是產生wav文件。

我也曾嘗試這在下面的鏈接中給出的解決方案:

Why is crontab not executing my PHP script?

PHP script works from command line, not from cron

我曾與各種方式嘗試了運行從crontab的這個PHP文件,但不能得到任何成功任何人都可以知道究竟是什麼問題或解決方案?

+0

嘗試檢查服務器錯誤日誌,還試圖讓cron的標籤的電子郵件通知可能你得到一些光。 – Rikesh

+0

感謝Rikesh的回覆。請幫助我如何獲取電子郵件通知以及我應該檢查哪個服務器日誌? – Nency

回答

0

從crontab和commandline執行的命令具有不同的環境變量,工作路徑和用戶(如果不另外指定)。

此外,您正在調用PHP解釋器來調用系統命令。這將是很容易把這個線在crontab本身:

* * * * * /usr/local/sbin/googletts-cli.pl -o /var/lib/asterisk/sounds/asdapp/test.wav -s 0.9 -l en -t 'Some text is written here' 
+0

其實我在其他php文件中也運行這個命令,它也有一些其他的代碼。所以不能直接在crontab中運行這個命令。但是這個命令不工作在crontab中,這就是爲什麼我試圖從crontab運行樣例php文件。 – Nency

+0

啊哈。明白!那麼,我的答案的第一部分(環境變量和路徑)仍然有效。我有幾個相關的問題,以及... – opalenzuela

+0

我已經嘗試過你的答案,就像直接將命令放在crontab中,但仍然存在相同的問題 – Nency