Установка и работа Magento на сервере Windows 2008 с IIS7

Алексей Саморуков, 29.03.10

Несмотря на то, что официальная поддержка Magento заявлена только для LAMP-платформ (Linux, Apache, PHP, MySQL), существует возможность установить Magento и под управлением IIS7 на Windows Server. Данная конфигурация не является официально поддерживаемой или рекомендуемой, но тем не менее – вполне работоспособна. О том как “подружить” Magento c Windows Server 2008 и IIS7 и пойдет речь ниже.

Установка производилась на сервер с установленной ОС Windows 2008 64-bit.

  1. Устанавливаем 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.

    web-installer

  2. Устанавливаем MySQL.
    Скачиваем последний MySQL GA (5.1.45 на момент написания статьи) с официального сайта. Так как установка производилось на 64-бит версии – выбираем архив “Windows (x86,64-bit) MSI installer”. Во время установки на этапе конфигурации указываем что у нас “Server Machine” и “Multifunctional Database”.
    mysql-install

    На вопрос о количестве допустимых соединений указываем OLTP (500 connections). Назначаем пароль root пользователя, он потребуется нам позже. Создадим базу данных Magento используя MySQL Command Line Client. Запустив его указываем пароль и пишем “create database magento;”

    mysql

  3. Проверка PHP, добавление php_mcrypt.
    Для того, чтобы убедиться, что установка PHP прошла успешно – создаем текстовый файл i.php в директории c:\inetpub\wwwroot. Содержимое файла – строка <?php phpinfo(); ?>. Попробуем загрузить его в браузере:
    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.

  4. Установка Magento.
    Итак, все готово для установки Magento. Скачиваем с сайта www.magentocommerce.com Full Release (zip) и распаковываем содержимое архива в папку C:\inetpub\wwwroot\magento. Предполагаемая скорость распаковки, к счастью, отличается от реальной примерно на 4 часа
    unzip
    После распаковки запускам 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

  5. 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 и буду рад услышать замечания к этой заметке.

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