Как перезапустить php windows

Содержание
  1. Как перезапустить php-fpm?
  2. 15 ответов
  3. apache — Как заставить перезагрузить файл php.ini?
  4. Решение
  5. Другие решения
  6. Как перезагрузить службу php7.0-fpm / php5.0-fpm
  7. Как отредактировать файл php.ini или www.conf?
  8. Запустите php-fpm на CentOS / RHEL 7
  9. Остановить php-fpm CentOS / RHEL 7
  10. Перезагрузить php-fpm CentOS / RHEL 7
  11. Перезапустите php-fpm CentOS / RHEL 7
  12. Запуск / остановка / перезапуск / перезагрузка php-fpm на CentOS / RHEL 6.x или старше
  13. Как запустить / остановить / перезагрузить / перезапустить php5-fpm (версия php 5.x) на Ubuntu / Debian Linux
  14. Как запустить / остановить / перезагрузить php7.0-fpm (php version 7.x) на Ubuntu / Debian Linux
  15. Как вы перезапустите php-fpm?
  16. Автоматический перезапуск PHP-скрипта на выходе
  17. Сценарий PHP также может перезапускаться с помощью PCNTL.
  18. Могу ли я автоматически перезапустить скрипт PHP?
  19. Да, я могу!
  20. Независимо от того, было ли оно прекращено должным образом?
  21. Да, я могу перезапустить, если это прекращено!
  22. Или прекращено из-за ошибки?
  23. То же самое!
  24. Но вы знаете, что я хочу больше, чем это правильно?
  25. Безусловно! Я могу перезапустить на kill, hub даже Ctrl-C!
  26. Я не хочу, чтобы все эти ошибки можно было перезапустить тоже?
  27. Без проблем я тоже могу обрабатывать ошибки!
  28. Здесь будут драконы.
  29. Продвинутое использование, а не слабое сердце.

Как перезапустить php-fpm?

Мне нужно перезагрузить мой php.ini, и в диалоговом окне справки нет ничего о перезапуске.

15 ответов

Примечание : prepend sudo , если не root

Сценарии SysV Init напрямую:

Использование сценария оболочки службы

Использование Upstart (например, ubuntu):

Использование systemd (более новые серверы):

Или любой эквивалент в вашей системе.

Для Mac OS X это то, что я делаю:

Сделайте сценарий /usr /local /etc /php /fpm-restart :

убедитесь, что /usr /local /sbin находится в $ PATH

, то просто вызовите его с терминала fpm-restart и BOOM !!

Обычно, service php5-fpm restart будет работать нормально, в актуальном дистрибутиве.

Но иногда он терпит неудачу, сообщая вам о перезагрузке : Неизвестный экземпляр: (или такой).

Теперь, если вам не нравится перезагружать ваш сервер, просто запустите процессы и начните новый (отредактированный здесь):

Это должно работать:

Для Mac OSX для меня работала перезагрузка службы поддержки php56 .

php-fpm перезапустится, если вы отправляете сигнал USR2 в основной процесс:

Поэтому нам просто нужно указать php-fpm для записи своего pid где-нибудь. В этом примере я предположим, что вы хотите сохранить его в /etc/private/php-fpm.pid , а php-fpm работает как пользователь _php. Сначала добавьте эту строку в файл конфигурации:

Затем создайте файл /etc/php-fpm.pid и убедитесь, что у php-fpm есть разрешение на его изменение:

Теперь, в следующий раз, когда начнется php-fpm, вы сможете получить его pid и перезапустить его следующим образом:

Или вы можете объединить их в одну команду:

У меня возникла проблема с перезапуском php7-fpm, потому что я не знал, как именно была названа услуга. Эта функция дала мне ответ:

Служба php7-fpm в моем Ubuntu была вызвана php7.0-fpm , поэтому я сделал:

служба php7.0-fpm restart

Для меня я только что обновил apt, и перезапуск службы не работал. Мне пришлось убить существующие процессы до того, как они сработали, используя: killall php5-fpm

apache — Как заставить перезагрузить файл php.ini?

Я настроил веб-сервер на прошлой неделе, он работал нормально.

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

Я пытаюсь phpinfo(); на моем веб-сервере это дает мне:

Но файл php.ini не загружен.

Я исследую, файл php существует и имеет очень большие разрешения:

Я пытаюсь parse_ini_file(«/opt/rrh/php/lib/php.ini»)); , он не возвращает ошибку …

Конечно, я перезагружаю свой сервер дюжину времени.

Что я могу сделать больше, чтобы решить мою проблему?

  1. Redhat 6
  2. Apache 2.4
  3. PHP 5.5.19 с libphp5.so модуль Apache

Решение

Для принудительной перезагрузки php.ini вам нужно перезапустить apache.

Пытаться sudo service apache2 restart из командной строки.
Или же sudo /etc/init.d/apache2 restart

Другие решения

Вы также можете использовать изящный перезапуск сервера Apache с service apache2 reload или же apachectl -k graceful ,
Как апач доктор говорит:

Сигнал USR1 или изящный заставляет родительский процесс сообщать
дети, чтобы выйти после их текущего запроса (или выйти немедленно
если они ничего не обслуживают). Родитель перечитывает его
файлы конфигурации и повторно открывает свои файлы журнала. Как каждый ребенок умирает
родитель заменяет его на ребенка из нового поколения
Конфигурация, которая начинает обслуживать новые запросы немедленно.

Как перезагрузить службу php7.0-fpm / php5.0-fpm

Я являюсь новым пользователем системы Linux и Unix. Я хочу перезагрузить или перезапустить службу PHP-fpm. Как перезапустить PHP-fpm? Как перезапустить php7.0-fpm на сервере Ubuntu Linux 16.04 LTS?

Читайте также:  Виджет bluetooth для windows

PHP-FPM — это простой и надежный менеджер процессов FastCGI для PHP. Вы можете использовать его с Apache, Nginx и другими веб-серверами. Он включает в себя множество дополнительных функций. Посмотрим, как остановить или перезапустить или перезагрузить PHP-FPM после обновления файла php.ini.

Как отредактировать файл php.ini или www.conf?

Чтобы изменить php.ini:

Чтобы отредактировать файл конфигурации php-fpm:

После редактирования сохраните и закройте файл. Теперь вам нужно запустить команду в соответствии с версией дистрибутива Linux / Unix после редактирования файла.

Запустите php-fpm на CentOS / RHEL 7

Остановить php-fpm CentOS / RHEL 7

Перезагрузить php-fpm CentOS / RHEL 7

Перезапустите php-fpm CentOS / RHEL 7

Запуск / остановка / перезапуск / перезагрузка php-fpm на CentOS / RHEL 6.x или старше

Введите следующую команду:

Как запустить / остановить / перезагрузить / перезапустить php5-fpm (версия php 5.x) на Ubuntu / Debian Linux

ИЛИ, если вы используете дистрибутив на основе systemd, такой как Ubuntu Linux 16.04+ LTS или Debian Linux 8.x +:

Как запустить / остановить / перезагрузить php7.0-fpm (php version 7.x) на Ubuntu / Debian Linux

ИЛИ, если вы используете дистрибутив на основе systemd, такой как Ubuntu Linux 16.04+ LTS или Debian Linux 8.x +:

Как вы перезапустите php-fpm?

Мне нужно перезагрузить мой php.ini, и в диалоге помощи нет ничего о его перезапуске.

Примечание : добавьте, sudo если не root

Использование сценариев SysV Init напрямую:

Использование скрипта сервисной обертки

Использование Upstart (например, Ubuntu):

Использование systemd (более новые серверы):

Или любой другой эквивалент в вашей системе.

Для Mac OS X это то, что я делаю:

Сделайте скрипт /usr/local/etc/php/fpm-restart :

убедитесь, что / usr / local / sbin находится в вашем $ PATH

тогда просто вызовите его из терминала fpm-restart и BOOM !!

Как правило, все service php5-fpm restart будет в порядке, на современном распространении.

Но иногда это терпит неудачу, говоря вам restart: Unknown instance: (или тому подобное).

Теперь, если вы не любите перезагружать свой сервер, просто убейте процессы и начните все сначала (отредактировано здесь):

Это должно работать:

Для Mac OSX brew services restart php56 работал для меня.

У меня была проблема с перезапуском php7-fpm, потому что я не знал, как именно была названа служба. Эта функция дала мне ответ:

Служба php7-fpm в моем Ubuntu была вызвана php7.0-fpm , поэтому я сделал:

service php7.0-fpm restart

php-fpm перезапустится, если вы отправите сигнал USR2 основному процессу:

Так что нам просто нужно дать php-fpm команду записать свой pid. В этом примере я предполагаю, что вы хотите сохранить его в /etc/private/php-fpm.pid , а php-fpm работает как пользователь _php. Сначала добавьте эту строку в файл конфигурации:

Затем создайте файл /etc/php-fpm.pid и убедитесь, что php-fpm имеет разрешение на его изменение:

Теперь, когда в следующий раз запустится php-fpm, вы сможете получить его pid и перезапустить его так:

Или вы можете объединить их в одну команду:

Для меня я только что обновился через apt, и перезапуск службы не работал. Мне пришлось убить существующие процессы, прежде чем он работал, используя: killall php5-fpm

Автоматический перезапуск PHP-скрипта на выходе

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

Читайте также:  Realtek drivers windows 10 64 bit ethernet driver

Сценарий PHP также может перезапускаться с помощью PCNTL.

Отказ от ответственности: точка этого упражнения заключается только в том, чтобы доказать, что PHP вполне способен перезапустить себя и ответить на вопрос:

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

Именно поэтому мы можем подробно рассказать о процессах unix, поэтому я предлагаю вам начать с книги PCNTL или обратиться к php-pcntl для получения более подробной информации.

В примерах мы предположим, что это скрипт PHP CLI, запущенный в среде * nix с терминала с полупристойной оболочкой с помощью команды:

Мы передаем атрибут счетчика перезапуска в качестве индикатора, что процесс был перезапущен.

Могу ли я автоматически перезапустить скрипт PHP?

Да, я могу!

Независимо от того, было ли оно прекращено должным образом?

Да, я могу перезапустить, если это прекращено!

Или прекращено из-за ошибки?

То же самое!

Но вы знаете, что я хочу больше, чем это правильно?

Безусловно! Я могу перезапустить на kill, hub даже Ctrl-C!

Как мне его прекратить?

Если вы наполнили процесс, удерживая Ctrl-C, вы можете просто поймать его где-нибудь в выключении.

Я не хочу, чтобы все эти ошибки можно было перезапустить тоже?

Без проблем я тоже могу обрабатывать ошибки!

Хотя на первый взгляд это работает нормально, потому что pcntl_exec работает в одном процессе, мы не замечаем, что все ужасно неправильно. Если вы хотите создать новый процесс и позволить старому умереть вместо этого, что является вполне жизнеспособной альтернативой, см. Следующий пост, вы заметите, что на каждой итерации запускается 2 процесса, потому что мы запускаем PHP NOTICE и ERROR из-за общего контроля , Который, конечно, может быть легко исправлен, гарантируя, что мы умрем () или exit () после вызова pcntl_exec в обработчике ошибок, иначе PHP предполагает, что допуски были приняты и продолжаются.

То, что я пытаюсь сделать, состоит в том, что даже если вы можете перезапустить сценарий, который потерпел неудачу, это не повод для отказа от кода. Хотя для этой практики могут существовать жизнеспособные варианты использования, я категорически не согласен с тем, что перезапуск при сбое должен использоваться как решение для сбоев сценариев из-за ошибок! Как мы можем видеть из этих примеров, нет никакого способа точно узнать, где это произошло, поэтому мы не можем быть уверены, где он начнется снова. Переход на решение «быстрого исправления», которое может показаться работоспособным, может иметь больше проблем, чем раньше.

Вместо этого я предпочел бы увидеть дефект, который был бы рассмотрен с помощью некоторых правильных модульных тестов, которые помогут избавиться от преступника, чтобы мы могли исправить эту проблему. Если у PHP заканчивается память, его можно избежать за счет консервативного использования ресурсов, отключив переменные после использования. (кстати, вы найдете назначение нулевого значения намного быстрее, чем использование unset для одного и того же результата). Я боюсь, хотя, если вы оставите его нерешенным, перезапуск будет определенно служить подходящим помощником для банки червей, которые у вас уже есть.

Здесь будут драконы.

Продвинутое использование, а не слабое сердце.

Чтобы запустить отдельный процесс, измените функцию restartMyself, чтобы:

Это, безусловно, может быть приключением, преследующим процессы, которые возобновляют иммунитет к вашему убийству, если вам удастся поймать их в процессе. знак равно

Убедитесь, что сценарий достаточно, чтобы у вас было достаточно времени, чтобы убить его.

настаивать на том, чтобы нежить оставалась мертвой. Это не простаивающая ссылка, так как вам было бы разумно рассмотреть зомби и сирот, но в конечном итоге даже самым сложным процессам, как правило, по-прежнему нужен родитель, поэтому убийство сеанса оболочки должно заставить их отдохнуть.

Читайте также:  Папка загрузок windows store

Все стандартные отказы распространяются, удачи! знак равно

Предполагая , что:

  • Вызовите один и тот же файл сценария x количество раз
  • Повторный вызов, если он прерывается / заканчивается / останавливается
  • Автоматизированный процесс для бесконечного цикла

Некоторые варианты приходят на ум для достижения вашей цели [Решения на базе Unix / Linux]:

Используйте BASH-скрипт , чтобы скрипт PHP после остановки / окончания / прерывания можно было возобновить:

Обработчик выполнения Fat Controller – вот основные функции, которые вы ищете:

  • Используется для многократного запуска других программ
  • Может запускать много экземпляров любого скрипта / программы параллельно
  • любой сценарий может быть повторно запущен, как только он завершит выполнение

очень похож на CRON, но эти ключевые функции – это то, что вам нужно

Используя CRON , вы можете вызвать его скрипт PHP через интервалы, например, одну минуту , а затем с помощью этого кода в самом начале вашего PHP-скрипта вы сможете контролировать количество запущенных потоков, выходящих, если 8 уже Бег:

поиск процессов, работающих с одним и тем же путем текущего файла, и возвращает количество найденных процессов. Затем, если их больше 7, выйдет.

Чтобы дополнить ответ ow3n , скрипт CLI PHP похож на любую другую команду и может быть легко повторен в бесконечном цикле while. Он будет работать точно так же, как запуск команды сам по себе, но будет работать снова, когда она закончится. Просто нажмите Ctrl + C, когда вы хотите завершить цикл.

Edit: Если ваш процесс ловит сигналы (что необходимо, если это приложение с 12 факторами ), вам нужно будет удерживать Ctrl + C, а не просто нажимать на него. Пресса будет захвачена процессом (который должен завершиться сам), но цикл while снова перезапустит процесс (что полезно, если вы просто хотите перезапустить процесс, а не прекратить его). Если ваш процесс не захватывает сигналы, тогда Ctrl + C убьет как процесс, так и цикл while.

Вот простейший способ сделать это без лишнего вывода:

while :; do [command]; done

while :; do echo «test» && sleep 1; done

while :; do php myscript.php; done

Тем не менее, я немного обеспокоен последствиями в ваших комментариях:

  1. Я бы дважды подумал об использовании потоков в PHP. Языки, которые используют эту модель, имеют гораздо лучшую / стабильную / зрелую среду, чем PHP (например, Java).
  2. Использование нескольких процессов вместо нескольких потоков может показаться неэффективным, но поверьте мне, это больше, чем делает его с точки зрения простоты, ремонтопригодности, легкости отладки и т. Д. Многопоточность может быстро привести вас к обслуживанию ад , что объясняет появление актера Модель .
  3. Является ли эффективность бизнес-требованиями? Обычно это из-за ограниченных ресурсов (например, встроенных устройств), но я сомневаюсь, что это ваш случай, иначе вы бы не использовали PHP. Подумайте, что в наши дни люди намного дороже компьютеров . Поэтому, чтобы свести к минимуму затраты, гораздо более выгодно максимизировать эффективность ваших людей, а не ваших компьютеров ( см. Правило экономики Unix ). Многопоточность, если все будет хорошо, сэкономит вам немного денег, оптимизируя использование ваших компьютеров, но будет стоить вам гораздо больше с точки зрения головных болей, которые это вызовет для ваших людей.
  4. Если вам абсолютно необходимо использовать потоки, я настоятельно рекомендую вам рассмотреть модель Actor. Акка – отличная реализация.
  1. Если вы запускаете свои скрипты в процессе разработки, одного процесса [каждого типа] должно быть достаточно.
  2. Если вы запускаете свои сценарии на производстве, вам следует полагаться на диспетчер процессов для управления вашими процессами, такими как Upstart .
  3. Избегайте превращать ваши процессы в дьямонов.
  4. Узнайте о 12 факторных приложениях , особенно о процессах , параллельности и одноразовости .

Обновление. Контейнеры упрощают управление и управление флотом процессов.

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

Только мои 5 центов. Перезапуск PCNTL с пользовательской обработкой ошибок.

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