2017-02-09 16 views
0

直到昨天,我用我們的生產服務器(CentOS 6.8),PHPDocumentor版本2.8.5。一切正常。我不得不升級到版本2.9.0。因爲PHPDoc無法生成PHP7的文檔。從CLI調用無限循環PHPDocumentor(但通過SSH調用)(但通過SSH罰款)

當我運行通過SSH下面的腳本,一切工作正常:

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/gem-mechanic/ --target=/[not_a_real_path]/PC_administration_interface/documentation/gem-mechanic/ --title="GEM-MECHANIC" 

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/PC_administration_interface/ --target=/[not_a_real_path]/PC_administration_interface/documentation/pc_administration_interface/ --title="PC-ADMINISTRATION-INTERFACE" 

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/setup/modules/appointmentmanager/ --target=/[not_a_real_path]/PC_administration_interface/documentation/prestashop_appointmentmanager/ --title="PRESTASHOP: APPOINTMENT MANAGER" 

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/setup/modules/datalinkmanager/ --target=/[not_a_real_path]/PC_administration_interface/documentation/prestashop_datalinkmanager/ --title="PRESTASHOP: DATALINK MANAGER" 

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/setup/modules/sharedcode/ --target=/[not_a_real_path]/PC_administration_interface/documentation/prestashop_sharedcode/ --title="PRESTASHOP: SHARED CODE" 

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/setup/modules/vehiclefile/ --target=/[not_a_real_path]/PC_administration_interface/documentation/prestashop_vehiclefile/ --title="PRESTASHOP: VEHICLE FILE" 

/[not_a_real_path]/phpdoc --directory=/[not_a_real_path]/shared_code/ --target=/[not_a_real_path]/PC_administration_interface/documentation/shared_code/ --title="SHARED CODE" 

echo Options All -Indexes > /[not_a_real_path]/PC_administration_interface/documentation/.htaccess 
echo AuthType Basic >> /[not_a_real_path]/PC_administration_interface/documentation/.htaccess 
echo AuthName '"Please login"' >> /[not_a_real_path]/PC_administration_interface/documentation/.htaccess 
echo AuthUserFile /[not_a_real_path]/PC_administration_interface/.htpasswd >> /[not_a_real_path]/PC_administration_interface/documentation/.htaccess 
echo Require valid-user >> /[not_a_real_path]/PC_administration_interface/documentation/.htaccess 

enter image description here

但是,當我嘗試用PHP

運行腳本
public static function generateDocumentation() 
{ 
    $output = array(); 

    set_time_limit(180); 

    self::createDocDirectory(); 

    exec(self::getScriptPath(false) . " 2>&1", $output); 

    return implode($output, PHP_EOL); 
} 

編碼得到陷入無限循環,沒有生成任何文檔。我希望3分鐘後,以失敗的頁面,但它只是不斷循環...

即使試圖執行的phpDocumentor,它陷在一個無限循環:

exec("[not_the_real_path]/phpdoc 2>&1", $output); 

是任何人都經歷了類似的問題?

回答

0

我帶了兩天的辛勤工作,但終於找到了問題的根源。

  1. phpDocumentor.phar需要在執行前調用PHP命令。

  2. 如果PHP命令不在您的包含路徑中,則需要提供完整路徑。

不知何故,如果找不到那些命令之一,CLI就會掛起。

下面是一個有效的命令的例子:

exec("/usr/local/bin/php /usr/local/bin/phpDocumentor-2.9.phar --directory=/home/gem/public_html/gem-mechanic/ --target=/home/gem/public_html/PC_administration_interface/documentation/gem-mechanic/ --title=\"GEM-MECHANIC\" 2>&1", $output); 

注意:添加以下代碼行:

PATH="/usr/local/bin" 

在腳本的開頭,你會不會需要調用爲PHP和包括路徑達到phpDocumentor。你的腳本中的一行可以簡單地寫成這樣:

phpDocumentor-2.9.phar --directory=/home/gem/public_html/gem-mechanic/ --target=/home/gem/public_html/PC_administration_interface/documentation/gem-mechanic/ --title="GEM-MECHANIC" 
+0

下面是我能夠安裝phpDocumentor 2.9.0。沒有'pear' http://askubuntu.com/a/811577/575247 –

+0

當我在包含PHPDocumentor的Composer中觀察到類似的東西。作曲家只是掛起。 –