Serveted Scripts: Implicit vs Явное исполнение
-
16-09-2020 - |
Вопрос
в Этот вопрос суперпользования мне посоветовал, чтобы лучше выполнитьСценарии, написанные на интерфейсе языка (PHP, Python и т. Д.), Явно выполняя интерпретатор и предоставление скрипта в качестве аргумента, например:
> php script.php
, а не добавлять строку в скрипт, чтобы сообщить ОС для выполнения его, например:
#!/usr/bin/php
<?php
echo "hello world";
?>
.
Почему это правда?Моя интуиция говорит мне, что это безопаснее, если сценарий перемещается в систему, в которой исполняемый файл интерпретатора расположен на другом пути, но это единственная причина?
Решение
Портативность усиливается, если вы используете эту идиому:
#!/usr/bin/env php
.
но у него есть свои недостатки;См. Дольше обсуждение в http://sites.google.com/site/frankpzh/ Библиотека знаний / Shebang
Другие советы
Разные пути будут основной причиной, особенно когда двоичные файлы начнут получать хранилище в X64-обозначенных путях или устанавливаются в / usr / local / bin / php.