Назад | Перейти на главную страницу

Нужны ли файлы PHP для чтения в интерфейсе командной строки?

У меня есть файл php test.php

#!/bin/php

<?php
  echo "test";
?>

Этот файл принадлежит пользователю root, и его разрешения следующие

-rwxr-x--x 

поэтому «другие» могут выполняться, но не могут читать.

Когда вы вошли в систему как другой пользователь, кроме root, и пытаетесь запустить этот файл из командной строки

php test.php 

Получена следующая ошибка

Could not open input file: test.php

Если дано разрешение + r, он работает.

Я думал, что нужно только разрешение на выполнение.

Требуется ли для PHP-файла разрешение на чтение для «других» в командной строке?

Примечание: при использовании Ubuntu 10.04 LTS и PHP 5.3.2

Только разрешение на выполнение - это нормально, если это двоичный файл. Сценарии должны иметь разрешение на чтение, чтобы их интерпретатор мог их читать.

если вы выполняете сценарий напрямую, используя полный путь или ./test.php со строкой shebang, он должен быть исполняемым. Если вы укажете интерпретатор (например, php), это интерпретатор, который должен иметь возможность выполнять код, поэтому в этом случае ему нужно только читать код.

Да, файл должен быть доступен для чтения пользователю, с которым вы пытаетесь его запустить. Кстати, исполняемый бит не нужно устанавливать, если вы называете его так, как вы делаете (php /path/to/script.php).

Да, скриптам (небинарным файлам) требуется разрешение r + x для выполнения.