software:development:demo:cms:ucms:creating_file_server_check
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:development:demo:cms:ucms:creating_file_server_check [2025/04/27 21:11] – vladpolskiy | software:development:demo:cms:ucms:creating_file_server_check [2025/05/04 14:45] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== 8.4. Файл server_check.php ====== | + | ====== 8.5. Файл server_check.php ====== |
- | ===== Подготовка | + | ===== Введение |
Файл server_check.php - исполнительный файл, который будет проверять наш веб-сервер, | Файл server_check.php - исполнительный файл, который будет проверять наш веб-сервер, | ||
* Версия PHP, | * Версия PHP, | ||
Строка 8: | Строка 8: | ||
* Права на чтение/ | * Права на чтение/ | ||
* Отсутствие файла конфигурации | * Отсутствие файла конфигурации | ||
+ | Так-же этот файл будет иметь функцию вывода информации (отображение данных файла **module_help.php**) о необходимых модулях и логику поведения | ||
+ | приложения при разных действиях пользователя. | ||
- | Откроем наш тестовый файл **test.php** и добавим в него код вывода запросов | + | ==== Подготовка ==== |
- | <code php test.php> | + | |
- | <?php | + | |
- | /* Выводим имя операционной системы сервера */ | + | |
- | echo "OС сервера: | + | |
- | /* Выводим | + | |
- | echo " | + | |
+ | Создадим в директории **/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 */ | /* Выводим версию установленного PHP */ | ||
/* Проверим, | /* Проверим, | ||
if (version_compare(PHP_VERSION, | if (version_compare(PHP_VERSION, | ||
- | | + | echo ' |
- | /* Иначе выводим просьбу обновить PHP*/ | + | /* Иначе выводим просьбу обновить PHP*/ |
- | } else { | + | } else { |
- | echo "Обновите версию PHP"; | + | echo 'Обновите версию PHP ' . '< |
- | } | + | /* Присвоим переменной $install_error значение true */ |
- | /* Проверим включен ли модуль | + | /* т.е. ошибка установки - истина */ |
- | ZipArchive, SimpleXML Module, PDO bz2 zlib sqlite3 zip mysqli*/ | + | $install_error = true; |
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | * **%%version_compare()%%** - сравнивает две " | ||
+ | |||
+ | Мы проверяем, | ||
+ | Версия PHP: номер установленной версии и иконку **OK** из директории **/img** c заданным размером 18x18, | ||
+ | **ИНАЧЕ** выводим сообщение об ошибке: | ||
+ | размером и переменной **%%$install_error%%** присваиваем значение **true (истина)**. | ||
+ | |||
+ | ==== Блок логики проверки модулей PHP ==== | ||
+ | Мы рассмотрим принцип работы кода только для одного модуля **cURL**, остальные будет прописанны по этому шаблону. | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | /* Проверим включен ли модуль cURL Module*/ | ||
$extensions = get_loaded_extensions(); | $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 (истина)**, | ||
+ | Установлено:, | ||
- | if (!in_array(' | + | ==== Блок логики проверки прав доступа ==== |
- | exit(' | + | В этом блоке нам необходимо проверить, что директория, в которую приложение будет записывать данные, |
- | } | + | доступна |
- | else { | + | * **0600** - Доступ |
- | echo ' | + | * **0644** - Доступ на запись и чтение для владельца, доступ на чтение для других |
- | } | + | * **0750** - Полный |
- | if (!in_array(' | + | * **0755** - Полный доступ для владельца, доступ на чтение и выполнение для других |
- | /* Так как cURL Module | + | * **0777** - Полный |
- | выводиться сообщение | + | |
- | появляется ссылка кнопка на эту же страницу " | + | <note blue> |
- | и происходит остановка */ | + | :&11: **Пимечание: |
- | echo ' Невозможно продолжить. Исправьте ошибки и попробуйте еще раз' . '<a href=" | + | Права доступа для проверки кода можно изменить командой |
- | exit(' | + | < |
- | } | + | chmod("./ |
- | else { | + | </code> |
- | echo 'Текущая версия curl: ' . phpversion(' | + | </ |
- | } | + | |
+ | Рассмотрим блок проверки прав доступа | ||
+ | | ||
+ | < | ||
+ | <?php | ||
/* Проверим разрешения для папок */ | /* Проверим разрешения для папок */ | ||
- | //0600 // Доступ на запись и чтение для владельца, | + | $dir_includes = substr(sprintf(' |
- | //0644 // Доступ на запись и чтение | + | if ($dir_includes == ' |
- | //0750 // Полный доступ | + | echo '/demo доступна |
- | //0755 // Полный доступ для | + | echo '< |
- | //0777 // Полный | + | } else { |
- | // Установим доступ на запись и чтение | + | echo '/ |
- | // для других для директории demo | + | /* Присвоим |
- | // | + | /* т.е. ошибка установки - истина */ |
- | echo substr(sprintf(' | + | $install_error = true; |
- | echo substr(sprintf(' | + | } |
+ | ?> | ||
+ | </ | ||
+ | * **%%$dir_includes%%** - переменная, которой | ||
+ | * **%%substr()%%** - функция, которая вырезает и возвращает | ||
+ | * **%%sprintf()%%** - функция, которая возвращает отформатированную | ||
+ | * **%%fileperms()%%** - возвращает информацию о правах | ||
+ | |||
+ | Проверка: | ||
+ | /demo доступна для | ||
+ | /demo недоступна | ||
+ | присваиваем значение | ||
+ | ==== Блок логики переменной | ||
- | $dir_demo = substr(sprintf(' | + | Данный блок необходим для вывода справочной информации по необходимым приложению модулям и |
- | if ($dir_demo | + | расширениям, |
- | echo 'Директория /demo доступна для записи' | + | а так-же в случае успеха отобразить кнопку " |
+ | |||
+ | <note blue> | ||
+ | :& | ||
+ | В блоках кода проверки выше, мы в случае ошибки присваивали переменной **%%$install_error%%** значение **true** | ||
+ | < | ||
+ | $install_error = true; | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | // Если переменная $install_error хотя бы раз приняла | ||
+ | // значение true, то выведим сообщение | ||
+ | // | ||
+ | //Невозможно продолжить. Исправьте ошибки и попробуйте еще раз. Обновить | ||
+ | if ($install_error | ||
+ | echo 'Более подробную | ||
+ | echo '<p style=" | ||
} else { | } else { | ||
- | | + | /* Если значение переменной $install_error значение не равно true */ |
- | } | + | /* тогда выведим кнопку Продолжить */ |
- | $dir_includes = substr(sprintf(' | + | echo ' <div class = " |
- | if ($dir_includes == ' | + | <form action=" |
- | echo 'Директория /includes | + | <input type=" |
+ | </ | ||
+ | </ | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | |||
+ | Проверка: **ЕСЛИ** переменной **%%$install_error%%** присвоено значение **true**, | ||
+ | Более подробную | ||
+ | выводим блок кнопки " | ||
+ | |||
+ | ===== Файл | ||
+ | В директорию добавим тестовый файл **test_4.php** и записываем в него разобранный в этой главе код вывода запросов | ||
+ | <code php test_4.php> | ||
+ | < | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | Server OS: | ||
+ | </ | ||
+ | < | ||
+ | <span class=" | ||
+ | <? | ||
+ | /* Выводим имя операционной системы сервера */ | ||
+ | echo PHP_OS; | ||
+ | ?></ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | Web server: | ||
+ | </ | ||
+ | < | ||
+ | <span class=" | ||
+ | <? | ||
+ | /* Выводим версию веб-сервера Apache */ | ||
+ | echo $_SERVER[' | ||
+ | echo '< | ||
+ | ?></ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | PHP ver. > 8.2 | ||
+ | </ | ||
+ | < | ||
+ | <span class=" | ||
+ | <? | ||
+ | /* Выводим версию | ||
+ | /* Проверим, | ||
+ | if (version_compare(PHP_VERSION, | ||
+ | echo ' | ||
+ | /* Иначе выводим | ||
+ | } else { | ||
+ | echo ' | ||
+ | /* Присвоим переменной $install_error значение true */ | ||
+ | /* т.е. ошибка установки - истина */ | ||
+ | $install_error = true; | ||
+ | } | ||
+ | ?></ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | cURL Module: | ||
+ | </ | ||
+ | < | ||
+ | <span class=" | ||
+ | <? | ||
+ | /* Проверим включен ли модуль pgsql Module, | ||
+ | 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 | ||
+ | } | ||
+ | ?></ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | Folder Permissions: | ||
+ | </ | ||
+ | < | ||
+ | <span class=" | ||
+ | <? | ||
+ | /* Проверим разрешения для папок */ | ||
+ | $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 { | } else { | ||
- | echo 'Директория / | + | /* Если значение переменной $install_error значение не равно true */ |
- | } | + | /* тогда выведим кнопку Продолжить */ |
+ | echo ' | ||
+ | <form action=" | ||
+ | <input type=" | ||
+ | </ | ||
+ | </ | ||
+ | } | ||
?> | ?> | ||
</ | </ | ||
+ | |||
+ | Веведим в веб-браузере наш файл: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Как мы можем видеть, | ||
+ | (не установлена). При этом для тестовой директории demo установены права - **0644**, что означает доступ на запись и чтение для владельца, | ||
**curl** для проверки выключен для наглядности примера | **curl** для проверки выключен для наглядности примера | ||
Строка 80: | Строка 379: | ||
{{: | {{: | ||
- | Если **curl** был включен, | + | Если **curl** был включен, |
- | {{: | + | {{: |
- | Далее при проверке **Модуля curl** происходит остановка проверки. | ||
- | При влюченном **Модуле curl** система проходит код до конца нашего файла | ||
- | Откроем файл **test.php** в веб - браузере | ||
- | |||
- | {{: | ||
===== Файл server_check.php ===== | ===== Файл server_check.php ===== | ||
- | Перенесем наш рабочий код в ранее | + | |
+ | Откроем в блокноте созданный | ||
+ | и запишем в него | ||
+ | |||
+ | * комментарий < | ||
+ | |||
+ | Добавим в начало | ||
<code php 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(); | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | * **%%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> | <note blue> | ||
- | <wrap left>← [[software: | + | <wrap left>← [[software: |
- | <wrap right> | + | <wrap right> |
</ | </ |
software/development/demo/cms/ucms/creating_file_server_check.1745777512.txt.gz · Последнее изменение: — vladpolskiy