Linux где исполняемый файл php

Linux где исполняемый файл php

    Указание конкретного файла для запуска.

$ php my_script.php $ php -f my_script.php
$ php -r 'print_r(get_defined_constants());'

Необходимо быть особо осторожным при использовании этого способа, т.к. может произойти подстановка переменных оболочки при использовании двойных кавычек.

Замечание: Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается, и их использование приведёт к ошибке разбора.

$ some_application | some_filter | php | sort -u > final_output.txt

Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv . Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r, значением $argv[0] будет «Стандартный поток» («Standard input code»); до PHP 7.2.0 это был дефис ( «-» ). То же самое верно и для кода, переданного через конвейер из STDIN .

Вторая зарегистрированная глобальная переменная — это $argc , содержащая количество элементов в массиве $argv (а не количество аргументов, переданных скрипту).

Если передаваемые аргументы не начинаются с символа — , то особых проблем быть не должно. Передаваемый в скрипт аргумент, который начинается с — создаст проблемы, т.к. PHP решит, что он сам должен его обработать. Для предотвращения подобного поведения используйте разделитель списка аргументов — . После того, как этот разделитель будет проанализирован PHP, все последующие аргументы будут переданы в скрипт нетронутыми.

# Эта команда не запустит данный код, но покажет информацию об использовании PHP $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] [args. ] [. ] # Эта команда передаст аргумент '-h' в скрипт, предотвратив показ справки PHP $ php -r 'var_dump($argv);' -- -h array(2) < [0]=>string(1) "-" [1]=> string(2) "-h" >

Однако, в Unix-системах есть ещё один способ использования PHP для консольных скриптов. Можно написать скрипт, первая строка которого будет начинаться с #!/usr/bin/php (или же другой корректный путь к бинарному файлу PHP CLI ). После этой строки можно поместить обычный PHP-код, заключённый в открывающие и закрывающие теги PHP. Как только будут установлены корректные атрибуты запуска на файл (например, chmod +x test), скрипт может быть запущен как обычный консольный или perl-скрипт:

Читайте также:  Гта сан андреас линукс

Пример #1 Запуск PHP-скрипта как консольного

Предполагая, что этот файл назван test и находится в текущей директории, можно сделать следующее:

$ chmod +x test $ ./test -h -- foo array(4) < [0]=>string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" >

Как можно увидеть, в этом случае не нужно заботиться о передаче параметров, которые начинаются с — .

Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае работы в Unix-подобной системе, необходимо добавить в первую строку файла #! (называемый также «shebang») чтобы указать, какая из программ должна запускать скрипт. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php или создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведён простой пример скрипта, выполняемого из командной строки:

Пример #2 Скрипт, предназначенный для запуска из командной строки (script.php)

if ( $argc != 2 || in_array ( $argv [ 1 ], array( ‘—help’ , ‘-help’ , ‘-h’ , ‘-?’ ))) ?>

Это консольный PHP-скрипт, принимающий один аргумент.

Любое слово, которое вы хотели бы
напечатать. Опции —help, -help, -h,
или -? покажут текущую справочную информацию.

В приведённом выше скрипте в первой строке содержится shebang, указывающий что этот файл должен запускаться PHP. Работа ведётся с CLI -версией, поэтому не будет выведено ни одного HTTP -заголовка.

Скрипт сначала проверяет наличие обязательного одного аргумента (в дополнение к имени скрипта, который также подсчитывается). Если их нет, или если переданный аргумент был —help, -help, -h или -?, выводится справочное сообщение с использованием $argv[0] , которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.

Для запуска приведённого примера в Unix-системе, нужно сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h. В Windows-системе можно создать пакетный файл:

Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

@echo OFF "C:\php\php.exe" script.php %*

Предполагая, что вышеприведённый скрипт называется script.php , а полный путь к CLI php.exe находится в C:\php\php.exe , этот пакетный файл запустит его с переданными параметрами: script.bat echothis или script.bat -h.

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

В Windows запуск PHP можно настроить без необходимости указывать C:\php\php.exe или расширение .php . Подробнее эта тема описана в разделе Запуск PHP из командной строки в Microsoft Windows.

Замечание:

В Windows рекомендуется запускать PHP под актуальной учётной записью пользователя. При работе в сетевой службе некоторые операции не будут выполнены, поскольку «сопоставление имён учётных записей и идентификаторов безопасности не выполнено».

User Contributed Notes 7 notes

On Linux, the shebang (#!) line is parsed by the kernel into at most two parts.
For example:

1: #!/usr/bin/php
2: #!/usr/bin/env php
3: #!/usr/bin/php -n
4: #!/usr/bin/php -ddisplay_errors=E_ALL
5: #!/usr/bin/php -n -ddisplay_errors=E_ALL

Читайте также:  Перейти на флешку линукс

1. is the standard way to start a script. (compare «#!/bin/bash».)

2. uses «env» to find where PHP is installed: it might be elsewhere in the $PATH, such as /usr/local/bin.

3. if you don’t need to use env, you can pass ONE parameter here. For example, to ignore the system’s PHP.ini, and go with the defaults, use «-n». (See «man php».)

4. or, you can set exactly one configuration variable. I recommend this one, because display_errors actually takes effect if it is set here. Otherwise, the only place you can enable it is system-wide in php.ini. If you try to use ini_set() in your script itself, it’s too late: if your script has a parse error, it will silently die.

5. This will not (as of 2013) work on Linux. It acts as if the whole string, «-n -ddisplay_errors=E_ALL» were a single argument. But in BSD, the shebang line can take more than 2 arguments, and so it may work as intended.

Summary: use (2) for maximum portability, and (4) for maximum debugging.

Источник

unixforum.org

На будущее: whereis -b имя_искомой_команды либо locate имя_искомой_команды (можно ещё так: locate имя | grep bin ).

rm_ Сообщения: 3340 Статус: It’s the GNU Age ОС: Debian Контактная информация:

Re: Где лежит интерпретатор php?

Сообщение rm_ » 12.12.2007 22:05

Re: Где лежит интерпретатор php?

только учтите, что
php, php4, php5, php-cgi, php-cli и т.п. — могут быть разными файлами, и, возможно, с разными настройками,
сам недавно на это напоролся.

Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.

aim Бывший модератор Сообщения: 749 Статус: Санкт-Петербургский LUG ОС: GNU/Linux Контактная информация:

Re: Где лежит интерпретатор php?

Сообщение aim » 13.12.2007 12:05

нигде. вам нужно его отдельно поставить (Пакет называется php5-cli).

лежать будет как /usr/bin/php5

Санкт-Петербургская группа пользователей GNU/Linux https://spblug.org/
Адрес для электронных писем: aim@digital-activity.org

serzh-z Бывший модератор Сообщения: 8256 Статус: Маньяк ОС: Arch, Fedora, Ubuntu Контактная информация:

Re: Где лежит интерпретатор php?

Сообщение serzh-z » 13.12.2007 12:31

Re: Где лежит интерпретатор php?

Сообщение TweeKane » 13.12.2007 21:14

нету там:
# /usr/bin/php
bash: /usr/bin/php: Нет такого файла или каталога

MadDog Бывший модератор Сообщения: 2298 Статус: Добрый банщик Контактная информация:

Re: Где лежит интерпретатор php?

Сообщение MadDog » 13.12.2007 23:23

aim Бывший модератор Сообщения: 749 Статус: Санкт-Петербургский LUG ОС: GNU/Linux Контактная информация:

Re: Где лежит интерпретатор php?

Сообщение aim » 13.12.2007 23:43

при установленном php5-cli нет /usr/bin/php 😉

на самом деле это в пакете какая-то проблема

если поставить php4-cli то появляется /etc/alternatives/php и уже тогда можно сконфигурить его так чтобы /usr/bin/php указывал на php5.

вот только что на чистой инсталляции спецом проверил.

Санкт-Петербургская группа пользователей GNU/Linux https://spblug.org/
Адрес для электронных писем: aim@digital-activity.org

MadDog Бывший модератор Сообщения: 2298 Статус: Добрый банщик Контактная информация:

Читайте также:  Как посмотреть характеристики на линуксе

Re: Где лежит интерпретатор php?

Сообщение MadDog » 13.12.2007 23:56

aim
Ставил только php5 (как модуль к апачу, так и cli). Есть у меня и /usr/bin/php, которая является ссылкой на /etc/alternatives/php, которая в свою очередь является ссылкой на /usr/bin/php5.

maddog:[~] % ll /usr/bin | grep php [23:53] lrwxrwxrwx 1 root root 21 2007-04-16 23:52 php -> /etc/alternatives/php -rwxr-xr-x 1 root root 5515168 2007-10-25 01:26 php5

maddog:[~] % ll /etc/alternatives | grep php [23:54] lrwxrwxrwx 1 root root 13 2007-10-29 09:44 php -> /usr/bin/php5 lrwxrwxrwx 1 root root 29 2007-10-29 09:44 php.1.gz -> /usr/share/man/man1/php5.1.gz

P.S. PHP4 у меня на домашнем компе отродясь не стояло. Сразу ставил пятёрку.

Источник

Как загрузить PHP в Linux?

PHP в основном используется на стороне сервера (и JavaScript на стороне клиента) для создания динамических веб-страниц через HTTP, однако вы будете удивлены, узнав, что вы можете запускать PHP в терминале Linux без необходимости в веб-браузере.

Как узнать, установлен ли PHP в Linux?

Проверка и печать версии PHP, установленной на вашем сервере Linux и Unix

  1. Откройте окно терминала и введите следующие команды.
  2. Войдите на сервер с помощью команды ssh. …
  3. Показать версию PHP, выполнить: php –version ИЛИ php-cgi –version.
  4. Чтобы напечатать версию PHP 7, введите: php7 –version ИЛИ php7-cgi –version.

Где находится исполняемый файл PHP Linux?

1. Проверьте путь установки PHP в Linux. Команда whereis возвращает путь к исполняемому файлу. В приведенном ниже примере мы видим, что путь к исполняемому файлу PHP — / usr / bin / php, и он связан с файлом / www / server / php / 73 / bin / php (это настоящий PHP запускаемый файл).

Установлен ли PHP на моем компьютере?

1. Введите следующую команду, заменив [местоположение] на путь к вашей установке PHP. 2. При вводе php -v теперь отображается версия PHP, установленная в вашей системе Windows.

Где запустить PHP-код?

Запустите свой первый скрипт PHP

  • Перейдите в каталог сервера XAMPP. Я использую Windows, поэтому каталог моего корневого сервера — «C: xampphtdocs».
  • Создайте hello.php. Создайте файл и назовите его «hello.php»
  • Код внутри привет. php. …
  • Открыть новую вкладку. Запустите его, открыв новую вкладку в браузере.
  • Загрузите hello.php. …
  • Вывод. …
  • Создать базу данных. …
  • Создать таблицу.

Нужно ли мне загружать PHP?

Нет, если вы установили на свой компьютер веб-сервер (например, Apache), он не будет включать PHP. Вам необходимо установить его, если он вам нужен. Существуют такие приложения, как WAMP и XAMPP, которые без проблем установят Apache, MySQL и PHP на ваш компьютер.

Является ли PHP бесплатным программным обеспечением?

PHP — это язык сценариев общего назначения, предназначенный для веб-разработки. … Стандартный интерпретатор PHP, работающий на Zend Engine, — это бесплатное программное обеспечение, выпущенное под лицензией PHP. PHP был широко перенесен и может быть бесплатно развернут на большинстве веб-серверов практически во всех операционных системах и платформах.

Источник

Оцените статью
Adblock
detector