software:development:demo:cms:ucms:creating_file_server_check
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| software:development:demo:cms:ucms:creating_file_server_check [2025/04/27 23:08] – [Файл server_check.php] vladpolskiy | software:development:demo:cms:ucms:creating_file_server_check [2025/05/04 14:45] (текущий) – внешнее изменение 127.0.0.1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== 8.5. Файл server_check.php ====== | ||
| + | ===== Введение ===== | ||
| + | Файл server_check.php - исполнительный файл, который будет проверять наш веб-сервер, | ||
| + | * Версия PHP, | ||
| + | * Версия Apache http server, | ||
| + | * Наличие установленной версии системы управления базами данных MySQL, | ||
| + | * Модули и библиотеки PHP | ||
| + | * Права на чтение/ | ||
| + | * Отсутствие файла конфигурации | ||
| + | Так-же этот файл будет иметь функцию вывода информации (отображение данных файла **module_help.php**) о необходимых модулях и логику поведения | ||
| + | приложения при разных действиях пользователя. | ||
| + | ==== Подготовка ==== | ||
| + | |||
| + | Создадим в директории **/test** вложенную директорию **img** для хранения и вывода иконок. В | ||
| + | ней мы сохраним файлы иконок OK, ERROR и Refresh нашего установщика: | ||
| + | {{: | ||
| + | , {{: | ||
| + | , {{: | ||
| + | |||
| + | Основная часть файла это перечисление, | ||
| + | состоящего из строк и столбцов, | ||
| + | < | ||
| + | < | ||
| + | <tr> | ||
| + | < | ||
| + | Наименование модуля | ||
| + | </ | ||
| + | < | ||
| + | <?php echo "" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | * **%%< | ||
| + | * **%%< | ||
| + | * **%%< | ||
| + | * **%%<? | ||
| + | * **%%?> | ||
| + | * **%%</ | ||
| + | * **%%</ | ||
| + | * **%%</ | ||
| + | |||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим версию веб-сервера Apache */ | ||
| + | echo $_SERVER[' | ||
| + | echo '< | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | * **%%< | ||
| + | * **%%< | ||
| + | * **%%<? | ||
| + | * **%%< | ||
| + | * **%%$_SERVER[]%%** - встроенный массив, | ||
| + | * **%%' | ||
| + | * **%%<img src="" | ||
| + | * **%%alt="" | ||
| + | * **%%width="" | ||
| + | * **%%height="" | ||
| + | * **%%?> | ||
| + | * **%%</ | ||
| + | * **%%</ | ||
| + | |||
| + | <note blue> | ||
| + | :& | ||
| + | | ||
| + | | ||
| + | | ||
| + | < | ||
| + | <span class=" | ||
| + | </ | ||
| + | </ | ||
| + | **" | ||
| + | отодвинуть, | ||
| + | Это мы позже и пропишем в файле **install.css**. | ||
| + | </ | ||
| + | |||
| + | ==== Запросы ==== | ||
| + | Ниже приведен основной перечень выводов запросов к серверу, | ||
| + | для отображения информации в таблице | ||
| + | < | ||
| + | echo PHP_OS; | ||
| + | echo $_SERVER[' | ||
| + | echo PHP_VERSION; | ||
| + | print_r(get_loaded_extensions()); | ||
| + | echo phpversion(' | ||
| + | echo substr(sprintf(' | ||
| + | </ | ||
| + | * **%%PHP_OS%%** - константа вывода только названия операционной системы. | ||
| + | * **%%SERVER_SOFTWARE%%** - идентификатор сервера. | ||
| + | * **%%PHP_VERSION%%** - информация о версии PHP. | ||
| + | * **%%(get_loaded_extensions())%%** - возвращение массива имён скомпилированных и загруженных модулей. | ||
| + | * **%%phpversion(' | ||
| + | * **%%fileperms%%** — возвращает информацию о правах на файл | ||
| + | |||
| + | ==== Блок логики версии PHP ==== | ||
| + | Нами будет использоваться при написании приложения версия **PHP** не ниже **8.2** | ||
| + | |||
| + | Логический операторы условия **ЕСЛИ** (**if**) и **ИНАЧЕ** (**else**) расмотрены в предыдущей главе | ||
| + | [[software: | ||
| + | В коде, приведенном ниже мы добавим тип данных с двумя возможными значениями: | ||
| + | < | ||
| + | <?php | ||
| + | /* Выводим версию установленного PHP */ | ||
| + | /* Проверим, | ||
| + | if (version_compare(PHP_VERSION, | ||
| + | echo ' | ||
| + | /* Иначе выводим просьбу обновить PHP*/ | ||
| + | } else { | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | * **%%version_compare()%%** - сравнивает две " | ||
| + | | ||
| + | Мы проверяем, | ||
| + | Версия PHP: номер установленной версии и иконку **OK** из директории **/img** c заданным размером 18x18, | ||
| + | **ИНАЧЕ** выводим сообщение об ошибке: | ||
| + | размером и переменной **%%$install_error%%** присваиваем значение **true (истина)**. | ||
| + | |||
| + | ==== Блок логики проверки модулей PHP ==== | ||
| + | Мы рассмотрим принцип работы кода только для одного модуля **cURL**, остальные будет прописанны по этому шаблону. | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль cURL Module*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда cURL Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo " | ||
| + | echo '< | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | * **%%$extensions = get_loaded_extensions(); | ||
| + | возвращения массива имён загруженных модулей. | ||
| + | * **%%in_array(' | ||
| + | * **!** перед **%%in_array()%%** - означает отрицание, | ||
| + | Проверяем: | ||
| + | Включите cURL Module:, отображается иконка **ERROR** из директории **/img** c заданным | ||
| + | размером и переменной **%%$install_error%%** присваиваем значение **true (истина)**, | ||
| + | Установлено:, | ||
| + | |||
| + | ==== Блок логики проверки прав доступа ==== | ||
| + | В этом блоке нам необходимо проверить, | ||
| + | доступна для записи. К основным относятся: | ||
| + | * **0600** - Доступ на запись и чтение для владельца, | ||
| + | * **0644** - Доступ на запись и чтение для владельца, | ||
| + | * **0750** - Полный доступ для владельца, | ||
| + | * **0755** - Полный доступ для владельца, | ||
| + | * **0777** - Полный доступ для всех | ||
| + | | ||
| + | <note blue> | ||
| + | :& | ||
| + | Права доступа для проверки кода можно изменить командой | ||
| + | < | ||
| + | chmod(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Рассмотрим блок проверки прав доступа | ||
| + | | ||
| + | < | ||
| + | <?php | ||
| + | /* Проверим разрешения для папок */ | ||
| + | $dir_includes = substr(sprintf(' | ||
| + | if ($dir_includes == ' | ||
| + | echo '/demo доступна для записи'; | ||
| + | echo '< | ||
| + | } else { | ||
| + | echo '/ | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | * **%%$dir_includes%%** - переменная, | ||
| + | * **%%substr()%%** - функция, | ||
| + | * **%%sprintf()%%** - функция, | ||
| + | * **%%fileperms()%%** - возвращает информацию о правах доступа на файл | ||
| + | | ||
| + | Проверка: | ||
| + | /demo доступна для записи и отобразим иконку **OK**. **ИНАЧЕ** выводим сообщение: | ||
| + | /demo недоступна для записи, | ||
| + | присваиваем значение **true (истина)**. | ||
| + | |||
| + | ==== Блок логики переменной | ||
| + | |||
| + | Данный блок необходим для вывода справочной информации по необходимым приложению модулям и | ||
| + | расширениям, | ||
| + | а так-же в случае успеха отобразить кнопку " | ||
| + | |||
| + | <note blue> | ||
| + | :& | ||
| + | В блоках кода проверки выше, мы в случае ошибки присваивали переменной **%%$install_error%%** значение **true** | ||
| + | < | ||
| + | $install_error = true; | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | // Если переменная $install_error хотя бы раз приняла | ||
| + | // значение true, то выведим сообщение | ||
| + | // | ||
| + | // | ||
| + | if ($install_error == true) { | ||
| + | echo ' | ||
| + | echo '<p style=" | ||
| + | } else { | ||
| + | /* Если значение переменной $install_error значение не равно true */ | ||
| + | /* тогда выведим кнопку Продолжить */ | ||
| + | echo ' | ||
| + | <form action=" | ||
| + | <input type=" | ||
| + | </ | ||
| + | </ | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | |||
| + | Проверка: | ||
| + | Более подробную информацию о необходимых модулях можно найти на, ссылка на страницу требований. **ИНАЧЕ** | ||
| + | выводим блок кнопки " | ||
| + | |||
| + | ===== Файл | ||
| + | В директорию добавим тестовый файл **test_4.php** и записываем в него разобранный в этой главе код вывода запросов | ||
| + | <code php test_4.php> | ||
| + | < | ||
| + | |||
| + | < | ||
| + | <tr> | ||
| + | < | ||
| + | Server OS: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим имя операционной системы сервера */ | ||
| + | echo PHP_OS; | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Web server: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим версию веб-сервера Apache */ | ||
| + | echo $_SERVER[' | ||
| + | echo '< | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | PHP ver. > 8.2 | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим версию установленного PHP */ | ||
| + | /* Проверим, | ||
| + | if (version_compare(PHP_VERSION, | ||
| + | echo ' | ||
| + | /* Иначе выводим просьбу обновить PHP*/ | ||
| + | } else { | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | cURL Module: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | SimpleXML Module, PDO bz2 zlib sqlite3 zip mysqli*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда cURL Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo " | ||
| + | echo '< | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Folder Permissions: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим разрешения для папок */ | ||
| + | $dir_includes = substr(sprintf(' | ||
| + | if ($dir_includes == ' | ||
| + | echo " | ||
| + | echo '< | ||
| + | } else { | ||
| + | echo " | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <?php | ||
| + | // Если переменная $install_error хотя бы раз приняла | ||
| + | // значение true, то выведим сообщение | ||
| + | // | ||
| + | // | ||
| + | if ($install_error == true) { | ||
| + | echo ' | ||
| + | echo '<p style=" | ||
| + | } else { | ||
| + | /* Если значение переменной $install_error значение не равно true */ | ||
| + | /* тогда выведим кнопку Продолжить */ | ||
| + | echo ' | ||
| + | <form action=" | ||
| + | <input type=" | ||
| + | </ | ||
| + | </ | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Веведим в веб-браузере наш файл: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Как мы можем видеть, | ||
| + | (не установлена). При этом для тестовой директории demo установены права - **0644**, что означает доступ на запись и чтение для владельца, | ||
| + | |||
| + | **curl** для проверки выключен для наглядности примера | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Если **curl** был включен, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| + | ===== Файл server_check.php ===== | ||
| + | |||
| + | Откроем в блокноте созданный ранее в директории / | ||
| + | и запишем в него код из файла test_4.php, предварительно, | ||
| + | |||
| + | * комментарий < | ||
| + | |||
| + | Добавим в начало файла следующий код PHP: | ||
| + | |||
| + | <code php server_check.php> | ||
| + | <?php | ||
| + | include " | ||
| + | /* Подключем файл cons.php из директории includes*/ | ||
| + | include " | ||
| + | /* Объявим в переменной $file_config путь к файлу config.php | ||
| + | для файла./ | ||
| + | и проверим его наличие */ | ||
| + | $file_config = FOLDER . '/ | ||
| + | /* Если файл config.php в директории /includes существует, | ||
| + | приложение переведет на страницу выбора конфигурации | ||
| + | ./ | ||
| + | if (file_exists($file_config)) { | ||
| + | /* Вызов header, с задержкой 5 сек перенаправит на страницу | ||
| + | ./ | ||
| + | header(' | ||
| + | echo " | ||
| + | echo " | ||
| + | exit(); | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | * **%%include " | ||
| + | |||
| + | <note blue> | ||
| + | :& | ||
| + | Файл **%%tpl_install_header.php%%** в директории **/tpl** будет создан позднее в главе | ||
| + | [[software: | ||
| + | сейчас подключается, | ||
| + | </ | ||
| + | |||
| + | * **%%include " | ||
| + | * **%%$file_config = FOLDER . '/ | ||
| + | * **%%header(' | ||
| + | |||
| + | Проверка: | ||
| + | ./ | ||
| + | Обнаружена установленная версия приложения!\\ | ||
| + | Можно установить дополненительную конфигурацию приложения! | ||
| + | **ИНАЧЕ** будет выведена таблица проверки сервера. | ||
| + | |||
| + | Далее для необходимых нам модулей по шаблону кода из файла test_4.php, прописываем логику проверки в талице, | ||
| + | заменив путь к проверяемой директории с **/demo** на **../ | ||
| + | в нашем случае это: | ||
| + | |||
| + | * **Bzip2 Function** - используются для прозрачного чтения и записи сжатых файлов bzip2 (.bz2). | ||
| + | * **cURL Module** - позволяет подключаться и взаимодействовать со многими различными типами серверов с помощью многих различных типов протоколов (http, https, ftp, gopher, telnet, dict, file и ldap). | ||
| + | * **GD Library** - позволяет использовать функции изображений, | ||
| + | * **DOM Extension** - позволяет выполнять операции с документами XML и HTML через API DOM с PHP. | ||
| + | * **LDAP Protocol** - облегченный протокол доступа к каталогам, | ||
| + | * **MySQLi Extension** - позволяет получить доступ к функциональным возможностям MySQL 4.1 и выше. | ||
| + | * **OpenSSL Extension** - используются для симметричного и асимметричного шифрования и дешифрования, | ||
| + | * **PDO Extension** - определяет легкий, | ||
| + | * **PDO_SQLITE Driver** - драйвер, | ||
| + | * **SimpleXML Extension** - предоставляет очень простой и удобный набор инструментов для преобразования XML в объект, | ||
| + | * **SQLite3 Module** - поддержка баз данных SQLite версии 3. | ||
| + | * **Zip Extension** - позволяет прозрачно читать или записывать сжатые ZIP-архивы и файлы внутри них. | ||
| + | * **Zlib Module** - позволяет прозрачно читать и записывать сжатые gzip (.gz) файлы с помощью версий большинства функций файловой системы , которые работают с файлами, | ||
| + | |||
| + | В конец нашего файла добавим следующий код " | ||
| + | |||
| + | < | ||
| + | <? | ||
| + | <div class=" | ||
| + | <span style=" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <note blue> | ||
| + | :& | ||
| + | | ||
| + | css и пока соответственно мы его не видим. Позже будут подключенны стили ранее созданного (пока пустого) файла | ||
| + | [[software: | ||
| + | </ | ||
| + | |||
| + | И в заключение добавим " | ||
| + | * **%%include " | ||
| + | |||
| + | <note blue> | ||
| + | :& | ||
| + | Файл **%%tpl_install_footer.php%%** в директории **/tpl** будет создан позднее в главе | ||
| + | [[software: | ||
| + | сейчас подключается, | ||
| + | </ | ||
| + | |||
| + | Оформив правки и собрав воедино все описанное в данной главе записываем в файл **server_check.php** | ||
| + | готовый код | ||
| + | |||
| + | <code php server_check.php> | ||
| + | <?php | ||
| + | include " | ||
| + | /* Подключем файл cons.php из директории includes*/ | ||
| + | include " | ||
| + | /* Объявим в переменной $file_config путь к файлу config.php | ||
| + | для файла./ | ||
| + | и проверим его наличие */ | ||
| + | $file_config = FOLDER . '/ | ||
| + | /* Если файл config.php в директории /includes существует, | ||
| + | приложение переведет на страницу выбора конфигурации | ||
| + | ./ | ||
| + | if (file_exists($file_config)) { | ||
| + | /* Вызов header, с задержкой 5 сек перенаправит на страницу | ||
| + | ./ | ||
| + | header(' | ||
| + | echo " | ||
| + | echo " | ||
| + | exit(); | ||
| + | } | ||
| + | ?> | ||
| + | < | ||
| + | <tr> | ||
| + | < | ||
| + | Server OS: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим имя операционной системы сервера */ | ||
| + | echo "" | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Web server: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим версию веб-сервера Apache */ | ||
| + | echo $_SERVER[' | ||
| + | echo '< | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | PHP ver. > 8.2 | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Выводим версию установленного PHP */ | ||
| + | /* Проверим, | ||
| + | if (version_compare(PHP_VERSION, | ||
| + | echo ' | ||
| + | /* Иначе выводим просьбу обновить PHP*/ | ||
| + | } else { | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | cURL Module: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | SimpleXML Module, PDO bz2 zlib sqlite3 zip mysqli*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда cURL Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo " | ||
| + | echo '< | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | GD Library: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда GD Library Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo " | ||
| + | echo '< | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | SQLite3 Module: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда sqlite3 Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Zip Extension | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда Zip Extension у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | PDO Extension | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли PDO Extension*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда PDO Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | SimpleXML Extension: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда SimpleXML Extension у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Bzip2 Function: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда Bzip2 Function у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Zlib Module: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли модуль | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда Zlib Module у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | MySQLi Extension: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли MySQLi Extension*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда MySQLi Extension у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | PDO_SQLITE Driver: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли PDO_SQLITE Driver*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда PDO_SQLITE Driver у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | LDAP Protocol: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли LDAP Protocol*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда LDAP Protocol у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | OpenSSL Extension: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим включен ли OpenSSL Extension*/ | ||
| + | $extensions = get_loaded_extensions(); | ||
| + | if (!in_array(' | ||
| + | /* Когда OpenSSL Extension у нас выключен, | ||
| + | выводиться сообщение о невозможности продолжить, | ||
| + | появляется ссылка кнопка на эту же страницу " | ||
| + | echo ' | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | else { | ||
| + | echo ' | ||
| + | echo '< | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <tr> | ||
| + | < | ||
| + | Folder Permissions: | ||
| + | </ | ||
| + | < | ||
| + | <span class=" | ||
| + | <?php | ||
| + | /* Проверим разрешения для папок */ | ||
| + | $dir_includes = substr(sprintf(' | ||
| + | if ($dir_includes == ' | ||
| + | echo '/ | ||
| + | echo '< | ||
| + | } else { | ||
| + | echo '/ | ||
| + | /* Присвоим переменной $install_error значение true */ | ||
| + | /* т.е. ошибка установки - истина */ | ||
| + | $install_error = true; | ||
| + | } | ||
| + | ?></ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | <?php | ||
| + | // Если переменная $install_error хотя бы раз приняла | ||
| + | // значение true, то выведим сообщение | ||
| + | // | ||
| + | // | ||
| + | if ($install_error == true) { | ||
| + | echo ' | ||
| + | echo '<p style=" | ||
| + | } else { | ||
| + | /* Если значение переменной $install_error значение не равно true */ | ||
| + | /* тогда выведим кнопку Продолжить */ | ||
| + | echo ' | ||
| + | <form action=" | ||
| + | <input type=" | ||
| + | </ | ||
| + | </ | ||
| + | } | ||
| + | ?> | ||
| + | |||
| + | <div class=" | ||
| + | <span style=" | ||
| + | </ | ||
| + | <?php | ||
| + | include " | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Создадим в директории / | ||
| + | файлы иконок нашего установщика. Поместим в директорию /img файлы иконок OK, ERROR и Refresh. | ||
| + | * {{: | ||
| + | * {{: | ||
| + | * {{: | ||
| + | Переместим файл **config.php** в директорию **demo**. И откроем файл **server_check.php** в браузере | ||
| + | |||
| + | {{: | ||
| + | |||
| + | При нажатии на ссылку " | ||
| + | " | ||
| + | [[software: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Обновим PHP до версии => 8.2 на нашем сервере и установим (включим) недостоющие модули и библиотеки, | ||
| + | нажмем ссылку " | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Переместим назад файл **config.php** из директории **demo**. И откроем файл **server_check.php** в браузере | ||
| + | |||
| + | {{: | ||
| + | |||
| + | И через 5 сек нас перенаправит на следющее окно файла создания пользователя базы данных, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | <note blue> | ||
| + | <wrap left>← [[software: | ||
| + | <wrap right> | ||
| + | </ | ||
