Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.
Установка Moodle на Windows Server 2012 R2 и IIS
Дано: Windows Server 2012 R2 (x64) с установленным MS SQL Server
Задача: установить на него полноценный Moodle (PHP) с базой на MS SQL Server (или другой).
Речь идет именно об установке полноценного дистрибутива, а не урезанной версии для разработки.
Самое главное — подготовить сервер для работы PHP приложений, которым собственно и является Moodle. Для этого на сервере должна быть установлена роль веб-сервера (IIS), а также установлено PHP. Предполагается, что система управления базами данных уже имеется в системе или на другом сервере (MS SQL Server, MySQL или другая. В этой статье я буду предполагать использование MSSQL).
1. Установка роли «Веб-сервер» (IIS 8.5):
Открываем интерфейс добавления ролей в системе и в мастере указываем роль Web Server (IIS):
Настройка IIS / Создаем домен / Запускаем сайт / [Windows Server 2012] #9
Далее выбираем компоненты (features) — .Net Framework:
Продолжение: (если нужна аутентификация при помощи AD (Active Directory, LDAP) выбираем соответствующие компоненты) — AD DS Tools другие, как показано на рисунке:
Далее в роли Веб-сервера (IIS) выбираем также нужные компоненты:
Особенно обращаем внимание на то, что выбран CGI (он необходим для работы с PHP).
Устанавливаем все выбранные компоненты.
Чтобы проверить корректность установки IIS, в браузере заходим на localhost и видим приветственное окно IIS:
2. Теперь необходимо установить PHP.
Самый простой путь — сделать это через Web Platform Installer. В IIS — переходим по ссылке Get New Web Platform Installer. После его установки ищем PHP и PHP Manager для IIS, устанавливаем их. Рекомендую именно этот способ.
Однако можно сделать такую установку вручную. Для этого делаем следующее:
На странице Downloads сайта windows.php.net скачиваем одну из последних версий PHP.
Для работы IIS с PHP как CGI-приложением нужно брать версию файла инсталлятора вида x86 Non Thread Safe.
Установка Windows Server и настройка виртуальных машин [Windows Server 2012] #1
Распаковываем в какую-либо папку (это не временная папка, запуск PHP будет из нее), например, C:Program Files (x86)PHPv5.6
Далее необходимо установить PHP Manager для IIS. Скачиваем его с сайта phpmanager.codeplex.com и устанавливаем.
Далее после установки PHP и PHP Manager (или одновременно с ними) также через Web Platform Installer устанавливаем:
— Microsoft Driver For PHP for SQL Server in IIS (если нужна будет данная СУБД)
— Windows Cache Extension for PHP (расширение для ускорения работы PHP скриптов)
После установки вышеуказанных компонентов, переходим в IIS и открываем PHP Manager:
Если есть ссылка View recommendations, то переходим по ней.
Соглашаемся с предлагаемыми рекомендациями (Default document, monitorChangesTo):
После этого переходим по ссылке «enable or disable extensions» («включение или выключение расширений»)
Включаем (Enable) следующие расширения php_intl.dll (и php_ldap.dll, если требуется аутентификация через LDAP).
Теперь попробуем протестировать работу PHP на нашем сервере: для этого создайте в IIS сайт (например, testphp, см. скрин из IIS выше). В папке сайта создадим файл index.php со следующим содержимым:
Теперь можно запускать тестовый сайт. Если всё настроено правильно, будет отображена версия PHP и другая информация.
Возможна ошибка:
HTTP Error 500.0 — Internal Server Error
C:Program Files (x86)PHPv5.6php-cgi.exe — The FastCGI process exited unexpectedly
Причины ошибки могут быть разные. Как вариант, если запуск осуществляется на 64 битной системе, то необходимо установить Visual C++ Redistributable (можно скачать с сайта Microsoft):
Тестовый файл должен выдать информацию о PHP:
3. Продолжаем настраивать PHP.
В свойствах FastCGI (FastCGI Settings) у нужной версии приложения php-cgi.exe меняем параметр Activity TimeOut на 6000 или больше (это время, необходимое на выполнение скрипта, которое рекомендуется увеличить, т.к. при операциях в Moodle, требующих длительных обработок, может случиться таймаут):
Далее открываем файл php.ini (например, через PHP Manager) и раскомментируем строки:
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
Если планируется синхронизация пользователей с каталогами Active Directory (AD), то дополнительно изменяем параметр memory_limit: вместо 128, указываем число побольше, например:
memory_limit = 768M
Если этого не сделать, то при количестве пользователей более 7 тысяч может перестать работать синхронизация (с LDAP).
4. Конфигурируем MIME Types в IIS
В IIS добавляем MIME Type со следующими параметрами:
File name extension: .php
MIME type: text/html
5. Локальная настройка домена
Т.к. Moodle рекомендуется запускать и настраивать сразу под нужный домен, то пропишем в специальном файле hosts необходимый домен и привяжем его к IP, чтобы иметь возможность запускать Moodle-проект локально, но под правильным доменом.
Напоминаю, что файл hosts находится по следующему пути:
C:WindowsSystem32driversetchosts
Открываем его и под всеми комментариями добавляем: IP-адрес + пробел + имя нужного домена
Примерное содержимое файла:
6. Скачивание и установка дистрибутива Moodle.
Заходим на официальный сайт системы и скачиваем архив последней версии Moodle (или той, которая Вам необходима). Ни в коем случае не скачивайте специальный дистрибутив для Windows (он только для локальной установки и разработки), ищем именно архив проекта Moodle:
Распаковываем всё содержимое скаченного архива в конечную папку (которую затем будет привязывать к IIS), например, в каталоге C:inetpubphpmoodle (можно удалить лишние информационные файлы, вроде readme).
Также, для хранения данных системы Moodle необходимо создать дополнительную папку. Она должна быть не доступна из веб и располагаться вне основной директории (например, C:inetpubphpmoodledata)
Для папки moodle задаем следующие права:
Пользователь IUSR — права на чтение по-умолчанию
Пользователь IIS_IUSRS — права на чтение по-умолчанию
Для папки moodledata задаем следующие права:
Пользователь IUSR — modify
Пользователь IIS_IUSRS — modify
Пользователь CronUser — modify (можно задать позже, см. статью Настройка запуска Cron Moodle в Windows Server 2012R2)
Если в дальнейшем нужно иметь возможность устанавливать, например, темы из веб-интерфейса, то необходимо дать право записи (modify) на папку тем (также можно сделать это для папок плагинов): moodletheme, также для папки типов вопросов (чтобы устанавливать дополнительные типы): moodlequestiontype
Далее создадим собственный конфигурационный файл (config.php): создайте копию файла config-dist.php (в корне папки Moodle) и переименуйте его в config.php.
Далее настройка Moodle на работу с базами на Microsoft SQL Server 2014
По вышеуказанной статье следуйте пунктам 1-3 (установка базы и подготовка сервера) и пункт 5 (задание правильных настроек подключения к базе в файле конфигурации Moodle). Там же будет указано какие параметры нужно внести в конфигурационный файл.
Также в конфигурационном файле config.php укажите настройки домена и путь к папке с данными:
$CFG->wwwroot = ‘http://mymoodlelms.ru’;
Указываем здесь URL адрес для доступа к Moodle (указываем либо домен, либо IP адрес)
$CFG->dataroot = ‘C:\inetpub\php\moodledata’;
Указываем здесь расположение папки данных Moodle.
7. Создание сайта в IIS
Создаем в IIS сайт, указываем расположение папки Moodle. Настраиваем его на тот домен, который указали в конфигурационном файле Moodle:
8. Продолжение установки Moodle через браузер
Теперь переходим в систему Moodle в браузере по ранее заданному домену. Автоматически будет предложена установка.
Соглашайтесь со всеми пунктами, придумайте и введите данные для администратора, заполните все необходимые формы (название сайта и т.п.)
На этом установка практически завершена.
Для корректной работы системы Moodle также необходимо настроить периодический запуск специального сервиса, расположенного в файле — cron.php (читайте статью Настройка запуска Cron Moodle в Windows Server 2012R2).
9. Настройка корректных путей
Далее для корректной работы путей системы создадим правило переадресации.
Для этого на уровне сайта в IIS переходим в настройки IIS-модуля URL Rewrite 2.0 (он должен быть предварительно установлен) и создадим следующее правило:
• Matches the Pattern — Regular Expressions — ^([^?]+?.php)(/.+)$
• Action — Rewrite — ?file=
• Append query string — enabled
• Stop processing of subsequent rules — enabled
После создания этого правила, перейдите в настройки Moodle (Администрирование — Сервер — HTTP) и включите параметр «slash arguments»:
Без данной настройки некоторые темы будут работать некорректно, а также будут появляться трудно определяемые ошибки.
Также, если планируется синхронизация с AD, может потребоваться настройка LDAP (читайте в будущих статьях).
Итоги
Коротко о железе, на котором проходила подобная установка: Intel Xeon 2.13GHz, 16GB RAM, под PHP-папки использовался SSD диск. За полтора года боевого использования система Moodle в подобном исполнении показала себя достаточно хорошо.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Источник: www.e-du.ru
Установка и настройка WEB-сервера IIS, PHP и MySQL на Windows Server 2012
IIS — служба Microsoft Windows, предназначенная для развертывания web-сервера. Служба IIS является отдельной функцией ОС, и изначально она не установлена.
Установка для Windows Server 2012
Устанавливаем и настраиваем службу IIS
Заходим в «Диспетчер серверов», нажимаем на вкладку «Управление» и выбираем «Добавить роли и компоненты».
Откроется «Мастер добавления ролей и компонентов». В разделе «Перед началом работы» ознакомимся с информацией и нажмем кнопку «Далее».
В разделе тип «Тип установки» выбираем «Установка ролей или компонентов» и жмем «Далее»
Ставим флажок на «Выберите сервер из пула серверов», выбираем сервер и нажимаем «Далее».
Отмечаем «Веб-сервер (IIS)».
Появится окно, в нем необходимо нажать «Добавить компоненты». Затем нажимаем «Далее».
После этого откроется информационный раздел «Роль веб-сервера (IIS)», ознакомить с ним и нажмите «Далее».
Открываем «Службы ролей», и в «Разработке приложений» отмечаем все, кроме «Инициализация приложений».
После этого появится надпись об отсутствии исходников. Интернет должен быть включен, нажимаем «Установить», далее установка пройдет в автоматическом режиме.
По окончанию инсталляции настраиваем веб-сервер IIS.
Открываем «Диспетчер серверов» переходим в «IIS» нажимаем «Средства», и из списка выбираем «Диспетчер служб IIS».