Perl-скрипт запускается из браузера, не используя ту же версию Net :: SMTP, что и тот же скрипт, запускаемый из командной строки - PullRequest
0 голосов
/ 08 января 2019

Основной вопрос: у нас есть скрипт для отправки почты, который нам пришлось обновить, и теперь он, похоже, использует разные версии Net :: SMTP в зависимости от того, запускается ли он из командной строки или вызывается скриптом php , Что мне нужно проверить, чтобы определить, почему это так, и как это решить?

Более длинная версия: Мы пытались обновить возможности отправки почты на наших серверах (ранее использовали чистый MIME :: Lite, но новый почтовый сервер клиента - Office365). Один из моих коллег нашел способ сохранить исходный процесс сборки MIME :: Lite и просто отправить сообщение, используя Net :: SMTP. Это потребовало от нас обновить версию Net :: SMTP на некоторых наших системах. (Сделано через установку CPAN.)

При запуске вручную из командной строки (система CentOS) используемый нами скрипт просто работает, без проблем. Проблема в том, что он обычно вызывается из браузера, а при запуске из браузера выдает следующее сообщение:

Требуется Net :: SMTP версии 3.03 - это только версия 2.31 в строке ./test_path.pl 21.

Я подумал, что, возможно, в системе установлено более одного perl, но мы находим только один, который показывается браузером и командной строкой при его отображении. Тогда я подумал, что, возможно, показываются две установки Net :: SMTP, но я нахожу только один файл SMTP.pm в системе, и это для версии 3.11.

Я не уверен, где еще проверить или что еще искать - единственное, о чем я могу подумать, это проверить разрешения, и я не совсем уверен, где мне нужно искать проверьте это.

На что еще мне нужно обратить внимание, чтобы решить эту проблему?

Согласно запросу в комментариях, код вызывается со страницы php следующим образом:

$cmd = "./test_path.pl 2>&1";
$exe = shell_exec($cmd);
print $exe;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...