При изменении апачской конфигурации с mod_perl, не работает!

AppleScript походит на очевидный выбор. Вот быстрый запуск в нем (с некоторыми примечаниями по приложениям, которые не манипулировали в минимальном тестировании, которое я сделал) (примечание: замените reportEvent чем-то более соответствующим...):

my TestApp("Address Book")
#my testApp("Aperture") # Aperture doesn't seem to understand activate -- WTF?
#my testApp("Automator") # Automator brings up a sheet when launched -- not sure how to dismiss
my TestApp("Calculator")
my TestApp("Chess")
my TestApp("Dictionary")
# etc...
my reportEvent("OS", "FinishedTest")


on TestApp(appName)
    tell application appName to activate
    delay 1
    tell application "System Events" to count (application processes whose name is appName)
    if result is 0 then
        my reportEvent(appName, "QuitUnexpectedly")
    end if
    tell application appName to quit
    delay 1
    tell application "System Events" to count (application processes whose name is appName)
    if result is not 0 then
        my reportEvent(appName, "FailedToQuit")
    end if
end TestApp

on reportEvent(appName, eventDesc)
    do shell script "curl 'http://server/eventtracker.php?app=" & sanitizeSpaces(appName) & "&event=" & sanitizeSpaces(eventDesc) & "'"
end reportEvent

on sanitizeSpaces(dangerousString)
    set AppleScript's text item delimiters to " "
    set safeString to text items of dangerousString
    set AppleScript's text item delimiters to "_"
    return safeString as Unicode text
end sanitizeSpaces

... сохраните это как Приложение из Редактора AppleScript (таким образом, оно будет работать при открытии) затем добавьте его к тестовому списку Объектов Входа в систему учетной записи (область System Preferences-> Accounts-> вкладка Login Items).

Я задержу проблему того, чтобы заставлять сетевую учетную запись автовойти в систему при начальной загрузке. Я подозреваю, что существует not-too-hard способ сделать это (возможно, через управляемые предпочтения или просто заглядывание соответствующим файлам настроек "рукой" - т.е. сценарий поствосстановления), но у меня нет полезной тестовой установки удобной в данный момент.

0
задан 23 November 2009 в 00:38
1 ответ

Мое исходное предположение здесь - то, что Вы настроили обработчик через рычаг PerlHeaderParserHandler которому Вам вручили $r, или объект запроса.

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

Посмотрите $s->add_config документация в противоположность $r->add_config.

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

обновление 1: конечно, при попытке использовать $s->add_config для каждого запроса Вы подвергаетесь опасности наличия громоздкой конфигурации сервера в памяти с той же директивой, повторенной много раз. Создание обновления конфигурации сервера каждый непрактичный запрос.

Возможно, все еще возможно сделать это с $r->add_config(), замечание в документации, что "Конфигурационные директивы обрабатываются как будто данный в <Местоположение> блок". Вы попробовали тест не-Perl размещения параметра AssignUserId в <Местоположение> блок?

1
ответ дан 4 December 2019 в 23:18
  • 1
    Привет PP, я поместил эту внутреннюю часть виртуальный хост, который ловит каждый возможный домен *.domain.com. AssignUserId является внутренней деталью mpm-itk так я don' t думают, помещая в Месте wouldn' t работа. Если Вы подразумевали что, если я попытался вставить Местоположение только, чтобы видеть, работает ли оно, it' s хорошая идея.Примечания: Я didn' t получают опасность, которую Вы упомянули на своем обновлении 1. –  Devrim 23 November 2009 в 04:58
  • 2
    Apache использует пулы памяти, которые просто растут, пока не выпущено. Объект запроса ($r) выделяется в начале обработки каждого запроса веб-страницы, затем выпустил после обработки того запроса веб-страницы. Таким образом, можно добавить так, как Вам нравится к нему, потому что та память будет освобождена после запроса. Серверный объект ($s), однако, выделяется, когда серверный процесс запускает, и doesn' t выпущен, пока процесс не умирает. Таким образом, Вы хотите добавить к той конфигурации однажды, не каждый запрос . –  PP. 23 November 2009 в 10:01
  • 3
    Если Вы верите AssignUserId, не может быть помещен в < Location> директива затем Вы не можете использовать $r->add_config() согласно документации. –  PP. 23 November 2009 в 10:03

Теги

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