PHP может перезапустить Apache?

Решение:

Откройте «Настройки сборки» для своего проекта в XCode, найдите «Путь поиска заголовка».

Дважды щелкните рядом с «Путь поиска по заголовку», где другие свойства имеют «да» или «нет»

Теперь добавьте следующее к «Путь поиска по заголовку» (в разделе «Настройки сборки»):

$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base

Не забудьте сделать их обоих рекурсивными.

15
задан 8 January 2009 в 20:16
поделиться

7 ответов

Я использовал сценарий крона (записанный в PHP, не выполняемом от веб-сервера), чтобы проверить, что сервер возрос, и перезапустите сервер.

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

Самый простой метод должен был бы иметь файл/tmp/RESTART_APACHE, который PHP может создать, и на который проверяет сценарий крона. Если сценарий крона видит файл/tmp/RESTART_APACHE затем, он делает надлежащий перезапуск Apache.

Используя крон сценарий представит задержку (до 60-х при выполнении его каждую минуту) но кроме этого должен работать, как Вы хотите.

В зависимости от того, как Вы намереваетесь использовать это, которое может добиться цели.

(Вы, вероятно, хотите использовать другой каталог, чем/tmp/, чтобы установить полномочия и предотвратить любого на способности сервера создать файл.)

Править: См. комментарий H Aaron к этому сообщению. Я соглашаюсь с тем, что он говорит: Вы действительно хотите быть осторожными, что способность перезапустить Ваш веб-сервер не является сервисом, общедоступным общественности.

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

18
ответ дан 1 December 2019 в 01:31
поделиться

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

Мой подход должен был создать нового пользователя в системе, дать этому пользователю sudo права перезагрузить апача и от Apache-> PHP, я привык SSH для localhost с авторизованным ключом без пароля тому пользователю, дав команду.

Причина этого состояла в том, что я не сделал требуемый, чтобы дать апачскому пользователю (обычно www-данные) питание в целом для перезагрузки себя. Я назвал нового пользователя wwwctrl.

Команда, которую я использовал, была:

ssh -i /path/to/key-file wwwctrl@localhost sudo /etc/init.d/apache2 reload

Я должен был выполнить эту команду вручную одно время как wwwctrl пользователь, чтобы иметь локальный ключ хоста, добавляемый к ~wwwctrl/.ssh/known_hosts.

Я использовал proc_open () для наблюдения выполнения команды.

На самом деле я генерировал пакет виртуальных хостов к различным установкам Apache в различных системах так в каждой системе, у меня был этот wwwctrl пользователь для перезагрузки Apache, в основном выполняя в этом "foreach хосты, как хост делает... wwwctrl@host".

13
ответ дан 1 December 2019 в 01:31
поделиться

Разве Вы не хотели бы передавать 'перезагрузку' вместо 'перезапуска?'

1
ответ дан 1 December 2019 в 01:31
поделиться

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

0
ответ дан 1 December 2019 в 01:31
поделиться

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

1
ответ дан 1 December 2019 в 01:31
поделиться

Чтобы сделать это, необходимо было бы отредактировать sudo файл и затем выполнить команду перезапуска, которая используется в системе, с помощью sudo, конечно. Если Вы сообщаете подробности, я мог бы сказать Вам, но у Вас даже есть доступ, чтобы сделать это? Это размещается? Крон, вероятно, был бы лучшим выбором здесь все же.

1
ответ дан 1 December 2019 в 01:31
поделиться

Я бы создал демона для отслеживания каталога с включенными сайтами и перезапуска Apache при добавлении или изменении файлов. Тогда вам не нужно ждать до 60 секунд, как при работе cron.

1
ответ дан 1 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: