Как запустить скрипт php на сервере через командную строку - PullRequest
4 голосов
/ 25 мая 2010

Я создал скрипт php для импорта RSS-фида в базу данных. Огромный поток (с 2004 по 2010 год, около 2 миллионов записей) должен быть вставлен в базу данных. Я запускал скрипт в браузере, но темп его вставки (примерно 1 в секунду), я сомневаюсь, что для ввода этих данных требуется еще 20-25 дней, даже если я запускаю его 24 часа в сутки. Я пробовал запустить его в разных окнах браузера одновременно и закончил только 70000 записей за последние два дня. Я не уверен, как сервер отреагирует, если я запусту 10-12 экземпляров одновременно.

Программист на стороне моего клиента говорит, что я могу запустить его прямо на сервере через командную строку. Может ли кто-нибудь сказать мне, сколько будет иметь значение, если я буду запускать его через командную строку? И каков синтаксис командной строки для его запуска? Я на Apache, PHP / MySQL. Я попробовал через Интернет подобный ответ, но они кажутся мне довольно запутанными, поскольку я не являюсь системным администратором или настолько хорош в Linux, хотя в прошлом я выполнял такие задачи, как svn-репозитории и устанавливал некоторые модули apache на сервер, так что я надеюсь, Я мог бы справиться с этим, если бы кто-нибудь сказал мне, как это сделать.

Ответы [ 5 ]

9 голосов
/ 25 мая 2010

Разница в скорости: минимальная. Все, на чем вы экономите, это блокировка ввода-вывода NET и подключения (и издержек apache, которые незначительны).

Как это сделать:

bash> php -f /path/to/my/php/script.php

У вас может быть установлен только пакет php5-mod, который является php для apache, вам, возможно, придется установить реальный интерпретатор командной строки, однако многие дистрибутивы устанавливают оба. Лично я думаю, что в алгоритме есть проблема эффективность . Кажется, что что-то, что занимает дни и дни, может ускориться за счет кэширования и анализа производительности в худшем случае (запись Big-O).

Кроме того, php vanilla не очень быстрый, есть много способов сделать его действительно быстрым, но если вы выполняете тяжелые вычисления, вы должны рассмотреть c / c ++, C # / Mono (возможно), возможно python (может может быть предварительно скомпилирован, может и не быть намного быстрее).

Но исследование этих других торговых точек настоятельно рекомендуется.

3 голосов
/ 25 мая 2010

Достаточно указать только имя файла для выполнения:

php -f <YourScriptHere.php>

См. документацию для больше параметров командной строки .

1 голос
/ 25 мая 2010

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

php yourscript.php

Если вы хотите, чтобы этот процесс работал в фоновом режиме, выполните:

php yourscript.php &

Затем вы можете запустить несколько процессов одновременно. Чтобы определить экземпляры скрипта, который в данный момент выполняется, выполните:

ps aux | grep yourscript.php

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

0 голосов
/ 13 марта 2019

Вам также может понадобиться опция -n (без файла php.ini) или опции, чтобы указать, где можно найти файл php-cli.ini или php.ini.

0 голосов
/ 25 мая 2010

в Linux:

php -f file.php

тип

php --help 

для других вариантов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...