Я не уверен, что по моему вопросу достаточно … Ну, я разрабатываю CMS на PHP с Zend Framework. Я хотел бы иметь хороший веб-интерфейс для установки и настройки приложения после его распаковки где-то … Некоторые CMS или независимо от приложения, предлагают этот способ, просто введя «install url», например « http: // localhost / app / install '
Я хотел бы сделать то же самое, но я не хочу, чтобы кто-либо из пользователей настраивал его, поэтому я ищу способ определить, было ли приложение настроено или нет.
Вдохновленный файлом pid в мире unix, я хотел бы сделать то же самое с файлом InstallState. Написание любого логического значения внутри, а затем проверка может быть идеей ..
Что ты об этом думаешь ? У вас есть лучшие идеи?
Хотя я поддержал ответ Sam152, я почувствовал необходимость дать дополнительное разъяснение (это просто не соответствовало комментарию). Практика, используемая для этих ситуаций, такова:
Это обеспечивает гарантии на двух уровнях. Это предотвращает запуск программы установки (что может или не может быть проблемой для вашего приложения), и это предотвращает запуск продукта. Вы можете использовать наличие файла блокировки, чтобы сообщить пользователю, что они уже успешно завершили установку, их не нужно устанавливать повторно и что они должны удалить каталог.
Простой, безопасный, сортированный. 🙂
Вы можете записать значение своей базы данных где-нибудь или просто удалить файл после завершения установки. Многие программы попросят пользователей удалить файл / 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
. Пока это последнее, что написано, когда вы выполняете первоначальную установку системы, вам будет хорошо идти.