Файл server_check.php - исполнительный файл, который будет проверять наш веб-сервер, а именно:
Так-же этот файл будет иметь функцию вывода информации (отображение данных файла module_help.php) о необходимых модулях и логику поведения приложения при разных действиях пользователя.
Создадим в директории /test вложенную директорию img для хранения и вывода иконок. В
ней мы сохраним файлы иконок OK, ERROR и Refresh нашего установщика:
,
,
.
Основная часть файла это перечисление, оформленное в таблице - структурированного набора данных, состоящего из строк и столбцов, внутри которой помещен заголовок и код запросов PHP.
<table> <tr> <td> Наименование модуля </td> <td> <?php echo "" . PHP_OS ; ?> </td> </tr> </table>
<span class="table_block_install"><b> <?php /* Выводим версию веб-сервера Apache */ echo $_SERVER['SERVER_SOFTWARE']; echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; ?></b> </span>
<span class="table_block_install"> </span>
«Наименование модуля» логично расположить в ячейке по левому краю формы, а контейнер «кода запросов PHP» отодвинуть, задав растояние, по правому. Это мы позже и пропишем в файле install.css.
Ниже приведен основной перечень выводов запросов к серверу, который нами будет использоваться для отображения информации в таблице
echo PHP_OS; echo $_SERVER['SERVER_SOFTWARE']; echo PHP_VERSION; print_r(get_loaded_extensions()); echo phpversion('curl'); echo substr(sprintf('%o', fileperms('/tmp')), -4);
Нами будет использоваться при написании приложения версия PHP не ниже 8.2
Логический операторы условия ЕСЛИ (if) и ИНАЧЕ (else) расмотрены в предыдущей главе 8.5. Файл server_check.php. В коде, приведенном ниже мы добавим тип данных с двумя возможными значениями: true (истина) и false (ложь).
<?php /* Выводим версию установленного PHP */ /* Проверим, что версия установленного PHP не ниже 8.2 */ if (version_compare(PHP_VERSION, '8.2.0') >= 0) { echo 'Версия PHP: ' . PHP_VERSION . '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; /* Иначе выводим просьбу обновить PHP*/ } else { echo 'Обновите версию PHP ' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } ?>
Мы проверяем, что ЕСЛИ установленная версия PHP не ниже версии 8.2.0, тогда выводим сообщение: Версия PHP: номер установленной версии и иконку OK из директории /img c заданным размером 18×18, ИНАЧЕ выводим сообщение об ошибке: Обновите версию PHP, иконку ERROR из директории /img c заданным размером и переменной $install_error присваиваем значение true (истина).
Мы рассмотрим принцип работы кода только для одного модуля cURL, остальные будет прописанны по этому шаблону.
<?php /* Проверим включен ли модуль cURL Module*/ $extensions = get_loaded_extensions(); if (!in_array('curl', $extensions)) { /* Когда cURL Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo "Включите cURL Module:"; echo '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('curl'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?>
возвращения массива имён загруженных модулей.
Проверяем: ЕСЛИ curl не в массиве заданном переменной $extensions, тогда выводим сообщение: Включите cURL Module:, отображается иконка ERROR из директории /img c заданным размером и переменной $install_error присваиваем значение true (истина), ИНАЧЕ выводим сообщение: Установлено:, номер версии curl и иконку OK.
В этом блоке нам необходимо проверить, что директория, в которую приложение будет записывать данные, доступна для записи. К основным относятся:
chmod("./includes/demo/", 0644);
Рассмотрим блок проверки прав доступа
<?php /* Проверим разрешения для папок */ $dir_includes = substr(sprintf('%o', fileperms('../includes/demo')), -4); if ($dir_includes == '0775') { echo '/demo доступна для записи'; echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } else { echo '/demo недоступна для записи' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } ?>
Проверка: ЕСЛИ переменная $dir_includes ровняется 0775, тогда выводим сообщение: /demo доступна для записи и отобразим иконку OK. ИНАЧЕ выводим сообщение: /demo недоступна для записи, отображаем иконку ERROR и переменной $install_error присваиваем значение true (истина).
Данный блок необходим для вывода справочной информации по необходимым приложению модулям и расширениям, отображения сообщения:Невозможно продолжить. Исправьте ошибки и Обновите страницу, а так-же в случае успеха отобразить кнопку «Продолжить».
$install_error = true;
<?php // Если переменная $install_error хотя бы раз приняла // значение true, то выведим сообщение //Более подробную информацию о необходимых модулях можно найти на странице требований. //Невозможно продолжить. Исправьте ошибки и попробуйте еще раз. Обновить if ($install_error == true) { echo 'Более подробную информацию о необходимых модулях можно найти на ' . '<a href="./test_99.php" target="_blank">странице требований</a>'; echo '<p style="color: red"> Невозможно продолжить. Исправьте ошибки и ' . '<a href="./test_4.php"> Обновите страницу</a>' . '</p>' . '<br/>'; } else { /* Если значение переменной $install_error значение не равно true */ /* тогда выведим кнопку Продолжить */ echo ' <div class = "install_button"> <form action="database_options.php"> <input type="submit" value="Продолжить" name="button"> </form> </div>'; } ?>
Проверка: ЕСЛИ переменной $install_error присвоено значение true, тогда выводим сообщение: Более подробную информацию о необходимых модулях можно найти на, ссылка на страницу требований. ИНАЧЕ выводим блок кнопки «Продолжить» с активацией страницы конфигурации приложения.
В директорию добавим тестовый файл test_4.php и записываем в него разобранный в этой главе код вывода запросов
<!-- test_4.php --> <table> <tr> <td> Server OS: </td> <td> <span class="table_block_install"><b> <?php /* Выводим имя операционной системы сервера */ echo PHP_OS; ?></b> </span> </td> </tr> <tr> <td> Web server: </td> <td> <span class="table_block_install"><b> <?php /* Выводим версию веб-сервера Apache */ echo $_SERVER['SERVER_SOFTWARE']; echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; ?></b> </span> </td> </tr> <tr> <td> PHP ver. > 8.2 </td> <td> <span class="table_block_install"><b> <?php /* Выводим версию установленного PHP */ /* Проверим, что версия установленного PHP не ниже 8.2 */ if (version_compare(PHP_VERSION, '8.2.0') >= 0) { echo 'Версия PHP: ' . PHP_VERSION . '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; /* Иначе выводим просьбу обновить PHP*/ } else { echo 'Обновите версию PHP ' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } ?></b> </span> </td> </tr> <tr> <td> cURL Module: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль pgsql Module, SimpleXML Module, PDO bz2 zlib sqlite3 zip mysqli*/ $extensions = get_loaded_extensions(); if (!in_array('curl', $extensions)) { /* Когда cURL Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo "Включите cURL Module:"; echo '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('curl'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> Folder Permissions: </td> <td> <span class="table_block_install"><b> <?php /* Проверим разрешения для папок */ $dir_includes = substr(sprintf('%o', fileperms('../includes/demo')), -4); if ($dir_includes == '0775') { echo "$dir_includes" . '/demo доступна для записи'; echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } else { echo "$dir_includes" . ' - /demo недоступна для записи' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } ?></b> </span> </td> </tr> </table> <?php // Если переменная $install_error хотя бы раз приняла // значение true, то выведим сообщение //Более подробную информацию о необходимых модулях можно найти на странице требований. //Невозможно продолжить. Исправьте ошибки и попробуйте еще раз. Обновить if ($install_error == true) { echo 'Более подробную информацию о необходимых модулях можно найти на ' . '<a href="./test_99.php" target="_blank">странице требований</a>'; echo '<p style="color: red"> Невозможно продолжить. Исправьте ошибки и ' . '<a href="./test_4.php"> Обновите страницу</a>' . '</p>' . '<br/>'; } else { /* Если значение переменной $install_error значение не равно true */ /* тогда выведим кнопку Продолжить */ echo ' <div class = "install_button"> <form action="database_options.php"> <input type="submit" value="Продолжить" name="button"> </form> </div>'; } ?>
Веведим в веб-браузере наш файл:
Как мы можем видеть, версия PHP у нашего сервера установлена ниже требуемой и часть модулей отключена (не установлена). При этом для тестовой директории demo установены права - 0644, что означает доступ на запись и чтение для владельца, доступ на чтение для других
curl для проверки выключен для наглядности примера
Если curl был включен, то система выдала бы «Установлено:,версию и иконку OK»
Откроем в блокноте созданный ранее в директории /ucms/library/install/ файл server_check.php и запишем в него код из файла test_4.php, предварительно, убрав лишнее, а именно:
Добавим в начало файла следующий код PHP:
<?php include "tpl/tpl_install_header.php"; /* Подключем файл cons.php из директории includes*/ include "../../includes/cons.php"; /* Объявим в переменной $file_config путь к файлу config.php для файла./ucms/library/install/server_check.php и проверим его наличие */ $file_config = FOLDER . '/includes/config.php'; /* Если файл config.php в директории /includes существует, приложение переведет на страницу выбора конфигурации ./ucms/library/install/database_options.php, которая пока у нас не создана*/ if (file_exists($file_config)) { /* Вызов header, с задержкой 5 сек перенаправит на страницу ./ucms/library/install/database_options.php */ header('Refresh: 5; URL = database_options.php'); echo "Обнаружена установленная версия приложения!"; echo "Можно установить дополненительную конфигурацию приложения!"; exit(); } ?>
Проверка: ЕСЛИ файл $file_config тогда вызов header, с задержкой 5 сек перенаправит на страницу
./ucms/library/install/database_options.php с выводим сообщений:
Обнаружена установленная версия приложения!
Можно установить дополненительную конфигурацию приложения!
ИНАЧЕ будет выведена таблица проверки сервера.
Далее для необходимых нам модулей по шаблону кода из файла test_4.php, прописываем логику проверки в талице, заменив путь к проверяемой директории с /demo на ../../includes. Модули для проверки могут отличаться, в зависимости от цели создаваемого приложения, в нашем случае это:
В конец нашего файла добавим следующий код «Прогресс-бара», чтобы пользователь знач, где он в данный момент находиться.
<?php <div class="progressbar"> <span style="width: 40%"></span> </div>
И в заключение добавим «подвал» нашего окна
Оформив правки и собрав воедино все описанное в данной главе записываем в файл server_check.php готовый код
<?php include "tpl/tpl_install_header.php"; /* Подключем файл cons.php из директории includes*/ include "../../includes/cons.php"; /* Объявим в переменной $file_config путь к файлу config.php для файла./ucms/library/install/server_check.php и проверим его наличие */ $file_config = FOLDER . '/includes/config.php'; /* Если файл config.php в директории /includes существует, приложение переведет на страницу выбора конфигурации ./ucms/library/install/database_options.php, которая пока у нас не создана*/ if (file_exists($file_config)) { /* Вызов header, с задержкой 5 сек перенаправит на страницу ./ucms/library/install/database_options.php */ header('Refresh: 5; URL = database_options.php'); echo "Обнаружена установленная версия приложения!"; echo "Можно установить дополненительную конфигурацию приложения!"; exit(); } ?> <table> <tr> <td> Server OS: </td> <td> <span class="table_block_install"><b> <?php /* Выводим имя операционной системы сервера */ echo "" . PHP_OS ; ?></b> </span> </td> </tr> <tr> <td> Web server: </td> <td> <span class="table_block_install"><b> <?php /* Выводим версию веб-сервера Apache */ echo $_SERVER['SERVER_SOFTWARE']; echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; ?></b> </span> </td> </tr> <tr> <td> PHP ver. > 8.2 </td> <td> <span class="table_block_install"><b> <?php /* Выводим версию установленного PHP */ /* Проверим, что версия установленного PHP не ниже 8.2 */ if (version_compare(PHP_VERSION, '8.2.0') >= 0) { echo 'Версия PHP: ' . PHP_VERSION . '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; /* Иначе выводим просьбу обновить PHP*/ } else { echo 'Обновите версию PHP ' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } ?></b> </span> </td> </tr> <tr> <td> cURL Module: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль pgsql Module, SimpleXML Module, PDO bz2 zlib sqlite3 zip mysqli*/ $extensions = get_loaded_extensions(); if (!in_array('curl', $extensions)) { /* Когда cURL Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo "Включите cURL Module:"; echo '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('curl'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> GD Library: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль GD Library*/ $extensions = get_loaded_extensions(); if (!in_array('gd', $extensions)) { /* Когда GD Library Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo "Включите GD Library Module:"; echo '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('gd'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> SQLite3 Module: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль sqlite3*/ $extensions = get_loaded_extensions(); if (!in_array('sqlite3', $extensions)) { /* Когда sqlite3 Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите sqlite3 Module' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('sqlite3'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> Zip Extension </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль ZipArchive*/ $extensions = get_loaded_extensions(); if (!in_array('zip', $extensions)) { /* Когда Zip Extension у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите Zip Extension' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('zip'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> PDO Extension </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли PDO Extension*/ $extensions = get_loaded_extensions(); if (!in_array('PDO', $extensions)) { /* Когда PDO Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите PDO Extension' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('PDO'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> SimpleXML Extension: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль SimpleXML Extension*/ $extensions = get_loaded_extensions(); if (!in_array('SimpleXML', $extensions)) { /* Когда SimpleXML Extension у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите SimpleXML Extension' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('SimpleXML'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> Bzip2 Function: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль Bzip2 Function*/ $extensions = get_loaded_extensions(); if (!in_array('bz2', $extensions)) { /* Когда Bzip2 Function у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите Bzip2 Function' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('bz2'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> Zlib Module: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли модуль Zlib Module*/ $extensions = get_loaded_extensions(); if (!in_array('zlib', $extensions)) { /* Когда Zlib Module у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите Zlib Module' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('zlib'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> MySQLi Extension: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли MySQLi Extension*/ $extensions = get_loaded_extensions(); if (!in_array('mysqli', $extensions)) { /* Когда MySQLi Extension у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите MySQLi Extension' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('mysqli'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> PDO_SQLITE Driver: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли PDO_SQLITE Driver*/ $extensions = get_loaded_extensions(); if (!in_array('pdo_sqlite', $extensions)) { /* Когда PDO_SQLITE Driver у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите PDO_SQLITE Driver' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('pdo_sqlite'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> LDAP Protocol: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли LDAP Protocol*/ $extensions = get_loaded_extensions(); if (!in_array('ldap', $extensions)) { /* Когда LDAP Protocol у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите LDAP Protocol' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('ldap'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> OpenSSL Extension: </td> <td> <span class="table_block_install"><b> <?php /* Проверим включен ли OpenSSL Extension*/ $extensions = get_loaded_extensions(); if (!in_array('openssl', $extensions)) { /* Когда OpenSSL Extension у нас выключен, выводиться сообщение о невозможности продолжить, появляется ссылка кнопка на эту же страницу "Обновить"*/ echo 'Включите OpenSSL Extension' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } else { echo 'Установлено: ' . phpversion('openssl'); echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } ?></b> </span> </td> </tr> <tr> <td> Folder Permissions: </td> <td> <span class="table_block_install"><b> <?php /* Проверим разрешения для папок */ $dir_includes = substr(sprintf('%o', fileperms('../../includes')), -4); if ($dir_includes == '0775') { echo '/includes доступна для записи'; echo '<img src="img/good_green_ucms_creat_5.png" alt="good_green" width="18" height="18">'; } else { echo '/includes недоступна для записи' . '<img src="img/close_red_ucms_creat_5.png" alt="close_red" width="18" height="18">'; /* Присвоим переменной $install_error значение true */ /* т.е. ошибка установки - истина */ $install_error = true; } ?></b> </span> </td> </tr> </table> <?php // Если переменная $install_error хотя бы раз приняла // значение true, то выведим сообщение //Более подробную информацию о необходимых модулях можно найти на странице требований. //Невозможно продолжить. Исправьте ошибки и попробуйте еще раз. Обновить if ($install_error == true) { echo 'Более подробную информацию о необходимых модулях можно найти на ' . '<a href="./module_help.php" target="_blank">странице требований</a>'; echo '<p style="color: red"> Невозможно продолжить. Исправьте ошибки и ' . '<a href="./server_check.php"> Обновите страницу</a>' . '</p>' . '<br/>'; } else { /* Если значение переменной $install_error значение не равно true */ /* тогда выведим кнопку Продолжить */ echo ' <div class = "install_button"> <form action="options.php"> <input type="submit" value="Продолжить" name="button"> </form> </div>'; } ?> <div class="progressbar"> <span style="width: 40%"></span> </div> <?php include "tpl/tpl_install_footer.php"; ?>
Создадим в директории /ucms/library/install новый каталог для картинок и назовем его, к примеру - img, в нем мы будем хранить файлы иконок нашего установщика. Поместим в директорию /img файлы иконок OK, ERROR и Refresh.
Переместим файл config.php в директорию demo. И откроем файл server_check.php в браузере
При нажатии на ссылку «Обновите страницу» у нас обновиться страница в этом же окне, а при нажатии на ссылку «странице требований» откроется страница файла module_help.php в новом окне (за это отвечает target="_blank"), которая будет создана нами в следующей главе 8.6. Файл module_help.php
Обновим PHP до версии ⇒ 8.2 на нашем сервере и установим (включим) недостоющие модули и библиотеки, и нажмем ссылку «Обновите страницу»
Переместим назад файл config.php из директории demo. И откроем файл server_check.php в браузере
И через 5 сек нас перенаправит на следющее окно файла создания пользователя базы данных, который будет создан позднее.