Я использую файл сценария perl как файл карты в директиве RewriteMap. Как я прочитал apache загружает сценарий один раз в начале, так что нужно перезагрузить или перезапустить apache после любых изменений в этом файле сценария?перезапускает службу Apache, необходимую при любых изменениях в файле rewritemap?
ответ
Да, rewrite maps зарегистрированы только при запуске Apache. А при использовании внешних программ, как карты перепишем (т.е. карта типа pgr
) программа файлы должны быть заблокированы с RewriteLock
:
Эта директива устанавливает имя файла для синхронизации файла блокировки, который mod_rewrite должен общаться с
RewriteMap
программ. Установите этот файл блокировки на локальный путь (не на устройстве, подключенном к NFS), если вы хотите использовать карту-программу перезаписи. Это не требуется для других типов переписывающих карт.
Но другие типы карт могут быть изменены впоследствии:
Для простого текста и формата DBM файлов, смотрели вверх ключи кэшируются в активной зоне до времени изменения изменений файла проекта или сервер выполняет перезагрузку. Таким образом, вы можете иметь map-функции в правилах, которые используются для каждый. Это не проблема, потому что внешний поиск происходит только один раз!
Я не уверен, что ответ выше правильный, перезагрузка кажется прекрасной.
Вы можете сделать «ps aux | grep YOUR_REWRITE_PROGRAM», чтобы проверить время PID/время вашей программы перезаписи карты.
Apache reload, похоже, устанавливает новое время PID/время для этих процессов, поэтому я бы предположил, что запущены новые процессы, перезагрузка может быть прекрасной.