2017-01-18 5 views
2

J'ai mis en place un forwarder dans mon cPanel afin que tous les emails envoyés à [email protected] soient récupérés et traités par un script PHP.Comment trouver le bon Hashbang ou Shebang pour le script 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); 

?> 

Je vais devoir exécuter presque la même solution pour mes clients multiples avec différents types de fournisseurs cPanel. Mon problème est avec la première ligne qui s'appelle Hashbang or Shebang. De Web, je trouve que les shebangs suivantes sont valables sur la base des versions 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. 

Encore une fois, certains dit, #!/usr/local/bin/php ou #!/usr/local/lib/php, etc.

Ma question: Est-il possible de trouver correcte hashbang correctement/directement/facilement pour différents environnements cPanel comme phpinfo() ou en utilisant n'importe quel codage ou de n'importe quel fichier de configuration?

Répondre

1

Pour rendre votre script portable, essayez d'utiliser cette place,

#!/usr/bin/env php 

Cette recherche simplement un exécutable nommé php dans votre $PATH. Cela fonctionnera dans plus de 95% des cas. Si vous trouvez un système sur lequel il ne fonctionne pas, alors cherchez manuellement où PHP est installé et modifiez ce script.

+0

Ceci a été posté comme une réponse, mais il n'essaie pas de répondre à la question. Il devrait éventuellement être un edit, un commentaire, une autre question, ou complètement supprimé. –

+0

@MarcinOrlowski À mon avis, l'OP demandait comment identifier le répertoire d'installation de PHP sur différents systèmes avec des chemins d'installation différents, afin que son script fonctionne correctement partout où il est installé (portabilité). Ma réponse est la solution à cela. Je ne sais pas pourquoi les votes vers le bas. – superphonic

+0

peut-être à cause de quelque chose comme ça '$/usr/bin/env php' ->'/usr/bin/env: php: Aucun fichier ou répertoire'. Loin de la solution portable, à moins qu'elle ne soit documentée cela fonctionne avec les environnements cPanel –