gpt4 book ai didi

php - 从 CLI 调用时带有 PHPDocumentor 的无限循环(但通过 SSH 很好)

转载 作者:行者123 更新时间:2023-12-04 19:43:49 24 4
gpt4 key购买 nike

直到昨天,我在我们的生产服务器(CentOS 6.8)上使用了 PHPDocumentor 版本 2.8.5。一切正常。我不得不升级到 2.9.0 版。因为 PHPDoc 无法生成 PHP7 的文档。

当我通过 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);

有没有人遇到过类似的问题?

最佳答案

我花了两天的时间努力,但我终于找到了问题的根源。

  • phpDocumentor.phar需要在执行之前调用 PHP 命令。
  • 如果 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"

    关于php - 从 CLI 调用时带有 PHPDocumentor 的无限循环(但通过 SSH 很好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42142945/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com