Статьи

Начало работы с PHP на Windows с SQL Server Express

В недавней статье мы увидели, как легко настроить и запустить веб-сервер в Windows с PHP, IIS и SQL Server Express с помощью установщика веб-платформы. Сейчас. давайте посмотрим, как мы можем использовать эти инструменты вместе для создания простого веб-приложения.

Не забудьте проверить викторину в конце , спонсором которой является Microsoft, и, возможно, выиграть бесплатную копию выпуска SQL Server Developer. Доступно ограниченное количество, так что поторопитесь и погрузитесь прямо в.

Установщик веб-платформы Microsoft, или WPI, является унифицированным установщиком веб-приложений и соответствующего программного обеспечения. WPI может установить PHP, Microsoft SQL Server, .NET Framework и различные приложения с открытым исходным кодом, и это лишь некоторые из них! Установщик также настраивает службы Internet Information Services (веб-сервер, включенный в Windows) для этих компонентов, поэтому начать работу легко. Но прежде чем мы начнем создавать наше веб-приложение, мы будем использовать WPI для настройки среды разработки.

В этой статье предполагается, что у вас есть базовые знания о PHP и реляционных базах данных — если вы можете написать код PHP и SQL для манипулирования записями в базе данных, все в порядке. Мы пройдемся по PHP довольно быстро, чтобы сосредоточиться на мощности и простоте платформы.

Сначала посетите страницу загрузки WPI и получите копию установщика. Вам понадобится система под управлением Windows XP SP2 +, Server 2003 SP1 +, Server 2008, Vista SP1 или Windows 7; Я использовал Vista SP1 для этого урока. Сам установщик занимает всего 1 МБ, но будьте готовы к передаче нескольких сотен мегабайт данных, когда установщик загружает компоненты платформы.

Прежде чем мы начнем установку, убедитесь, что в вашей системе установлен IIS. IIS входит в состав большинства выпусков Windows, однако не входит в состав выпусков Home. Проверьте функции Windows (но обратите внимание, что названия могут отличаться) в разделе « Программы и компоненты» на панели управления, чтобы убедиться, что IIS установлен; Если нет, просто установите IIS, прежде чем продолжить.

Откройте установщик веб-платформы и просмотрите доступные варианты. Вы можете узнать некоторые приложения с открытым исходным кодом, такие как WordPress, на вкладке Приложения ; установщик может настроить эти приложения и все необходимое программное обеспечение платформы с минимальными усилиями.

Перейдите на вкладку Веб-платформа, чтобы начать установку необходимых нам компонентов. Используйте ссылки Customize для выбора компонентов. Как минимум, нам нужно выбрать Веб-сервер > Разработка приложений > CGI , Frameworks и Runtime > PHP > PHP 5.x и все, что находится в базе данных . Если вы следовали предыдущей статье «Простой способ установить PHP в Windows» , некоторые из этих компонентов уже будут установлены. На рисунке 1 «Компоненты, которые нужно установить» показаны компоненты, которые я использовал (плюс SQL Server Management Studio):


Обратите внимание, что собственный клиент SQL Server 2008 указан как зависимость для драйвера PHP. Собственное клиентское программное обеспечение обеспечивает функциональность ODBC для драйвера PHP и требуется даже при работе с экземплярами SQL Server 2005.

Нажмите Я принимаю, и во время процедуры установки вам будет предложено настроить аутентификацию для вашей новой установки SQL Server. В этом руководстве мы будем использовать проверку подлинности SQL Server, поэтому выберите « Смешанная проверка подлинности» вместо встроенной проверки подлинности Windows ; заметьте, однако, что оба хороши для развития. Мы будем сохранять имя пользователя по умолчанию sa , но вы можете выбрать любой пароль, который вы хотите.

Идите вперед и дайте WPI загрузить и установить эти элементы. Если у вас возникнут какие-либо проблемы, посетите страницу устранения неполадок WPI .

После завершения установки платформы SQL Server должен быть запущен на вашем компьютере. Запустите SQL Server Management Studio, используя ярлык, который установщик поместит в меню « Пуск» .


Вам будет предложено подключиться к экземпляру SQL Server, как показано на рисунке 3, «Подключение к экземпляру сервера» . Для этого используйте комбинацию имени пользователя и пароля, которую вы установили ранее (или свои учетные данные для входа в Windows, если вы выбрали аутентификацию Windows).


Обратите внимание, что BUSLN1 — это имя моего компьютера, а SQLEXPRESS — это имя экземпляра по умолчанию для SQL Server (Express Edition), установленного WPI. Это должно быть уже заполнено, но вам может потребоваться выбрать SQL Server Authentication из списка методов Authentication . Если вы не можете подключиться, убедитесь, что SQL Server запущен: откройте консоль служб (« Пуск» > « Выполнить» и введите services.msc ), как показано на рисунке 4 «SQL Server запущен» , и убедитесь, что SQL Server запущен.


После подключения в SQL Server Management Studio (SSMS), показанной на рисунке 5 «Интерфейс SSMS» , будут отображаться ваши базы данных, а также другие части информации о сервере.


SSMS позволяет вам настраивать, управлять и администрировать ваш экземпляр SQL Server, а также управлять его базами данных. Дополнительные сведения о SSMS см. В разделе Введение в SQL Server Management Studio на MSDN.

Если вы установили Менеджер баз данных для IIS, как я, вы также можете проверить, что ваш сервер баз данных запущен и работает, используя Менеджер баз данных в IIS Manager (он находится в разделе « Управление » на первой странице). Однако менеджер баз данных ожидает подключения к определенной базе данных, поэтому вам придется сначала создать ее, используя SSMS.

WPI установил последний выпуск PHP и настроил для него IIS. Давайте проверим, работает ли IIS. Самый простой способ сделать это — зайти на http: // localhost / и убедиться, что страница IIS по умолчанию отображается в вашем браузере.

Загрузите IIS Manager, показанный на рисунке 6, «Интерфейс IIS Manager» — он находится в разделе « Администрирование» на панели управления, но он также должен появиться, если вы введете IIS в строку поиска в меню « Пуск» .


Здесь мы можем настроить и администрировать наш сервер IIS, а также управлять размещенными веб-сайтами. Поскольку IIS включен в большинство выпусков Windows, WPI просто добавил и включил определенные обязательные компоненты, такие как компонент CGI . Параметры, которые вы видите, могут не совпадать с описанными выше, но если у вас включен CGI, вы должны быть готовы к работе.

Если вы не смогли получить доступ к своему серверу IIS по адресу http: // localhost / ранее, щелкните на своем веб-сервере (запись верхнего уровня на левой панели, скорее всего, помечена именем вашего компьютера; например, это BUSLN1 для меня) , Нажмите Пуск на панели действий справа. Затем выберите веб-сайт по умолчанию и используйте панель « Действия» справа, чтобы убедиться, что веб-сайт также работает.

Теперь давайте удостоверимся, что PHP был установлен правильно. Наш сервер будет выполнять PHP через модуль FastCGI, рекомендуемый метод для IIS. Сначала выберите верхнюю запись для вашего сервера в разделе « Подключения» слева и дважды щелкните « Модули» в среднем окне (это один из компонентов, сгруппированных в IIS ).


Вы должны увидеть FastCgiModule в этом списке, как показано на рисунке 7, «Список модулей» . Если нет, нажмите « Настроить собственные модули» справа и включите FastCgiModule . Если FastCgiModule не является опцией, нажмите « Зарегистрировать» , назовите модуль FastCgiModule , назовите %windir%System32inetsrviisfcgi.dll в качестве пути к модулю, а затем включите его.

Теперь выберите ваш веб-сайт по умолчанию , откройте раздел « Модули » и еще раз убедитесь, что FastCgiModule находится в списке. (Если нет, используйте предыдущие инструкции, чтобы поместить его туда.)

Наконец, с выбранным веб-сайтом по умолчанию дважды щелкните « Сопоставления обработчиков» .


WPI должен был добавить запись с названием PHP_via_FastCgi , как показано на рисунке 8, «Список отображений обработчиков» , когда устанавливал PHP. Однако, если этот параметр не отображается в списке, нажмите « Добавить сопоставление модуля» справа, введите *.php в качестве пути запроса, выберите FastCgiModule из списка модулей и выберите двоичный файл php-cgi.exe для этого пути — это должно быть в C:Program FilesPHPphp-cgi.exe или что-то подобное. (Не забудьте использовать кавычки вокруг пути к исполняемому файлу из-за этого места в Program Files .) Выберите имя, например PHP via FastCgi , и нажмите OK . IIS предложит вам создать приложение FastCgi для PHP, как показано на рисунке 9, «Добавление сопоставления модулей» .


Теперь мы готовы запустить наши приложения PHP под IIS. Ваш веб-сайт по умолчанию будет иметь корневой каталог документов, похожий на C:inetpubwwwroot — вы можете изменить это с помощью диспетчера IIS. Пока удалите файлы IIS по умолчанию в этой папке и создайте файл index.php . Откройте ваш любимый текстовый редактор и добавьте следующее:

  <Phpphpinfo (?); Выход; 

Переключитесь на свой веб-браузер и снова посетите http://localhost/ (или http://localhost/index.php если вы не удалили заставку IIS). Найдите sqlsrv , который является родным драйвером SQL Server для PHP, предоставляемым Microsoft. Пропустите первую запись, и вы увидите, что драйвер установлен и включен, как показано на рисунке 10, «Информация о SQL Server из phpinfo» .


Теперь давайте создадим базу данных и получим ее с помощью PHP. Вернитесь в SQL Server Management Studio, подключитесь к серверу базы данных, если вы этого еще не сделали, и создайте новую базу данных. Просто щелкните правой кнопкой мыши Базы данных и выберите Новая база данных …, чтобы открыть диалоговое окно Новая база данных, показанное на рисунке 11, «Создание новой базы данных» .


Вы увидите новую запись для вашей новой базы данных в разделе Базы данных . Разверните запись для своей базы данных, щелкните правой кнопкой мыши Таблицы и выберите Новая таблица …, чтобы создать новую таблицу.


Вы можете изменить имя таблицы, используя панель « Свойства» справа, ввести информацию о схеме (здесь у нас просто есть идентификатор и поле name в таблице с именем people ), а для поля id установить первичный ключ, щелкнув правой кнопкой мыши Поле имени столбца . Для эквивалента поля автоинкремента выберите ID в качестве столбца идентификаторов под конструктором таблиц справа. Это не совсем необходимо, но я подумал, что ветеран MySQL будет искать эту опцию.

Наконец, нажмите кнопку Сохранить (или нажмите Ctrl + S ), чтобы создать таблицу. Вы увидите, что он появится в вашем Object Explorer слева, как на рисунке 13, «Новая таблица создана» .


Щелкните правой кнопкой мыши dbo.people слева, выберите « Редактировать верхние 200 строк» и введите несколько фиктивных данных в строку, как показано на рисунке 14 «Ввод данных» .


Теперь вернитесь в ваш текстовый редактор, откройте файл index.php мы работали ранее, и обновите его следующим образом:

  <? php $ server = " BUSLN1\SQLEXPRESS "; $ options = array ("UID" => "sa", "PWD" => " password ", "Database" => "test"); $ conn = sqlsrv_connect ( $ server, $ options); if ($ conn === false) die ("<pre>". print_r (sqlsrv_errors (), true)); echo "Успешно подключено!"; sqlsrv_close ($ conn); 

Вам определенно потребуется изменить параметры, выделенные курсивом — они должны отражать информацию о конфигурации, которую вы ранее вводили в диалоге подключения SQL Server Management Studio. Также мы используем \ вместо в имени сервера, потому что это экранирующий символ в PHP. Измените $server для отображения имени вашего компьютера и замените значение массива “PWD” выбранным вами паролем. Если вы выбрали проверку подлинности Windows при установке SQL Server, пропустите строки “UID” и “PWD” ; SQL Server будет использовать вашу текущую учетную запись Windows для аутентификации на сервере базы данных.

Этот код пытается подключиться к локальному экземпляру SQL Server, используя собственный драйвер SQL Server. API немного отличается от собственных драйверов mysql , mysqli или pgsql для PHP, но его легко подобрать. Дополнительные сведения о драйвере см. В документации по MSDN.

Загрузите http: //localhost/index.php, и вы должны увидеть сообщение «Успешно подключено!». Если нет, убедитесь, что ваш SQL Server работает и эти учетные данные работают в SQL Server Management Studio; драйвер PHP должен дать вам тот же результат (включая формулировку сообщения об ошибке). Дополнительные сведения о подключении к SQL Server см. В документации sqlsrv_connect .

Теперь давайте восстановим строку, которую мы создали ранее. Вернитесь в ваш текстовый редактор и добавьте этот код после "Successfully connected!" линия:

  $ sql = "SELECT * FROM dbo.people"; $ query = sqlsrv_query ($ conn, $ sql); if ($ query === false) {exit ("<pre>". print_r (sqlsrv_errors (), true) );} while ($ row = sqlsrv_fetch_array ($ query)) {echo "<p> Здравствуйте, $ row [name]! </ p>";} sqlsrv_free_stmt ($ query); 

Это извлечет все записи из нашей таблицы сотрудников и выведет значение в поле имени каждой записи. Наконец, мы вызываем sqlsrv_free_stmt чтобы освободить ресурсы, связанные с оператором запроса. Этот последний вызов является необязательным, но может иметь значение для сложных подготовленных операторов и больших наборов результатов.

Посетите http: //localhost/index.php в вашем веб-браузере; Вы должны увидеть запись для каждой записи в своей таблице сотрудников. Добавьте еще несколько строк в SQL Server Management Studio и обновите страницу, чтобы получить новый набор результатов. Теперь, когда мы знаем, как получить доступ к SQL Server из PHP, мы готовы создать наше веб-приложение!