Установка роли Веб-сервер (IIS 10)
Запускаем диспетчер серверов, выбираем Добавить роли и компоненты.
Выбираем роль Веб-сервер (IIS)
Выбираем компоненты:
В настройках службы ролей IIS выбираем:
Вставляем в привод установочный диск Windows Server 2016, указываем альтернативный исходный путь:
Нажимаем Установить. Завершения установки можно не ждать. После завершения установки в адресной строке браузера набираем localhost и видим веб-страницу IIS.
Установка PHP
Скачиваем PHP 7 non Thread Safe (ссылка).
Скачиваем и устанавливаем соответствующую версию распространяемого пакета VC++. Для php7 это VC++15.
Распаковываем php в папку c:\PHP\php7\
Скачиваем Microsoft Drivers for PHP for SQL Server 4.1.0 и распаковываем файл php_sqlsrv_7_nts.dll в папку c:\PHP\php7\ext\
Скачиваем wincache for PHP 7 и распаковываем файл php_wincache.dll в папку c:\PHP\php7\ext\
Файл php.ini-production сохраняем под именем php.ini. Редактируем файл php.ini
error_log = "c:\PHP\php7\logs\php_errors.log" ; место хранения логов об ошибках post_max_size = 500M extension_dir = "c:\PHP\php7\ext"; расположение расширений cgi.force_redirect = 0 cgi.fix_pathinfo = 1 fastcgi.impersonate = 1 max_execution_time = 300 upload_max_filesize = 500M date.timezone = "Asia/Yekaterinburg" memory_limit = 768M
Настройка opcache:
opcache.memory_consumption=128 opcache.max_accelerated_files=8000 opcache.revalidate_freq=60 opcache.use_cwd=1 opcache.validate_timestamps=1 opcache.save_comments=1 opcache.enable_file_override=0
Раскомментировать строки:
extension=php_fileinfo.dll extension=php_imap extension=php_intl.dll extension=php_ldap
Закомментировать строки:
extension=php_mysqli.dll
Добавить строки:
extension=php_sqlsrv_7_nts.dll extension=php_wincache.dll
Устанавливаем PHP Manager for IIS 1.4. После установки запускаем Диспетчер служб IIS, открываем Администратор PHP.
Нажимаем Зарегистрировать новую версию PHP.
Указываем путь до файла php-cgi.exe.
Проверяем в Администраторе PHP, нет ли неоптимальных настроек. Если есть — следуем указаниям.
В папке c:\inetpub\wwwroot\ создаем файл index.php с содержимым:
<?php phpinfo(); ?>
В браузере открываем URL: http://localhost/index.php
Проверяем, что подключились нужные библиотеки:
Настроим типы MIME.
Добавим новое расширение для php.
Установка PHP завершена.
Скачиваем и устанавливаем Moodle
Скачиваем с официального сайта zip-архив Moodle (не Moodle installer for Windows!) и языковой пакет.
Распаковываем все содержимое архива в папку c:\inetpub\moodle\
Устанавливаем права на папку moodle на чтение для пользователей IUSR, IIS_IUSRS.
Для хранения данных создаем дополнительную папку c:\inetpub\moodledata\
Она должна располагаться вне папки moodle.
Устанавливаем права на папку moodledata на изменение для пользователей IUSR, IIS_IUSRS и для пользователей домена, если планируется LDAP-аутентификация. Также дадим права на изменение для пользователей IUSR, IIS_IUSRS для следующих папок:
c:\inetpub\moodle\theme\ - установка тем c:\inetpub\moodle\question\type\ - установка типов вопросов c:\inetpub\moodle\mod\ - установка плагинов
Создаем файл конфигурации moodle – config.php, скопировав файл config-dist.php и переименовав его.
Устанавливаем ODBC Driver 13 for MS SQL Server.
Задаем в этом файле настройки для подключения к БД, которая уже создана:
$CFG->dbtype = sqlsrv; $CFG->dblibrary = 'native'; $CFG->dbhost = SQLServerName; $CFG->dbname = 'moodle'; $CFG->dbuser = 'moodle'; $CFG->dbpass =password;
Значения ниже (сортировка БД и т.д.) стираем. Указываем настройки домена и путь к папке moodledata:
$CFG->wwwroot = 'http://mysite'; $CFG->dataroot = 'c:\inetpub\moodledata';
Создаем сайт в IIS и устанавливаем Moodle
В Диспетчере служб IIS добавляем веб-сайт…
Указываем имя сайта (которое задали в config.php) и путь до папки moodle. Для сайта отключаем анонимную проверку подлинности, включаем проверку подлинности Windows.
Запускаем браузер, вводим в адресную строку доменное имя сайта. Соглашаемся с лицензионным соглашением. Проверяем, что все необходимые плагины установлены.
Далее запускается скрипт создания необходимых таблиц. Для этого у указанной в config.php учетной записи должны быть все необходимые права.
Задаем полное и короткое название сайта. Выбираем язык, страну, заканчиваем настройку.
Распаковываем языковой пакет в папку c:\inetpub\moodledata\lang\
Настройка Moodle
Устанавливаем русскую локализацию.
Переходим в Site administration – Language – Language packs. Видим, что установлены два языка – русский и английский. Возвращаемся на уровень выше и выбираем Default language – Русский язык.
Под учетной записью администратора заходим в Личный кабинет – Preferences – User account –Preferred language, ставим русский язык.
Переходим в меню Администрирование – Уведомления. Видим предупреждение «База данных не использует режим READ_COMMITTED_SNAPSHOT, что может привести к неправильным результатам, особенно при одновременном выполнении большого количества сценариев.»
Выполняем запрос в БД:
alter database moodle set read_committed_snapshot on;
Администрирование – Расширенные возможности:
- Включить комментарии – нет
- Включить систему обмена сообщениями — нет
- Включить статистику — Да
- Разрешить блоги — нет
Администрирование – Значки – Настройки значков:
- Разрешить подключение к внешним коллекциям наград — нет
Администрирование – Местонахождение – Настройки местонахождения:
- Принудительный часовой пояс – устанавливаем свой часовой пояс
- Страна по умолчанию – Россия
- Город по умолчанию – устанавливаем свой город
Администрирование – Безопасность – Политика безопасности сайта:
- Принуждать пользователей входить в систему – вкл
- Разрешить индексирование поисковыми системами – нигде
- Видимые роли профиля – только студент
- Разрешить в логинах дополнительные символы – да
- Длина пароля — 6
- Не буквенно-цифровых символов — 0
Администрирование – Безопасность – Уведомления
- Уведомлять об ошибках входа – да, Admin User
Администрирование – Пользователи – Учетные записи – Поля профиля пользователя:
- Добавляем два поля профиля типа «Текстовое поле» (понадобится при составлении отчетов): fio (Фамилия Имя Отчество) и position (Должность).
Администрирование – Пользователи – Права – Политики пользователя
- Скрыть поля пользователя – скрыть все, кроме описания, последний вход.
- Отображать персональные данные – Адрес электронной почты, Отдел, Учреждение
Администрирование – Пользователи – Права – Определить роли
Для роли Пользователи:
- Управлять файлами в области личных файлов – убираем права для роли Аутентифицированный пользователь
Администрирование – Курсы – Настройки курса по умолчанию:
- Принудительный язык – Русский
- Количество отображаемых объявлений – 0
- Показывать журнал оценок студентам – нет
Администрирование – Курсы – Резервные копии – Настройка автоматического резервного копирования
- Активно – Включено
- Расписание — Воскресенье
Администрирование – Оценки – Общие настройки
- Поля профиля пользователя в экспортируемой оценке — institution,department
- Настраиваемые поля профиля в экспортируемой оценке — fio, position
- Основные форматы экспорта оценок — Таблица Excel
Установим плагин Questionnaire.
Администрирование – Плагины – Установка плагинов.
Перетаскиваем в поле загрузки zip-архив с плагином.
Обновляем Moodle.
Продолжаем настройку Moodle…
Администрирование – Плагины – Аутентификация – Настройка аутентификации
- Самостоятельная регистрация по электронной почте – отключаем (клик по глазу)
- Сервер LDAP – включаем. (Настройку аутентификации через LDAP выполним позднее)
- Кнопка гостевого входа — Скрыть
Администрирование – Плагины – Блоки – Управление блоками
- Внешние RSS-ленты – выкл
- Глобальный поиск — выкл
- Комментарии – выкл
- Личные файлы – выкл
- Поиск в общественных каталогах – выкл
- Поиск по форумам — выкл
- Последние значки — выкл
- Сайты сети MNet — выкл
- Flickr — выкл
Администрирование – Плагины – Зачисления на курсы – Управление способами зачисления
- Самостоятельная запись – выкл
- Гостевой доступ — выкл
- Синхронизация с глобальной группой — выкл
Администрирование – Плагины – Зачисления на курсы – Гостевой доступ
- Добавлять этот способ для новых курсов — нет
Администрирование – Плагины- Медиаплееры – Управление медиаплеерами
- YouTube — выкл
Администрирование – Плагины – Модули элементов курса – Управление элементами курсов — Элементы курса
- Чат — выкл
Администрирование – Плагины – Хранилища файлов – Управление хранилищами файлов
- Мои личные файлы — отключено
Администрирование – Внешний вид – Календарь
- Формат времени – 24
Администрирование – Внешний вид – Навигация
- Стартовая страница по умолчанию для пользователей. — Сайт
- Разрешить гостевой доступ к странице «Личный кабинет» — нет
- Отображать полные названия курсов – да
- Показывать «Мои курсы» с категориями — да
Администрирование – Сервер – Контакты службы поддержки
- Имя техподдержки – указываем имя поддержки
Администрирование – Сервер – Производительность
- Предел дополнительный памяти PHP – 1024М
Администрирование – Сервер – Уведомления об обновлениях
- Автоматически проверять наличие обновлений — выкл
Администрирование – Сервер – Электронная почта – Настройка исходящей почты
- SMTP-серверы – указываем имя сервера
- Логин SMTP – указываем логин
- Пароль SMTP – указываем пароль
- Разрешить вложения — выкл
Убираем ссылку на восстановление пароля со страницы входа в систему. Она не нужна, т.к. будет использоваться SSO-аутентификация.
Администрирование – Внешний вид – Дополнительный HTML
Добавляем в тег HEAD строку:
<style>.forgetpass {display: none;}</style>
Настройка LDAP-аутентификации
Администрирование – Плагины – Аутентификация – Сервер LDAP
- URL сервера — ldap://domaincontroller:3268 (я использую кроссдоменную аутентификацию, поэтому указываю порт 3268. Если этого не нужно, укажите порт 389)
- Отличительное имя — CN=username, OU=Users, DC=domain, DC=local
- Тип учетной записи пользователя – MS ActiveDirectory
- Контейнеры – список контейнеров, в которых хранятся учетные записи пользователей
- Поиск в дочерних контейнерах — Да
- Атрибут пользователя – samaccountname
- NTLM SSO Включить – Да
- Подсеть – 10. Обязательное значение! У меня IP-адресация в сети начинается с 10.
- Быстрая проверка в MS IE? – Да, а в остальных браузерах использовать долгую проверку NTLM
- Формат передаваемого логина — %domain%\%username%
- Сопоставление данных (Имя) – givenName
- Обновить внутренних (Имя) – При каждом входе
- Обновить внешних (Имя) – При обновлении
- Сопоставление данных (Фамилия) – sn
- Обновить внутренних (Фамилия) — При каждом входе
- Обновить внешних (Фамилия) — При обновлении
- Сопоставление данных (Адрес электронной почты) – mail
- Сопоставление данных (Учреждение (организация)) – company
- Обновить внутренних (Учреждение (организация)) — При каждом входе
- Обновить внешних (Учреждение (организация)) — При обновлении
- Сопоставление данных (Отдел) – department
- Обновить внутренних (Отдел) — При каждом входе
- Обновить внешних (Отдел) — При обновлении
- Сопоставление данных (Должность) – title
- Обновить внутренних (Должность) — При каждом входе
- Обновить внешних (Должность) — При обновлении
- Сопоставление данных (Фамилия Имя Отчество) – displayName
- Обновить внутренних (Фамилия Имя Отчество) — При каждом входе
- Обновить внешних (Фамилия Имя Отчество) — При обновлении
Теперь нужно синхронизироваться с LDAP.
Администрирование – Сервер – Планировщик задач
- Задача синхронизации пользователей LDAP – настроить, Включить задачу.
Создаем задачу для cron
Создаем файл cron.bat с содержимым:
@echo off set PathPHP="c:\PHP\php7\php.exe" set PathCron="c:\inetpub\moodle\admin\cli\cron.php" set PathLOG="c:\Setup\cron\cronlogs" %PathPHP% -f %PathCron% >> %PathLOG%\%date"~10,4%%date:~4,2%%date:~7,2%.log Forfiles /P %PathLOG% /S /M *.log /D -5 /C "cmd /c del /q @path"
В планировщике задач (Меню Пуск – Средства администрирования – Планировщик задач) создаем задачу, указываем время выполнения – запускать каждые 5 минут, выполнять bat-файл c:\Setup\cron\cron.bat, запускать скрипт от имени учетной записи, у которой есть права записи в папку c:\inetpub\moodle (например, от администратора).
Проверяем работу скрипта, ошибки будут писаться в папку c:\Setup\cron\cronlogs
При необходимости правим файл php.ini
Установка и настройка завершены.
Ребята мне не удается установит Win server 2016 с рабочим столом. какой версии вы посоветовали бы. …