Подтвердить что ты не робот

Запуск PHP скрипт из командной строки

Как запустить скрипт PHP из командной строки, используя интерпретатор PHP, который используется для разбора веб-скриптов?

У меня есть файл phpinfo.php, доступ к которому из Интернета показывает, что German установлен. Однако, если я запускаю phpinfo.php из командной строки, используя - php phpinfo.php и grep для German, я не нахожу его. Так что оба phps разные. Мне нужно запустить скрипт, на котором php установлен German.

Как я могу это сделать?

4b9b3361

Ответ 1

UPDATE:

После недоразумения я наконец получил то, что вы пытаетесь сделать. Вы должны проверить файлы конфигурации вашего сервера; Вы используете apache2 или другое серверное программное обеспечение?

Ищите строки, которые начинаются с LoadModule php... Скорее всего, есть конфигурационные файлы/каталоги с именем mods или что-то в этом роде.

Вы также можете проверить вывод из php -r 'phpinfo();' | grep php и сравнить строки с phpinfo(); с веб-сервера.

Чтобы запустить php в интерактивном режиме:

(так что вы можете вставить/написать код в консоли)

php -a

Для того, чтобы он анализировал файл и выводил на консоль:

php -f file.php

Разбор файла и вывод в другой файл:

php -f file.php > results.html

Вам нужно что-то еще?

Чтобы запустить только небольшую часть, одну строку или подобное, вы можете использовать:

php -r '$x = "Hello World"; echo "$x\n";'

Если вы работаете в Linux, выполните man php на консоли.

если вам нужно/хотите запустить php через fpm, используйте cli fcgi

SCRIPT_NAME="file.php" SCRIP_FILENAME="file.php" REQUEST_METHOD="GET" cgi-fcgi -bind -connect "/var/run/php-fpm/php-fpm.sock"

где /var/run/php-fpm/php-fpm.sock - это файл сокета php-fpm.

Ответ 2

В SuSE есть два разных файла конфигурации для PHP: один для Apache и один для CLI (интерфейс командной строки). В каталоге /etc/php5/вы найдете каталог "apache2" и каталог "cli". У каждого есть файл "php.ini". Файлы предназначены для той же цели (конфигурация php), но применяются к двум различным способам запуска PHP. Эти файлы, помимо прочего, загружают модули, которые использует PHP.

Если ваша ОС похожа, то эти два файла, вероятно, не совпадают. Ваш Apache php.ini, вероятно, загружает модуль gearman, а cli php.ini - нет. Когда модуль был установлен (автоматический или ручной), он, вероятно, только обновил файл Apache php.ini.

Вы можете просто скопировать файл Apache php.ini в каталог cli, чтобы сделать среду CLI точно такой же, как и среда Apache.

Или вы можете найти строку, которая загружает модуль gearman в файл Apache и скопировать/вставить только его в файл CLI.

Ответ 3

Я искал решение этой проблемы в Windows, и кажется, что если у вас нет нормальных сред, вам нужно поместить полный каталог. Например, с файлом в том же каталоге, что и PHP:

F:\myfolder\php\php.exe -f F:\myfolder\php\script.php