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

XAMPP / PHP в Windows

Я использую XAMPP в Windows Vista. XAMPP - это установка возрастом около одного года со всеми параметрами по умолчанию.

Я написал скрипт на PHP, который будет сканировать веб-страницы и помещать данные в mysql. я размещен set_time_limit(36000) в исходном коде PHP, чтобы время ожидания сценария не истекло. Однако, поскольку я запускаю сценарий, направляя свой браузер к файлу PHP, кажется, что время ожидания браузера (Chrome и Firefox) истекло; а затем сценарий останавливается (т.е. сценарий работает нормально около минуты, а затем останавливается).

Вопросы:

  1. Я не понимаю, можно ли запустить php из командной строки с моей текущей конфигурацией. В командной строке я набрал: php -v и получил 'php' is not recognized as an internal or external command.
  2. Если вопрос 1 верен, как мне запустить PHP из командной строки? В противном случае, что еще я могу сделать, чтобы не вызвать тайм-аут?
  1. Вы не добавили PHP в PATH переменная окружения в Windows. Видеть документы PHP общие инструкции по настройке PHP из командной строки в Windows. В принципе, если вы хотите использовать PHP из командной строки, вам нужно добавить каталог, содержащий исполняемый файл PHP (возможно, C:\xampp\php в вашем случае) к вашему PATH переменная. Взгляни на это руководство для получения инструкций по внесению изменений в ваш PATH переменная.
  2. На данный момент вы можете запустить PHP из командной строки, набрав C:\xampp\php\php.exe но как только вы правильно установите PATH переменная, как в шаге 1 выше, вы сможете просто ввести php в командной строке.

Чтобы решить проблему тайм-аута PHP при запуске сценария из браузера, вряд ли проблема связана с вашим браузером. Есть два отдельных php.ini файлы конфигурации; один применяется к экземпляру PHP из командной строки, а другой - к экземпляру PHP, который использует Apache, поэтому убедитесь, что вы изменили правильный файл. Также следует иметь в виду, что Apache должен быть перезапущен, чтобы изменение конфигурации вступило в силу; лучше всего просто перезапустить весь стек.

Наконец, есть ли какая-то конкретная причина, по которой вы используете XAMMP, а не WAMP? Если вы не используете язык программирования Perl, я предлагаю вам скачать Установщик WAMP, который полностью интегрирован и настроит для вас все необходимые переменные среды, а также имеет отличную поддержку сообщества.

Редактировать: Я только что заметил, что вы на самом деле не упомянули об изменении каких-либо настроек в своем php.ini файл, поэтому я думаю, что это, вероятно, ваша проблема с таймаутами. В твоем php.ini файл вы найдете настройку для max_execution_time который указывается в секундах. Измените его на значение, которое, по вашему мнению, более точно позволит вашему скрипту завершить обработку, например, установите для него значение max_execution_time = 300 чтобы ваши сценарии выполнялись не более 5 минут до истечения времени ожидания. Опять же, не забудьте перезапустить Apache после внесения этого изменения.

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

Вы должны иметь возможность запускать php из командной строки. Вам либо нужно будет перейти в папку установки XAMPP туда, где php.exe живет или добавьте этот каталог в переменную окружения PATH.

У меня есть старая установка WAMP, и я нашел ее в C:\wamp\bin\php\php5.3.0\php.exe:

C:\wamp\bin\php\php5.3.0>php.exe -v
PHP 5.3.0 (cli) (built: Jun 29 2009 21:25:23)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies