Как определить, было ли установлено и настроено веб-приложение?

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

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

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

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

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

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

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

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

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

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

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

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

Использование сценария установки 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 . Пока это последнее, что написано, когда вы выполняете первоначальную установку системы, вам будет хорошо идти.