Установка и работа Magento на сервере Windows 2008 с IIS7
Несмотря на то, что официальная поддержка Magento заявлена только для LAMP-платформ (Linux, Apache, PHP, MySQL), существует возможность установить Magento и под управлением IIS7 на Windows Server. Данная конфигурация не является официально поддерживаемой или рекомендуемой, но тем не менее – вполне работоспособна. О том как “подружить” Magento c Windows Server 2008 и IIS7 и пойдет речь ниже.
Установка производилась на сервер с установленной ОС Windows 2008 64-bit.
- Устанавливаем PHP
На сайте php.iis.net выбираем “Install PHP”. Нам предлагают скачать Microsoft Web Platform. Соглашаемся. После установки запускам Web Platform Installer 2.0. Нажимаем “Web Platform” и в появившемся списке под элементом Web Server выбираем “Customize”. Отмечаем “URL rewrite 2.0″ и возвращаемся в основное меню (снова нажав Web Platform). В “Frameworks and Runtime” отмечаем “PHP 5.2.13″ и “Windows Cache Extension for PHP”, после чего можно нажимать Install. Программа установки сама скачает и установит все зависимости. PHP будет подключен к IIS7 в режиме FastCGI. - Устанавливаем MySQL.
Скачиваем последний MySQL GA (5.1.45 на момент написания статьи) с официального сайта. Так как установка производилось на 64-бит версии – выбираем архив “Windows (x86,64-bit) MSI installer”. Во время установки на этапе конфигурации указываем что у нас “Server Machine” и “Multifunctional Database”.
На вопрос о количестве допустимых соединений указываем OLTP (500 connections). Назначаем пароль root пользователя, он потребуется нам позже. Создадим базу данных Magento используя MySQL Command Line Client. Запустив его указываем пароль и пишем “create database magento;”
- Проверка PHP, добавление php_mcrypt.
Для того, чтобы убедиться, что установка PHP прошла успешно – создаем текстовый файл i.php в директории c:\inetpub\wwwroot. Содержимое файла – строка <?php phpinfo(); ?>. Попробуем загрузить его в браузере:

Если все сделано правильно – загрузится информация о PHP и подключенных расширениях. Для Magento потребуется дополнительное расширение mcrypt, отсутствующее в PHP от Microsoft. Тем не менее оно присутствует в официальной сборке PHP. Для того, чтобы скачать это расширение, перейдем на сайт windows.php.net и загрузим “PHP 5.2 (5.2.13) Non Thread Safe Zip” . Распакуем архив во временную директорию. Для того чтобы подключить mcrypt, необходимо скопировать файл libmcrypt.dll в директорию \Program Files (x86)\PHP и файл ext\php_mcrypt.dll в папку \Program Files (x86)\PHP\ext. Теперь добавим строчку extension=php_mcrypt.dll в файл \Program Files (x86)\PHP\php.ini и перезапустим IIS командой iisreset. Если все было сделано правильно, то обновленная страничка phpinfo будет содержать информацию о mcrypt extension. - Установка Magento.
Итак, все готово для установки Magento. Скачиваем с сайта www.magentocommerce.com Full Release (zip) и распаковываем содержимое архива в папку C:\inetpub\wwwroot\magento. Предполагаемая скорость распаковки, к счастью, отличается от реальной примерно на 4 часа

После распаковки запускам web installer, указав в броузере адрес http://127.0.0.1/magento. На этапе установки получим сообщение о проблемах с правами доступа
o Path “C:\inetpub\wwwroot\magento/app/etc” must be writable
o Path “C:\inetpub\wwwroot\magento/var” must be writable
o Path “C:\inetpub\wwwroot\magento/media” must be writableДля того, чтобы устранить проблему – назначим права Modify на указанные папки для группы Users. После этого можно продолжить установку, обновив страницу. На странице настройки доступа к БД указываем параметры подключения к MySQL и имя базы (по умолчанию – magento). Ждем пока инсталлятор Magento создаст MySQL базу и завершаем установку. Magento установлена и доступна по адресу http://127.0.0.1/magento/. Админка доступна по адресу http://127.0.0.1/magento/index.php/admin
- SEO friendly URL.
Для того, чтобы избавиться от index.php в пути файла, нам потребуется настроить rewrite. Так как синтаксис и формат IIS rewrite отличается от apache mod_rewrite, создадим файл web.config в папке magento:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="magento rules" stopProcessing="true"> <match url=".*" ignoreCase="false" /> <conditions> <add input="{URL}" pattern="^/(media|skin|js)/" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule> </rules> </rewrite> </system.webServer> </configuration>После этого в админке включим SEO Friendly URLs:
System -> Configuration -> WEB -> Search Engines Optimization -> Use Web Server Rewrites -> Yes.
На этом базовая установка и настройка Magento в IIS завершена. В завершение хотел бы добавить, что я не являюсь специалистом в IIS и буду рад услышать замечания к этой заметке.


Написать комментарий