Я создал экспедитор в моей cPanel, так что любые письма, которые идут на [email protected], будут приниматься и обрабатываться PHP-скриптом.
#!/usr/bin/php -q
<?php
$fd = fopen("php://stdin", "r");
$body = '';
while( !feof($fd) ){
$body .= fread($fd, 1024);
}
fclose($fd);
//----doing my tasks, for example:--
mail('[email protected]', 'Test Subject', $body);
?>
Мне придется запустить почти одно и то же решение для нескольких моих клиентов с различными типами провайдеров cPanel. Моя проблема с первой строкой, которая называется Хэшбанг или Шебанг. Из интернета я обнаружил, что следующие шебанги действительны на основе версий PHP:
For PHP 5.2.x the shebang would be "#!/usr/bin/php"For PHP 5.3.x the shebang would be "#!/usr/bin/php53"//My test server is running with PHP 5.5 at this moment and "#!/usr/bin/php" works fine.
Опять же, некоторые говорят, #!/usr/local/bin/php
или же #!/usr/local/lib/php
, так далее.
Мой вопрос: Есть ли какой-нибудь способ найти правильный / прямой / легкий правильный хэш-банг для разных сред cPanel, таких как phpinfo () или используя любую кодировку или из любых файлов конфигурации?
Чтобы сделать ваш скрипт переносимым, попробуйте использовать это вместо
#!/usr/bin/env php
Это просто ищет исполняемый файл с именем php
в вашем $PATH
, Это будет работать примерно в 95% случаев. Если вы обнаружите систему, на которой она не работает, просто вручную найдите, где установлен PHP, и измените этот скрипт.
Других решений пока нет …