Сайт о телевидении

Сайт о телевидении

» » Установка и настройка PHP. Установка PHP

Установка и настройка PHP. Установка PHP

Данное описание подходит для любой редакции Windows 7/8/8.1.

Установка веб-сервера Apache

Первым делом скачаем дистрибутив Apache с сайта: http://www.apachelounge.com/download/ . В списке дистрибутивов Apache 2.4 binaries VC11 , нам нужно скачать «httpd-2.4.7-win64-VC11.zip».

После того как скачали, открываем архив httpd-2.4.7-win64-VC11.zip

Извлекаем из него папку Apache24 в раздел диска C:\

Теперь нам необходимо немного поправить конфиг, прежде чем устанавливать Apache. Открываем файл httpd.conf (находится здесь: C:\Apache24\conf) желательно через удобный редактор, например notepad++. Находим строку (217) ServerName www.example.com:80 и меняем на ServerName localhost:80

Здесь нам необходимо указать полный путь к файлу httpd.exe, который находится в папке Apache. В нашем случае это C:\Apache24\bin\httpd.exe. Набираем команду C:\Apache24\bin\httpd.exe -k install и жмем Enter.

Если при выполнении программы у вас возникает следующая ошибка: failed to open the winnt service manager perhaps you forgot to log in as administrator, заходим в следующую папку: C:\Users\Здесь_имя_вашего_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools, запускаем командную строку от имени администратора

И повторяем команду установки.

Установка завершена. Откройте директорию bin (полный путь: C:\Apache24\bin\) и запустите файл: ApacheMonitor.exe. В системном трее появится значок Apache, с помощью которого можно быстро запускать/останавливать службу Apache, жмем start (запуск):

Теперь проверим работоспособность. Открываем браузер, и в адресной строке пишем http://localhost/ (можно просто localhost). Если установка выполнилась успешно, должна открыться страница с надписью It works!

Установка PHP (ручная)

Нужен ли нам Apache без PHP ? Конечно нет, это нонсенс! Поэтому далее мы рассмотрим ручную (без использования инсталлятора) установку PHP.

Скачиваем PHP (Zip архив) с сайта: http://windows.php.net/download/ . Нам нужна версия: VC11 x64 Thread Safe .

Содержимое архива распаковываем в директорию C:\PHP (папку PHP создаём сами). Далее в папке C:\PHP находим два файла php.ini-development и php.ini-production. Эти файлы содержат базовые настройки. Первый файл оптимизирован для разработчиков, второй для рабочих систем. Основная разница в настройках: для разработчиков разрешен вывод на экран ошибок, тогда как для рабочих систем вывод ошибок запрещен из соображений безопасности.

Сделаем кое что, прежде чем продолжить установку PHP. Открываем Панель управления → оформление и персонализация → параметры папок → вкладка Вид, находим строку «Скрывать расширения для зарегистрированных типов файлов», и если там стоит галочка, убираем ее и нажимаем «Применить».

Продолжаем установку. И так, выбираем нужный вам файл (я выбрал php.ini-development). Выбранный файл нужно будет просто немного переименовать. Правый клик по файлу → Переименовать → стираем «-development», оставляя только php.ini

Теперь открываем php.ini, нам необходимо внести несколько изменений (будьте внимательны при внесении изменений, если в начале строки стоит точка с запятой, ее надо будет убрать):

  1. Найти опцию extension_dir (строка 721) и изменить путь к папке ext в соответствии с путем установки PHP. У меня это выглядит так:
    extension_dir = "C:\PHP\ext"
  2. Найти опцию upload_tmp_dir (строка 791). Здесь надо указать путь к временной папке. Я выбрал c:\windows\temp. Всё вместе:
    upload_tmp_dir = "C:\Windows\Temp"
  3. Найти опцию session.save_path (строка 1369). Здесь также требуется указать путь к временной папке:
    session.save_path = "C:\Windows\Temp"
  4. В разделе Dynamic Extensions необходимо раскомментировать несколько строк (убрать точку с запятой в начале), соответствующих модулям PHP, которые могут понадобиться для работы: 866, 873, 874, 876, 886, 895, 900

Сохраняем изменения и закрываем.

Теперь вернемся к настройкам Apache. Нам придется немного отредактировать конфиг Apache. Заходим в папку C:\Apache24\conf и открываем файл httpd.conf.

Переходим в конец файла и в самом низу добавляем следующие строчки:

# Charset AddDefaultCharset utf-8 # PHP LoadModule php5_module "C:/PHP/php5apache2_4.dll" PHPIniDir "C:/PHP" AddType application/x-httpd-php .php

Путь к папке php указываете тот, который вы выбрали в процессе установки (если вы устанавливали в другую директорию).

В этом же файле находим следующие строки (строки примерно 274-276):

DirectoryIndex index.html

Перед index.html дописываем через пробел index.php. В итоге получается:

DirectoryIndex index.php index.html

Чтобы изменения вступили в силу, перезапускаем службу Apache (значок в трее - Apache monitor). Если служба перезапустится - это хороший знак. Если нет (выскочит ошибка) - ищите ошибки в конфигурационных файлах. Особенно внимательно проверьте все пути.

Чтобы нам убедиться в работоспособности PHP, откройте папку C:\Apache24\htdocs (здесь содержатся файлы веб-сайта по умолчанию). Создайте в этой папке файл index.php со следующим содержанием:

Теперь откройте в браузере http://localhost/ (или просто localhost). Если все прошло нормально, вы увидите похожую страницу:

Если у вас вместо страницы с инфомацией о php открылась страница с надписью «It works!», тогда просто нажмите обновить страницу.

Установка MySQL

Открываем страницу загрузки дистрибутива: http://dev.mysql.com/downloads/installer/5.6.html и скачиваем Windows (x86, 32-bit), MSI Installer 5.6.16 250.8M. После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить нажав на ссылку внизу (» No thanks, just start my download!).

Запускаем установщик, после небольшой загрузки видим следующее окно:

Нажимаем Install MySQL Products, появляется следующее окно, в котором мы принимаем лицензионное соглашение (ставим галочку) и жмем Next >

Следующее окно нам предлагает проверить, есть ли более новая версия MySQL, ставим галочку Skip... (пропустить) и нажимаем Next >

В следующем окне нам предлагают выбрать тип установки, выбираем Custom и жмем Next >:

В следующем окне нам предоставляется возможность выбратьнеобходимые компоненты: убираем галочку с MySQL Connectors, в Application убираем галочку с MySQL Workbench CE 6.0.8 и MySQL Notifier 1.1.5, в MySQL Server 5.6.16 убираем галочки с Development Components и Client C API library (shared) и жмем Next >

Следующее окно нам сообщает что именно будет установлено, просто нажимаем Execute

После успешной установки жмем Next >

Вследующем окно нам сообщается о том, что далее мы немного настроим наш сервер, жмем Next >

В первом окне настрокйки, устанавливаем галочку Show Advanced Options, остальное оставляем как есть и жмем Next >

В следующем окне нам предлагается установить пароль администратора (root). Этот пароль лучше не терять! Устанавливаем пароль и жмем Next >

В следующем окне стираем в поле ввода цифры 56, остальное оставляем как есть и жмем Next >

Жмем Next >

Жмем Next >

Осталось проверить успешно ли прошла установка. (win 8): Заходим в меню пуск → переходим к приложениям (стрелочка вниз) → находим MySQL5.6 Command Line Client (терминал для работы с MySQL в командной строке) → открываем его. Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку (mysql>). Введите команду: show databases; (точка с запятой на конце обязательна). В результате вы должны увидеть список баз данных (как минимум две - information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.

Добавьте в файл C:\Windows\System32\drivers\etc\hosts строчку: 127.0.0.1 localhost. В этом же файле удалите или закомментируйте (поставить знак # в начале строки) строку::1 localhost (если она изначально закомментирована, то не надо ничего с ней делать).

Установка и базовая настройка phpMyAdmin

Открываем страницу загрузки http://www.phpmyadmin.net/home_page/downloads.php и выбираем для скачивания архив оканчивающийся на *all-languages.7z или *all-languages.zip (на момент написания статьи последняя версия была phpMyAdmin 4.1.9). Создаем папку phpmyadmin в C:\Apache24\htdocs и извлекаем туда файлы скаченного архива.

Проверим как оно работает. Открываем браузер и переходим по адресу http://localhost/phpmyadmin/ . Должно открыться такое окно:

Теперь нам необходимо создать конфигурационный файл для MySQL. Заходим в папку phpmyadmin и создаем там папку config. Открываем в браузере следующий адрес: http://localhost/phpmyadmin/setup/

Теперь, чтобы настроить параметры подключения к MySQL, нажимаем на кнопку «Новый сервер», нам открывается новое окно, в графе «Хост сервера» localhost необходимо заменить на 127.0.0.1:

Сохраняем настройки (жмем Apply) и нас автоматически вернут на предыдущую страницу. Выбираем язык по умолчанию - Русский, сервер по умолчанию - 127.0.0.1, конец строки - Windows. Внизу нажимаем Сохранить и затем Скачать.

Полученный файл (config.inc.php) сохраняем в корень установки phpMyAdmin (C:\Apache24\htdocs\phpmyadmin). Закрываем страницу, она нам больше не понадобится.

На этом все. Возвращаемся на страницу http://localhost/phpmyadmin/. Теперь можно авторизоваться в системе под пользователем root (пароль вводите тот, который указывали при настройке MySQL для пользователя root). Тестируем подключение к MySQL. Если все прошло успешно (вы смогли войти в phpMyAdmin), папку config из папки phpmyadmin удаляем.


Прямая ссылка: php-5.3.10-Win32-VC9-x86.zip
Заодно скачайте сразу и документацию на русском языке в формате.chm, она вам понадобится при изучении и работе: php_enhanced_ru.chm

Распакуйте архив в желаемый каталог (изначально предлагается «C:\php»). Откройте конфигурационный файл содержащий рекомендуемые настройки — «php.ini-development» (находящийся в корне дистрибутива), переименуйте его в php.ini и произведите следующие изменения.

Редакция php.ini:

  1. Найдите строку:
    post_max_size = 8M
    Увеличьте до 16 Мбайт максимальный размер данных принимаемых методом POST, изменив ее на:
    post_max_size = 16M
  2. Найдите строку:
    ;include_path = «.;c:\php\includes»
    Раскомментируйте ее, убрав перед строкой символ точки с запятой.
    (Внимание исключение! Обратные косые черты при указании пути):
    include_path = «.;c:\php\includes»
    Создайте пустой каталог «C:\php\includes», для хранения подключаемых классов.
  3. Найдите строку:
    extension_dir = «./»
    Установите значением данной директивы путь к папке с расширениями:
    extension_dir = «C:/php/ext»
  4. Найдите строку:
    ;upload_tmp_dir =
    Раскомментируйте ее и укажите в значении следующий путь:
    upload_tmp_dir = «C:/php/upload»
    Создайте пустую папку «C:\php\upload», для хранения временных файлов загружаемых через HTTP.
  5. Найдите строку:
    upload_max_filesize = 2M
    Увеличьте максимально допустимый размер загружаемых файлов до 16 Мбайт:
    upload_max_filesize = 16M
  6. Подключите, расскомментировав, данные библиотеки расширений:
    extension=php_bz2.dll
    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_mbstring.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
  7. Найдите строку:
    ;date.timezone =
    Раскомментируйте и установите значением часовой пояс вашего местоположения (список часовых поясов можно найти в документации):
    date.timezone = «Europe/Moscow»
  8. Найдите строку:
    ;session.save_path = «/tmp»
    Раскомментируйте и установите значением данной директивы такой путь:
    session.save_path = «C:/php/tmp»
    Создайте пустую папку «C:\php\tmp» для хранения временных файлов сессий.

Сохраните изменения и закройте файл php.ini.

Далее необходимо добавить каталог с установленным PHP интерпретатором в PATH операционной системы. Для чего пройдите по пути «Start» («Пуск») -> «Control Panel» («Панель управления») -> «System» («Система»), откройте вкладку «Advanced» («Дополнительно»), нажмите кнопку «Environment Variables» («Переменные среды»), в разделе «System Variables» («Системные переменные») сделайте двойной щелчок на строке «Path», добавьте в поле «Variable Value» («Значение переменной»), к тому что там уже существует, путь к каталогу с установленным PHP, например, «C:\php» (без кавычек). Обратите внимание на то что символ точки с запятой разделяет пути. Чтобы внесенные изменения вступили в силу, перезагрузите операционную систему.

Пример строки Path:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\php;C:\Program Files\MySQL\MySQL Server 5.5\bin

Установка и настройка PHP интерпретатора – завершена.

Описание подключаемых библиотек:

php_bz2.dll – С помощью данного расширения PHP сможет создавать и распаковывать архивы в формате bzip2.

php_curl.dll – Очень важная и нужная библиотека, позволяющая соединяться и работать с серверами, с помощью огромного количества интернет-протоколов.

php_gd2.dll – Ещё одна незаменимая библиотека, позволяющая работать с графикой. Вы думали на PHP можно только HTML странички генерировать? А вот и нет! С помощью PHP можно почти всё, в том числе и рисовать.

php_mbstring.dll – Библиотека содержит функции для работы с много-байтными кодировками, к которым относятся кодировки восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие.

php_mysql.dll – Имя библиотеки говорит само за себя — она необходима для работы с сервером MySQL.

php_mysqli.dll – Данная библиотека является расширением предыдущей и содержит дополнительные функции PHP для работы с сервером MySQL версии 4.1.3 и выше.

Данных библиотек должно хватить для полноценной работы PHP. Со временем, если появится такая необходимость, вы сможете подключить дополнительные библиотеки, но не стоит подключать их все сразу с мыслью, что кашу маслом не испортишь, в данном случае излишнее количество подключенных библиотек может заметно замедлить работу PHP.

Оригинал статьи: http://php-myadmin.ru/learning/instrument-php.html

От автора: один знакомый (еще тот «кривых дел мастер») решил самостоятельно собрать шкаф. В результате после нескольких часов мучений у него получился только стол. Вот такая метаморфоза случилась. Чтобы не оказаться в подобной ситуации, рассмотрим, как установить PHP правильно.

Без чего не будет работать PHP

– не обычный язык, а серверный. Из-за этого простой установки интерпретатора языка будет мало. Чтобы вы смогли выполнять код на своем персональном компьютере, понадобится локальный сервер.

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

История данного продукта подробно описана в Википедии. Так как надежность Apache подтверждена многими годами «безжалостного» использования, то не будет на доказательство это растрачивать свое драгоценное время. Попытаемся самостоятельно установить PHP сервер на ПК под Винду.

Устанавливаем «индейца»

Рассмотрим поэтапную установку сервера из индейского племени Apache:

Заходим на Apache.org, в меню справа жмем на «Download». После этого в предоставленном списке зеркал выбираем любое и скачиваем инсталяху с расширением.msi (родной формат под Windows) и версией не ниже 2.2

Поскольку проект является open source, то сейчас «развелось» множество сборок этого сервера. Если не можете найти указанную, перейдите по этому адресу . Здесь на зеркале доступны для скачивания родные версии Apache.

После загрузки запускаем инсталляционный пакет на выполнение. Процедура установки стандартная: соглашаемся с условиями использования, указываем имя домена и сервера, «мыло» администратора. Затем «Next».

Указываем директорию, куда следует установить PHP сервер Apache.

И ждем, пока пройдет процесс инсталляции ПО. Переходим в директорию, куда установили Apache. В папке конфигураций находим httpd.conf и открываем его. Находим строчку «Deny from all» и комментируем эту директиву. Таким образом мы снимаем встроенную защиту сервера, которая не нужна для локального использования Apache. То есть открываем доступ ко всем папкам, в том числе и к виртуальным. Если этого не сделать, то программа при попытке доступа к любой из директорий выдаст «403» ошибку.

Сохраните все изменения и перезапустите сервер.

Переходим к PHP

Заходим на php.net и скачиваем одну из «86» версий дистрибутива (лучше защищенную). Затем распаковываем ее в отдельной папке на том же диске, где и сервер. Я не буду полностью описывать все параметры языка, которые можно изменить. Более подробно об этом можно прочитать в сопутствующей технической документации.

Хотелось бы отметить, что все настройки PHP задаются в файле php.ini. Он открывается с помощью любого редактора (в том числе и Блокнотом). Приведу описание нескольких часто используемых параметров, которые задаются через этот файл:

post_max_size – устанавливает максимальный объем данных, которые можно за раз обработать с помощью метода POST.

upload_max_filesize – максимальный размер файлов, которые можно загрузить.

default_charset – с помощью данного параметра можно в PHP установить по умолчанию кодировку utf 8.

Теперь для полного счастья осталось прописать несколько строк в httpd.conf. С их помощью мы подключим PHP к локальному серверу, чтобы он работал в качестве модуля Apache. Этого вполне хватает для написания и тестирования кода в «домашних» условиях. Указанные строки следует разместить в середине файла:

LoadModule php5_module путь к инсталляции PHP/ php5apache2_2.dll – подключает библиотеку, с помощью которой дистрибутив будет использоваться в качестве модуля.

PHPIniDir «путь к файлу php.ini/» (например, PHPIniDir «F:/php-5.3.5/») – понятно без слов.

AddType application/x-httpd-php phtml php – настраивает соответствие между файлами PHP и mime-типом (application/x-httpd-php).

Ну как? Настройка требует времени, внимания и умения. А вы никогда не задумывались, что легче всего уже собранный «шкаф». Хотя в нашем случае под шкафом подразумевается уже готовый пакет ПО, в который входят и PHP, и сервер, и СУБД. Понятно, что речь идет о Денвере. Благодаря ему никакой «шкаф» не сможет превратиться под «умелыми» руками спеца в какой-нибудь «стол» или «тумбочку» .

На PHP написано много хороших приложений. Даже нет,
очень много и некоторые из них очень хорошие, так почему бы не использовать эти
приложения на Windows? Особенно, если внутренний портал работает на Windows, а
на Unix машине крутиться внешний сайт компании - тогда
можно сэкономить на инфраструктуре и разместить на Windows
сервере еще и внешний сайт. Либо, если есть желание стандартизировать
инфраструктуру и размещать сайты на Windows
платформе, поскольку разработчики и пользователи работают на
Windows платформе.
На сайте www.iis.net
можно найти
список
популярных PHP приложений
с инструкциями по установке на IIS. Для их запуска
на IIS не требуется изменения
PHP кода.

Установка и настройка PHP для использования с модулем FastCGI.

Для начала, чтобы успешно использовать PHP на
Windows, неплохо было бы PHP
установить.
Шаг 1. Скачать PHP
На сайте PHP.net нужно скачать
последную версию PHP для Windows . Для использования с FastCGI рекомендуется
устанавливать версию PHP без контроля безопасности потоков, поскольку сам модуль
FastCGI гарантирует, что выполнение происходит в одном потоке и поддержка
контроля безопасности потоков в самом PHP привносит лишние проверки и
блокировки, приводящие к значительному падению производительности. Поэтому
выбираем Non-thread-safe Win32 binaries (версия 5.2.6 актуальна на момент написания
этого сообщения).
Стоит отметить, что веряим Non-thread-safe была разработана специально для
работы с FastCGI на IIS (первый релиз был в версии 5.2.1) и использовать в
других средах не рекомендуется. Кстати, начиная с версии 5.2.2 Zend серьезно
работает над оптимизацией производительности PHP под Windows, что не может не
радовать. Если сравнить версии 5.2.1 и 5.2.2, то разницу в скорости обработки
запросов можно легко увидеть с помощью простого нагрузочного теста.
Шаг 2. Установка PHP
Установка осуществляется совсем просто: поскольку мы скачали архив с
исполнимыми файлами, достаточно развернуть этот архив, например, в
директорию C:\Web\PHP.
В качестве базовой конфигурации воспользуемся рекомендованными установками:
cделаем копию файла php.ini-recommended в php.ini в этой же директории и откроем
его для редактирования, после чего пройдем файл сверху расскоментируя следующие
строки, дабы обеспечить безопасность и совместимость с большинством PHP
приложений:
  • open_basedir = директория, где размещены PHP приложения .
    Указание директории ограничит права доступа к файлам PHP приложений только
    этой директорией. Удобно переопределять эту настройку в файлах конфиграции
    непосредственно для каждого приложения, однако не помешает установить эту
    настройку и указать корневую директорию всех PHP приложений. Например, C:\inetpub\PhpSites.
  • cgi.force_redirect = 0
    По умолчанию установлено 1, но необходимо установить в 0, поскольку IIS
    контролирует безопасность выполнения PHP и в этой настройке нет
    необходимости. Более того, включение может привести к неожиданным
    результатам. При использовании с другими web-серверами на Windows эту
    настройку необходимо включить.
  • cgi.fix_pathinfo = 1
    PHP будет устанавливать имя файла в переменной SCRIPT_FILENAME, если
    установить значение 0, то имя файла будет в переменной PATH_TRANSLATED, что
    может нарушить совместимость с большинством приложений.
  • fastcgi.impersonate = 1;
    FastCGI позволяет процессу имперсонироваться используя контекст клиента,
    вызывающего процесс. Этот механизм работает только под FastCGI/IIS, например
    на Apache на Windows это работать не будет.
  • short_open_tag = On
    Большинство приложений используют короткие теги , поэтому будет не
    лишним включить их поддержку.
  • display_errors = On
    На время проверки и отладки PHP приложений на FastCGI стоит включить вывод
    сообщений об ошибках.
Шаг 3. Проверка работоспособности PHP
Пока мы не сконфигурировали IIS, проверить работоспособность интерпретатора
можно просто, например, выполнив команду c:\web\php\php.exe -info > c:\test.txt

Установка и настройка модуля FastCGI на IIS7.

Если у вас у IIS7, то что-то мне подсказывает о названии вашей операционной
системы - Windows Vista? Не угадал, тогда Windows Server 2008! Либо вы хакер и
поставили IIS7 еще-куда-то, но это нестандартное решение и мы его не
поддерживаем;).
Шаг 1. Установка FastCGI
Хочу обрадовать сразу - в IIS7, идущем с Windows Server 2008 и Windows Vista
Service Pack 1 модуль FastCGI уже включен. Его необходимо лишь подключить в
настройках. Для этого на Vista нужно открыть Control Panel -> Programs и выбрать
«Turn Windows Features On or Off»:

После этого необходимо установить фичу в IIS: Internet Information Services
-> World Wide Web Services -> Application Development Features -> CGI. При этом
будет установлена поддержка и CGI и FastCGI.

На Windows Server 2008 процесс аналогичен: Server Manager -> Roles -> Add
Role Services -> Web Server -> Application Development -> CGI.
Собственно все, что требуется для включения модуля FastCGI.
Шаг 2. Конфигурация IIS7
1. Открыть IIS Manager, выбрать узел (сервер) для которого нужно настроить
поддержку PHP. И далее выбрать Handler Mappings.

2. Выбираем на странице Handler Mappings ссылку Add Module Mapping и
заполняем окно следующими значениями:
Request path: *.php (обработка всех файлов с расширением.php)
Module: FastCgiModule (модуль FastCGI)
Executable: C:\Web\PHP\php-cgi.exe (путь к PHP)
Name: PHP (имя для удобства)

После добавления этой настройки появится окно с вопросом о регистрации
FastCGI приложения для этого обработчика. Подтверждаем.
Описанные выше действия привели к созданию в директории PhpSites следующего
web.config файла:


< configuration >
< system.webServer >
< handlers >
< add name =«PHP» path ="*.php" verb ="*"
modules =«FastCgiModule» scriptProcessor ="C:\Web\PHP\php-cgi.exe "
resourceType =«Unspecified» />



Теперь можно переходить к проверке работоспособности PHP.
Шаг 3. Проверяем корректность настройки
В директории узла для которого мы сконфигурировали PHP создаем файл
index.php:
phpinfo();
?>
И обращаемся к этому файлу через HTTP запрос. В результате, если все хорошо и
наша карма не испорчена, запрос будет корректно обработан:

Разумеется, при использовании PHP на
IIS7 могут возникать подводные камни, с которыми нужно
бороться, чтобы достичь ожидаемого результата (замечательной работы
PHP приложений на Windows).
Молотки для разбивания часто встречающихся камней приведены ниже.

Частота перезапуска процессов PHP

Поскольку при использовании PHP на
IIS7 с использованием FastCGI
модуля, сам модуль FastCGI берет на себя
управление процессами и ресурсами, необходимо убедится, что механизм перезапуска
процессов (recycling) в PHP
не будет мешать FastCGI. Это легко сделать, если
настроить FastCGI так, чтобы он всегда перезапускал
процессы раньше, чем это сделает PHP.
В настройках FastCGI существует настройка
instanceMaxRequests, определяющая после обработки какого количества запросов,
процесс будет перезапущен. В PHP аналогичный параметр
задается значением переменной PHP_FCGI_MAX_REQUESTS. Очевидно, чтобы дать
возможность FastCGI рулить процессом, достаточно
установить instanceMaxRequests <= PHP_FCGI_MAX_REQUEST.
Это удобно сделать, отредактировав файл
applicationHost.config (прячется в директории C:\windows\system32\inetsrv\config\).
В конфигурации должна быть следующая информация:

< fastCgi >
< application fullPath ="C:\inetpub\php\php-cgi.exe "
maxInstances =«4» instanceMaxRequests =«10000» >
< environmentVariables >
< environmentVariable name =«PHP_FCGI_MAX_REQUESTS» value =«10000» >


Использование нескольких версий PHP

Поскольку разные версии PHP могут использоваться в
приложениях, которые размещаются на сервере, то хорошо бы было дать возможность
использовать разные версии для разных сайтов.
В файле конфигурации applicationHost.config
достаточно определить секции для разных версий PHP:
< fastCgi >
< application fullPath =«C:\inetpub\php\php-cgi.exe» >
...

< application fullPath =«C:\inetpub\php4\php4.exe» >
...

< application fullPath =«C:\inetpub\php41\php41.exe» >
...


* This source code was highlighted with .
А уже для каждого из сайтов конфигурируется модуль, использующий ту или иную
версию (можно использовать интерфейс, который описан выше, а можно
отредактировать конфигурацию в тексте):
< handlers >
< add name =«PHP4» path ="*.php" verb ="*" modules =«FastCgiModule»
scriptProcessor ="C:\inetpub\php\php41.exe "
resourceType =«Unspecified» />

* This source code was highlighted with .

Использование разных наборов настроек PHP

Если есть желание настраивать PHP по-разному для
разных сайтов, то опять же все это можно описать через настройки конфигурации в
applicationHost.config.
< fastCgi >

< application fullPath ="C:\inetpub\php\php-cgi.exe "

arguments ="-d my.website=wordpress" >

< environmentVariables >

< environmentVariable name =«PHPRC» value =«C:\inetpub\wordpress» />





< application fullPath ="C:\inetpub\php\php-cgi.exe "

arguments ="-d my.website=phpsite" >

< environmentVariables >

< environmentVariable name =«PHPRC» value =«C:\inetpub\phpsite» />






* This source code was highlighted with .

После этого, настройки связываются с соответствующими сайтами в
web.config:
< system.webServer >

< handlers accessPolicy =«Read, Script» >
< add name =«PHP» path ="*.php" verb ="*" modules =«FastCgiModule»
scriptProcessor ="C:\inetpub\php\php-cgi.exe|-d my.website=wordpress "

resourceType =«Unspecified» requireAccess =«Script» />




* This source code was highlighted with .

В соответствии с приведенной конфигурацией, php.ini
нужно разместить в директории каждого из сайтов.
При редактировании настроек, стоит строго соблюдать совпадение путей к
соответствующей версии PHP и с
applicationHost.config и в web.config, чтобы
избежать неожиданных результатов, если пути будут перепутаны.
На первый взгляд редактирование конфигурации может показаться сложным и
неудобным процессом, но как только вы привыкните к конфигурации в
XML и распространению настроек методом
Ctrl+C, Ctrl+V, вы будете удивляться наличию других
способов конфигурации:)

Настройки безопасности PHP

В php.ini мноо разных настроек, многие из которых
влияют на безопасность использования PHP. Настроить
все подходящим образом, достойное дело.
Set allow_url_fopen=Off
; использование URL для операций с файлами
Set allow_url_include=Off
register_globals=Off
; отмена регистрации глобальных переменных
open_basedir=«c:\inetpub\» ;
ограничение на директорию, в которой работает PHP

Max_execution_time=30 ; ограничение
времени выполнения скриптов
max_input_time=60
memory_limit=16M ;
ограничение на размер используемой памяти
upload_max_filesize=2M
post_max_size=8M
max_input_nesting_levels=64
display_errors=Off
; отключение сообщений об ошибках
log_errors=On
error_log=«C:\error.log»
expose_php=Off
; скрыть присутствие PHP

Заключение

PHP на Windows - это не
просто интересно и удобно, главное, что это работает. А команда
IIS работает над тем, чтобы PHP
работал на Windows не хуже, чем на
Unix/Linux (конечно, стараются сделать лучше).
Поскольку это новая тема для Microsoft, то мы можем
сделать какие-то ошибки, можем чего-то не замечать и не понимать, поэтому нам
очень важно получать комментарии от вас - разработчиков и администраторов.
Пишите в комментариях ваши пожелания и проблемы, которые вы видите сейчас в
PHP на Windows, а мы будем
стараться проблемы решать, а пожелания реализовывать.

Теги: Добавить метки

А сегодня мы поговорим об установке PHP . Как и в случае с Apache здесь нет ничего сложного. Если вы первый раз занимаетестьустановкой и настройкой PHP на локальной машине, то вам будет полезно прочитать это руководство с картинками. Если вы уже матерый зубр в этих делах, то можете смело пропустить эту заметку.

Итак, если вы читаете этот пост, то либо вы первый раз устанавливаете PHP, либо у вас возникли вопросы/проблемы в процессе установки или настройки PHP. Я постараюсь как можно подробнее описать этот процесс.

Для начала нам нужен дистрибутив с самой свежей версией PHP. Его можно скачать с официального сайта – www.php.net (9.5 Mb).

Скачиваем дистрибутив на компьютер, выбирая зеркало, которое географически наиболее ближе к вам находиться

Извлекаем содержимое архива в папку C:/php5 . Опять же, если вы первый раз устанавливаете связку Apache -PHP- MySQL рекомендую устанавливать по указанным мной путям.

Итак, в C:/php5 у вас должно находиться следующее:

Установка PHP завершена, теперь займемся его настройкой.

Переименуйте файл php.ini-recommended в php.ini :

  • выбираем файл
  • нажимаем F2
  • удаляем -recommended
  • нажимаем Enter.

Теперь откроем файл в блокноте и займемся настройкой PHP . Файл содержит в себе довольно большое количество настроек PHP, но нам они сейчас не нужны. Мы займемся лишь базовой настройкой, которая позволит нам запустить PHP на локальной машине.

Немного о формате описания в файле настроек

Символ ‘;’ означает, что строки закоментированы (они не будут учитываться). Например:

; ignore_user_abort = On

Как вы могли заметить настройки поделены на группы, для удобства поиска по файлу. Например, настройки управления ограничением ресурсов:

;;;;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds (Максимальное время выполнения скрипта).
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) (Максимальное количество выделяемой для скрипта памяти).

Формат описания параметров и их значений:

имя_переменной = ее_значение

Настройка модулей PHP.

Найдите секцию Dynamic Extensions (динамические расширения). Там представлен довольно большой список модулей для PHP:

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll

;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll

;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll

;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll

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

Для того чтобы подключить модуль нужно удалить перед строкой символ ‘;’. Тем самым мы раскомментируем строку и модуль будет использоваться.

Давайте подключим расширение PHP для работы с графикой – php_gd2.dll (оно нам понадобиться в будущем).

Для того, чтобы PHP смог найти, где лежат расширения, укажем путь к ним. Добавьте следующую строку до или после подключения расширений. В итоге у вас должно получиться следующее:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; … or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.

extension_dir=”C:/php5/ext”

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

Сохраняем сделанные нами изменения. Чтобы сделанные нами настройки применились необходимо перезагрузить Apache .

Установка и настройка PHP завершена!

Как видите – ничего сложного. Если в процессе работы вам понадобятся другие расширения, просто раскомментируйте строку, с нужным вам расширением (аналогично с php_gd2.dll ) и перезагрузите Apache .

В следующем посте, я расскажу как заставить работать PHP и Apache в связке.