1 / 17

PHP приложения върху IIS – инсталация и настройки

PHP приложения върху IIS – инсталация и настройки. Владимир Чалков Vladimir Tchalkov, Ventsislav Popov Crossroad Ltd. За какво ще говорим?. Малко предистория Инсталация на PHP Конфигурация Примерно приложение Анализ на потенциални проблеми Q&A. Малко предистория.

azra
Download Presentation

PHP приложения върху IIS – инсталация и настройки

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP приложения върху IIS – инсталация и настройки Владимир Чалков Vladimir Tchalkov, Ventsislav Popov Crossroad Ltd.

  2. За какво ще говорим? • Малко предистория • Инсталация на PHP • Конфигурация • Примерно приложение • Анализ на потенциални проблеми • Q&A

  3. Малко предистория • Common Gateway Interface (CGI) • Ползи • Много прост за използване • Минуси • Лоша производителност поради високата “цена” за създаване на процес • Създава нов процес и изпраща заявката към него • Чака резултат • Спира процеса

  4. Малко предистория (2) • Internet Server Application Programming Interface (ISAPI) • Ползи • Ако е написано правилно е изключително бързо • Минуси • Трябва да бъде thread-safe (много php extensions не са) • Изисква разработка на C++

  5. FastCGI • FastCGI: най-доброто от CGI и ISAPI • Подобрява CGI протокола • Уеб сървъра създава FastCGI процес при първа заявка • После процеса се използва отново • Част от IIS 7, но може да се инсталира и на по-стари версии • Ползи от FastCGI върху Windows • Много по-бързо • Много по-стабилно от ISAPI поради single-threaded изпълнението Non-thread safe PHP се препоръчва за FastCGI

  6. FastCGI Архитектура FastCGI process pool за PHP5 IIS Worker Process FastCGI протокол върху named pipes или TCP php-cgi.exe FastCGI process pool за PHP4 Request queue php.exe

  7. Microsoft и PHP общността Преди След

  8. http://windows.php.net/download.php

  9. Усилия в полза на PHP • ADOdb • LGPL Open Source проект със съдействието на Microsoft • SQL Server PHP Driver • Първата версия наSQL Server Driver заPHP – дава възможност на PHP приложения да използват SQL ServerDatabase • IIS7+ FastCGI • Подобрена производителност на PHP върху Windows • Expression Web 2.0 • Възможност за редакция на PHP уеб сайтове

  10. Инсталиране и настройване • Лесен подход • С използването на web platform installer • Ръчен подход • Разрешаване на FastCGI • Изтегляне на последната non thread-safe версия на PHP • Дефиниране на Handler mapping за PHP • Дефиниране на FastCGI приложение за PHP

  11. Инсталиране на FastCGI и PHP върху IIS7 ДЕМО

  12. Инсталиране на PHP приложения върху IIS7 • Контролът на конфигурацията на IIS за PHP приложенията става чрез web.config • Например: настройване на default document index.php • PHP приложения работят в новата IIS7 integrated pipeline съвместно с ASP.NET и други приложения • Може да се разширяват съществуващи PHP приложения с ASP.NET функционалност • Може да се разработват .NET модули, които обработват PHP заявки по същия начин както обработват и ASP.NET заявки. • Например: URL Rewriter, който създава лесни URL, за PHP и ASP.NET съдържание.

  13. Най-добри практики за PHP под IIS7 • Ако няма свободни процеси за чакаща заявка, трябва да осигурим нов процес! • 4 инстанции на процес за всеки процесор • Всеки процес трябва да се рециклира периодично • instanceMaxRequests - броя заявки, които ще бъдат обработени преди да бъде рециклиран • PHP_fcgi_max_requests – трябва да бъде НЕ по-малко от instanceMaxRequests. • <fastCgi> • <application fullPath="C:\PHP\php-cgi.exe" • maxInstances="4" • instanceMaxRequests="10000" • idleTimeout="300"/> • </fastCgi>

  14. Най-добри практики за PHP под IIS7 • Специфичните за PHP environment variables в web.config?! • <fastCgi> • <application fullPath="C:\PHP\php-cgi.exe" • instanceMaxRequests=“10000"> • <environmentVariables> •     <environmentVariable • name=”PHP_FCGI_MAX_REQUESTS” • value=”10000”/> •    </environmentVariables> • </application> • </fastCgi>

  15. Най-добри практики за PHP под IIS7 • Клиента получава response timed out! • FastCGI процесаще бъде спрян ако не върне отговор към FastCGI handler-ав рамките на определено време. • requestTimeout - времето (в секунди), което една заявка чака да процеса да започне обработка. • activityTimeout – максималното времето (в секунди) за всяко действие в рамките на процеса. Трябва да е по-малко от requestTimeout! • <fastCgi> • <application fullPath="C:\PHP\php-cgi.exe" • activityTimeout=“30" • requestTimeout=“90"/> • </fastCgi>

  16. FastCGI най-добри практики • FastCGI process security context • FastCGI използва Application pool identity за стартираните процеси. • fcgi.impersonate - PHP настройка за client impersonation. • FastCGI и PHP върху Windows Server • http://forums.iis.net • Community • http://www.iis.net/php • Комерсиални продукти • Consider Zend’s commercial offerings (Zend Core) • FastCGI за IIS6 • FastCGI Extension за IIS6 налични за изтегляне!

  17. Обобщение • FastCGI за IIS6 е наличен за изтегляне! • FastCGI драстични подобрява надеждността и производителността на PHP приложениявърху IIS6 и IIS7 • Integrated pipeline в IIS7 дава възможност за: • Разширяването на съществуващи PHP приложенияс ASP.NET • Разработка на managed модули, които да се намесват в обработката на постъпващите заявки за различни уеб сайтове (ASP.NET, PHP, Ruby, т.н.).

More Related