2015-05-18 87 views
1

我有一個腳本,可以根據指定的時間表或根據需要運行其他腳本,具體取決於命令。這允許在中央位置管理普通和耗時的任務,並簡化管理。這種設置存在於兩臺服務器上,並且(通常)設置相同。帶有彩色輸出的PHP passthru

運行的下標之一使用PHP的passthru()函數。結果存儲在數據庫中供以後查看。

運行passthru()的代碼是:

$result = []; passthru(/usr/local/bin/wp plugin delete ' . $plugin . ' --path=' . $path, $result);

當從在油灰從命令行運行時,輸出是類似於:

Success: Deleted 'hello' plugin.

在兩臺服務器,Success:是綠色。但是,通過任務在服務器1上運行時,顏色會被去除。當服務器運行2,在ANSI顏色代碼保持並記錄如下:

[32;1mSuccess:[0m Deleted 'hello' plugin.

我需要從第二個結果中去除顏色代碼,但我無法弄清楚什麼CentOS的設置(或php.ini)來查看此。兩臺服務器之間有些不同,但我無法弄清楚什麼。

PHP版本:5.6.8 CentOS的版本:6.6

+0

當你在兩臺服務器的終端執行'ls -al'時,你會得到彩色輸出嗎?如果是的話,你可以嘗試'passthru('ls -al');'在兩臺服務器上使用PHP嗎?你仍然有相同的輸出效果? – hek2mgl

+0

在終端中時,一切都是一樣的。我會用這種方式運行passthru,並在一會兒回覆你。 – Joseph

+0

運行代碼'passthru('ls -al')'時,輸出不會在任一服務器上着色。 – Joseph

回答

0

我們想通了in commentsconfig file of wp-cli問題奠定。在第二臺服務器上將color:true更改爲color:auto

+0

所以問題是,爲什麼我需要在服務器上設置不同的設置?這是什麼導致相同的phar在兩臺服務器上採取不同的行爲? – Joseph

+0

順便說一句,我已經在wp中查看配置,以驗證它尚未設置在那裏。 – Joseph

+0

你試過設置它嗎? – hek2mgl