Как определить, было ли установлено и настроено веб-приложение? - PullRequest
2 голосов
/ 09 мая 2009

Я не уверен, что будет достаточно, чтобы быть моим вопросом ... Ну, я разрабатываю CMS на PHP с Zend Framework. Я хотел бы иметь хороший веб-интерфейс для установки и настройки приложения после распаковки его где-нибудь ... В некоторых CMS или в любом другом приложении предложите этот способ, просто введя 'install url', например 'http://localhost/app/install'

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

Вдохновленный файлом pid в мире Unix, я хочу сделать то же самое с файлом InstallState. Запись любого логического значения внутри, а затем проверка может быть идеей ..

Что вы думаете об этом? У тебя есть идеи получше?

Ответы [ 4 ]

5 голосов
/ 09 мая 2009

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

  1. Позвольте пользователю запустить установщик.
  2. После успешного завершения создайте некоторую форму файла блокировки (многие приложения просто создают файл 'installer.lock', в котором ничего нет). Наличие этого файла должно остановить пользователя, запускающего установщик , снова .
  3. Запретить выполнение основного сценария (даже после успешной установки) до тех пор, пока весь каталог установки не будет удален с сервера.

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

Простой, безопасный, отсортированный. :)

1 голос
/ 09 мая 2009

Вы можете записать значение в вашу базу данных или просто удалить сам файл после завершения установки. Многие программы просят пользователей удалить файл / install после его завершения. Для этого вы можете проверить, существует ли каталог установки, и заставить администратора удалить его до запуска остальной части скрипта.

0 голосов
/ 11 мая 2009

Использование сценария установки Drupal в качестве примера ...

if ( ! config_file_exists()) {
    tell_user_to_write_config_file();
} elseif ( ! can_connect_to_db()) {
    tell_user_to_fix_config_file();
} elseif ( ! check_db_if_installed() ) {
    do_install_stuff();
} else {
    tell_user_system_installed()
}

Очевидно, магия происходит в do_install_stuff() - в случае с Drupal, он проверяет наличие строки в таблице настроек (variable) с именем install_task. Пока это будет последнее, что написано при первоначальной установке системы, вам будет хорошо.

0 голосов
/ 09 мая 2009

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

Тот же скрипт может позже отказаться работать, если файл конфигурации присутствует. Также общепринятой практикой является указание пользователю удалить установочный скрипт / папку после настройки. Некоторые даже делают все возможное для принудительного удаления, вообще не работая при наличии файлов.

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

...