→ Как установить PHP: все подводные камни процесса. Установка Apache, PHP, MySQL Установка почтовой заглушки

Как установить PHP: все подводные камни процесса. Установка Apache, PHP, MySQL Установка почтовой заглушки

» Установка PHP под ОС Windows

Установка PHP под ОС Windows

PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцессор гипертекста») - язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров.

PHP создавался специально для ведения Web-разработок и может использоваться непосредственно в HTML-коде. Синтаксис языка берет начало из C, Java и Perl и является легким для изучения. Преимущественным назначением PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако, область применения PHP не ограничивается только этим.

В области программирования для Интернет PHP - один из популярнейших скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. В настоящее время PHP используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов используют PHP.

Краткая история PHP.

В 1994 году датский программист Расмус Лердорф написал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl - интерпретатора скриптов - перестало хватать, и Лердорф написал на языке C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter - «Личная Домашняя Страница / Интерпретатор форм». PHP/FI включал базовую функциональность сегодняшнего PHP. Новорожденный язык отличался от своего прародителя более простым и ограниченным синтаксисом.

В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C - PHP/FI 2.0. Её использовали около 1 % (приблизительно 50 тысяч) всех интернет-доменов мира.

PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году два израильских программиста Энди Гутманс и Зив Сураски переписали код с нуля: разработчики сочли PHP/FI 2.0 непригодным для разработки приложения электронной коммерции, над которым они работали для проекта Университета.

Одной из сильных сторон PHP 3.0 была возможность его расширения. Возможности расширения PHP 3.0 побуждали разработчиков поставлять новые модули расширения. Возможно именно в этом был секрет ошеломляющего успеха PHP 3.0.

Другой ключевой особенностью PHP 3.0 стала поддержка объектно-ориентированного синтаксиса и намного более мощный и цельный синтаксис языка.

Скромное название "Personal Home Page" уже не очень-то соответствовало реальности и язык был назван PHP: Hypertext Preprocessor (рекурсивное: P HP: H ypertext P reprocessor).

К концу 1998 года PHP использовался десятками тысяч пользователей. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета.

PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP.

Новый движок, названный Zend Engine (от имён создателей, Зива и Энди, также основателей Zend Technologies), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend (Zend Engine 2), что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java

Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка. На данный момент самыми стабильными и часто используемыми являются именно версии 5.xx

Шестая версия PHP находится в стадии разработки с октября 2006 года. В ней уже сделано множество нововведений и много внимания уделено поддержке Юникода.

Официальный сайт PHP: www.php.net . Там вы можете скачать последнюю версия PHP , справку... Кстати, справка по PHP очень удобная в работе и заменяет множество книжек и бумажных справочников.

Установка PHP под ОС Windows

Примечание: в этой статье мы рассматриваем установку PHP в ОС Windows XP. Установка под ОС Windows Vista аналогична. К моменту установки PHP у вас уже должен быть установлен и настроен веб-сервер Apache (см. статью "Установка web-сервера Apache").

1. Имеется возможность выбора из следующих вариантов: Windows Installer и Manual Installation (zip package). Первый подразумевает использование программы-инсталлятора, второй, соответственно, означает самостоятельную установку. Отличаются они и полнотой функциональных возможностей.

Загрузив инсталлятор, вы сможете установить с его помощью CGI-версию PHP, а также автоматически настроить такие серверы, как Microsoft IIS, Microsoft PWS и Xitami, для работы с данным пакетом. Использование такого способа совместно с Apache нецелесообразно. Автоматическая настройка Apache программой не поддерживается, так что конфигурировать сервер все равно придется вручную. Кроме того, у такого решения есть некоторые другие ограничения.

Воспользуемся самостоятельной ручной установке PHP с помощью zip package. Причем это не так уж сложно как может показаться с первого взгляда.

Итак, скачиваем со страницы http://www.php.net/downloads.php zip-архив для windows. В нашем примере это php-5.2.5-Win32.zip.

2. Распаковываем дистрибутив в папку по вашему выбору. Для простоты можно прямо в папку c:\php5 , но можно и в любую другую.Мы для этой цели выбираем папку C:\MyServers\usr\local\php5 .

3. Перейдите в папку с PHP . Далее надо найти файл php.ini-dist , который находится в данной папке и переименовать его в php.ini . Это файл с настройками.

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

3.1 Для того чтобы нашелся файл php.ini , необходимо либо
а) указать директиву PHPIniDir для Apache , либо
б) создать переменную окружения PHPRC
Панель управления - Система - Свойства системы - Дополнительно - Переменные среды

и указать в реестре Windows ключ HKEY_LOCAL_MACHINE\SOFTWARE\PHP\5\IniFilePath равный C:\MyServers\usr\local\php5.
Для этого можно использовать программу regedit или просто создать и запустить файл php.reg

Windows Registry Editor Version 5.00


"IniFilePath"="C:\\MyServers\\usr\\local\\php5"

3.2 Для того что бы система нашла необходимые библиотеки добавляем к системной переменной PATH пути: C:\MyServers\usr\local\php5\;C:\MyServers\usr\local\php5\ext\;

Панель управления - Система - Свойства системы - Дополнительно - Переменные среды - Системные переменные - Path (и кнопку изменить)...

Примечание: и для Windows XP и Windows Vista данные действия одинаковы. Но необходимы права администратора.

4. Если вы планируете использовать свой сервер для отладки скриптов, то советуем исправить error_reporting для отображения всех ошибок = E_ALL.
Т.е. error_reporting = E_ALL
Данная директива указывает, насколько подробным должен быть вывод предупреждений и сообщений об ошибках. Для отладки скриптов пусть выводятся все сообщения.

5. Найдите include_path (она спрятана в комментарии), уберите знак комментария и внесите изменения:
include_path = "C:\MyServers\usr\local\php5\PEAR"
PEAR - это набор разнообразных библиотек написанных на PHP . Некоторые из этих библиотек входят в дистрибутив.

6. Исправьте extension_dir с extension_dir = "./" на extension_dir = C:/MyServers/usr/local/php5/ext
Это одна из самых важных директив, без нее расширения PHP просто не подключатся.

7. Теперь подключим те расширения, которые потребуются нам для работы. Не подключайте все расширения подряд! Используйте только те, что действительно нужны. Найдите список extensions и уберите знаки комментариев для:
extension=php_gd2.dll
extension=php_mysql.dll

Это мы подключаем расширения для работы с изображениями и СУБД MySQL .

8. Сохраните файл php.ini. Запустите файл php.exe . Если перед вами возникает пустая консоль без сообщений об ошибках, значит, все в порядке.

9. Для веб-сервера Apache PHP может работать в двух вариантах: в виде модуля и в виде CGI-программы. Установить PHP в виде CGI-программы проще, но она будет запускаться каждый раз при обращении к скриптам. Когда же PHP работает в виде модуля, то его код является частью сервера и выполняется как единое целое. Такой подход обеспечивает лучшее быстродействие. Так же в этом случае доступны некоторые полезные функции сервера из PHP -программ (скриптов).

Рассмотрим установку PHP в виде модуля. Для этого нам необходимо вернуться и вспомнить материал из статьи про установку веб-сервера Apache . Данный этап несколько проще и сводится к простому добавлению к файлу httpd.conf нескольких новых строк. Перейдите в папку C:\MyServers\usr\local\Apache2.2\conf и найдите этот файл.

Добавьте в конец секции LoadModule строку:
LoadModule php5_module "C:/MyServers/usr/local/php5/php5apache2_2.dll"

Add this line inside the conditional brace

Добавьте в блок строку:
AddHandler application/x-httpd-php php
Эта директива связывает расширение файла php с уникальным идентификатором MIME- ТИПА. Т.е. файлы с расширением .php будут обрабатыватся PHP .

Подправим так называемые файлы индекса (для того чтобы главная страница по умолчанию была - index.php, а не index.htm):

DirectoryIndex index.php index.htm index.html

И добавим опцию PHPIniDir C:\MyServers\usr\local\php5 для того чтобы загружался наш php.ini, а не стандартные настройки. Если строка PHPIniDir "C:\MyServers\usr\local\php5" прописана в httpd.conf - то php.ini грузится с указанного пути.

Хотя, все можно сделать проще и быстрее.

Подправим файлы индекса (см. выше), но возможно вы это уже сделали при настройке сервера.

Создадим файл php5_mod.conf в директории C:\WebServers\usr\local\Apache2\conf\ (воспользуйтесь стандартной программой Блокнот)

Подключаем данный файл к httpd.conf (вносим эту строку в httpd.conf в самый конец):
Include conf/php5_mod.conf

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

10. Протестируем работу PHP . Убедимся что мы все сделали правильно и наши скрипты работают. В папке C:\MyServers\home\localhost\www создайте файл test.php.

- это стандартная функция PHP . Использование phpinfo() позволяет получить симпатичную страничку, содержащую подробные сведения как о самом PHP, так и о системе в целом, а также о вашем сервере Apache. Рекомендую скачать с php.net справку php_manual_ru.chm и использовать ее для знакомства с PHP .

Запустите браузер и укажите адрес: http://localhost/test.php . Если вы увидите эту страницу, значит все хорошо. Еще раз проверьте откуда загружается файл php.ini (должна быть строка Loaded Configuration File C:\MyServers\usr\local\php5\php.ini)

Теперь наш сервер Apache получил возможность работать с языками web-программирования, которые являются сегодня одними из самых распространенных и популярных.

С этого момента вы можете создавать собственные скрипты с использованием PHP. Дополнительно можно еще установить СУБД (например MySQL ), с которой могли бы взаимодействовать ваши скрипты при решении некоторых задач. Этот шаг будет будет рассмотрен в позже.

P.S . Для создание скриптов можно использовать и обычный блокнот Windows , но это не очень удобно. Я рекомендую использовать редактор PHP Expert Editor . PHP Expert Editor - удобный в использовании 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 на . В целом процесс настройки представляет собой корректировку данных в системном файле php.ini.

Основные понятия

Рhp.ini – файловый документ, в котором находятся директивы (конфигурация и настройки), которые определяют поведение PHP (в частности конкретного сайта).

Интерпретатор – программа, которая построчно читает и выполняет программный код. Сначала ищет настройки в рhp.ini. А потом переходит в саму директорию, указанную в текстовой переменой PHP RС.

После ручного редактирования любого php-файла важно не забыть оставить его название неизменным, иначе интерпретатор не сможет его найти!

Данная информация сугубо обобщённая, на практике должно быть понятнее.

Выбираем один из вариантов

Вариант №1 для тех, кто использует в качестве административной панели сРаnel.

Ищите в меню раздел «Конфигурация», в котором опубликованы параметры РНР для хостинга.

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

Если ваш хостинг позволяет осуществлять наладку php, тогда вы – счастливчик. Если нет, тогда переходим к варианту №2 – обратиться за помощью в службу технической поддержки.

Пошаговая инструкция или переопределяем рhр.ini на свой лад

Находим оригинальный файл настроек.htaccess и прописываем в него следующие данные:

chmod 755 php5.fcgi

Ну вот и все, пользуемся.

К данной пошаговой инструкции имеются некоторые уточнения. При создании файла php5.fcgi следует применять текущие настройки unix (разрыв строки), то есть прописывать в файле информацию с тегом /n. И в случае возникновения ошибки 500 следует проверить файл php-error.log, в котором скорее всего и найдете проблему.

Важными являются еще пара настроек:

disable_functions – позволяет блокировать вызов нескольких функций в рамках безопасного режима.

Примечание ! Список таких функций пользователь указывает самостоятельно через запятую;

memory_limit – позволяет осуществить настройку параметров максимального объема памяти, нужного для выполнения скриптов.

Ну и напоследок добавлю: для того чтобы посмотреть настройки и узнать версию PHP, нужно создать php-файл (название не имеет значения), в котором следует прописать следующий код:

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

C уважением! Абдуллин Руслан

Сайт разработчика: http://www.php.net/
Дистрибутив (VC9 x86 Thread Safe, Zip архив): http://windows.php.net/download/
Прямая ссылка: 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

Дистрибутив Apache2.2.2 с в виде инсталлятора с именем apache_2.2.2-win32-x86-no_ssl.msi. Вы сможете найти его по адресу www.sai.msu.su/apache/dist/httpd/binaries/win32/

Запустите загруженный инсталлятор на выполнение. Когда установщик спросит Вас о том, куда установить Apache укажите ему директорию c:/Apache2.2

Примечание

Все дальнейшие инструкции будут основываться на предположении, что Apache устанавливается именно в каталог c:/Apache2.2. Если Вы устанавливаете Apache в другой каталог, то Вы должны соответствующим образом адаптировать инструкции к своей ситуации.

Установка Apache из инсталлятора достаточно прозрачна и не вызывает особых трудностей, вследствие чего не рационально приводить ее полное описание в данной статье. Приведем лишь одно диалоговое окно, которые пользователю требуется заполнить в процессе установки. Это окно выбора имени сервера. В поля «Network Domain» и «ServerName» запишите имя сервера, на работу с которым Apache будет настроен по умолчанию.


Примечание

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

Если процесс установки прошел корректно, то по ее завершению Apache2.2 у Вас уже должен быть запущен в качестве службы. Чтобы проверить так ли это откройте список служб Windows («Пуск» | «Панель управления» | «Администрирование» | «Службы» ) и найди в нем строку Apache2.2. (или Apache2). Состояние службы: работает или нет отображается в третьем столбце.

Если Вы не можете найти в списке служб строчку Apache2.2, то вероятно в процессе установки произошел сбой и Apache не установился в качестве службы. В этом случае, Вам необходимо установить Apache, в качестве службы самостоятельно. Для выполнения этого понадобится программа с консолью, например FAR, WindowsCommander, TotalCommander и т.п.

Откройте программу с консолью, перейдите в каталог c:/Apache2.2/bin и выполните команду:

C:/Apache2.2/bin/httpd.exe -k install

В ответ Вам должно быть выдано сообщение «The Apache2 service is successfully installed» . Внешний вид консольного окна приведен на рисунке.


Первый запуск

Управление Apache-ем (пуск, остановка, перезапуск) осуществляется либо через графический интерфейс управления службами Windows, либо в консоли выполнением файла httpd.exe с определенными ключами.

Управление службами Windows осуществляется через контекстное меню, открываемое по нажатию правой кнопки мыши на имени службы. Если Apache еще не запущен, то выполните команду «Пуск» из контекстного меню.


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

Команды управления Apache через консоль

Httpd.exe -k start (Запуск службы)
httpd.exe -k stop (Остановка службы)
httpd.exe -k restart (Перезапуск)


По умолчанию, корневой директорией сервера установлена директория c:/Apache2.2/htdocs . Именно в ней расположен файл index.html отображаемый по имени localhost. За определение корневой директории сайта отвечает директива DocumentRoot в файле c:/Apache2.2/conf/httpd.conf .

DocumentRoot "C:/Apache2.2/htdocs"

Вы можете изменить ее и сделать другой каталог корневой директорией сервера.

Однако, перед тем как делать это следует провести минимальную настройку конфигурационного файла httpd.conf. По умолчанию, Apache настроен так, чтобы запретить любой доступ к директориям сайтов и разрешения должны быть установлены явно для каждой директории, как это сделано для директории C:/Apache2.2/htdocs. Если же Вы перенесете корневую директорию сервера в другой каталог, не настроив соответствующие разрешения, то в ответ Вам будет выдана ошибка 403 Forbidden и страница, изображенная на рисунке.


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

Найдите в файле С:/Apache2.2/conf/httpd.conf строки:


Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all

Обратите внимание на строку Deny from all .

Она запрещает всякий доступ к директориям, в том числе и к директориям виртуальных хостов. При попытке обращения к ним Apache ответит ошибкой 403 Forbidden. Противовесом ей является директива «Allow from all». Установка этой директивы отменяет действие директивы «Deny from all».

Можно устанавливать директиву Allow from all для каждой директории и для каждого виртуального хоста, но можно поступить проще и убрать (или закомментировать) директиву «Deny from all» из контейнера.


Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
Satisfy all

После выполнения этих нехитрых действий перезапустите Apache. Как это сделать описывается выше.

Установка PHP

Cовременный web-сервер уже немыслим без поддержки динамически-генерируемых страниц. В России лидером среди технологий создания динамических страниц и web-приложений является технология PHP. Ниже будет рассмотрен процесс подключения PHP на примере версии 5.3.5. Если у Вас уже установлена эта версия PHP, то можете сразу переходить к разделу «Подключение PHP к Apache2.2.2».

Дистрибутив с PHP Вы можете загрузить с нашего сайта по адресу . По ссылке можно также ознакомиться с правилами выбора дистрибутива и почему мы взяли на себя смелось предложить скачать дистрибутив с нашего сайта, а не с официального php.net. При загрузке дистрибутива, представленного по ссылке, предполагается, что вы будете устанавливать PHP в качестве модуля.

Распакуйте zip-архив с php в директорию c:/php-5.3.5. На этом установка PHP завершена. Дальнейшие действия будут касаться настройки связки PHP+Apache и конфигурирования самого PHP.

Примечание

Все дальнейшие инструкции будут основываться на предположении, что Вы используете php-5.3.5, который установлен в каталог c:/php-5.3.5. Если у Вас другая версия PHP или Вы устанавливаете php в другой каталог, то Вы должны соответствующим образом адаптировать приводимые инструкции к своей ситуации.

Подключение PHP к Apache2.2.2

Проблемы с подключением PHP к Apache2.2

Если Вы попытаетесь подключить штатный модуль php5apache2.dll к Apache2.2.2, то Вас ожидает неудача. Apache не захочет запускаться, выдавая сообщение, изображенное на рисунке.


А в журналах системы и приложений появятся следующие сообщения

The Apache service named reported the following error:
>>> httpd.exe: Syntax error on line 115 of C:/Apache2.2/conf/httpd.conf:
Cannot load C:/php-5.3.5/php5apache2.dll into server: \xcd\xe5 \xed\xe0\xe9
\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.

Библиотека php5apache2.dll предназначена для Apache 2.0.X, для Apache 2.2.X необходимо поключать библиотеку php5apache2_2.dll (она находится рядом с php5apache2.dll в дистрибутиве).

Конфигурирование httpd.conf для подключения PHP

Для подключения php, в качестве модуля, необходимо добавить всего 3 инструкции в файл httpd.conf

Инструкции для подключения PHP в httpd.conf

LoadModule php5_module c:/php-5.3.5/php5apache2_2.dll
AddType application/x-httpd-php phtml php
PHPIniDir "c:/php-5.3.5/"

Эти строки следует поместить в примерно в середину файла httpd.conf, например, сразу после директив LoadModule. Конкретное расположение этих директив не имеет принципиального значения, однако нельзя помещать их в начале, а также и в самом конце файла httpd.conf.

  • Первая строка загружает модуль PHP, реализованный в библиотеке php5apache2_2.dll
  • Вторая строка устанавливает соответствие между файлами с расширением php и mime-типом application/x-httpd-php, который обрабатывается модулем PHP.
  • Третья строка позволяет явно указать расположением конфигурационного файла php.ini.

Примечание

Директивы PHPIniDir сильно не хватало в Apache1.3, так как часто возникала путаница в настройке php при наличии нескольких копий файла php.ini, либо при размещении его в неподходящей директории.

Следующим шагом необходимо создать конфигурационный файл для PHP. В httpd.conf в директиве PHPIniDir местом расположения конфигурационного файла php была указана директория c:/php-5.3.5. Сам конфигурационный файл должен называться php.ini

В директории c:/php-5.3.5 находятся несколько шаблонов конфигурационных файлов. В качестве основы возьмем файл c:/php-5.3.5/php.ini-recommended и переименуем его в php.ini . Таким образом, конфигурационный файл PHP (php.ini) будет располагаться в директории c:/php-5.3.5 и именно в него должны вносится все изменения конфигурации PHP.

После внесения изменений в httpd.conf и создания файла php.ini перезагрузите Apache.

Создайте тестовый php-скрипт под именем phpinfo.php, выполняющий одноименную функцию и сохраните его в директорию c:/Apache2.2/htdocs .

Скрипт phpinfo.php

echo phpinfo ();

// Обратите внимание, что использован полный синтаксис записи
// php-скрипта. ?>

Примечание

В тестовом скрипте phpinfo.php для определения PHP-скрипта использован полный синтаксис. В дистрибутивах PHP последних версий синтаксис короткой записи по умолчанию отключен. За включение режима короткой записи отвечает директива short_open_tag в файле php.ini. Ее нужно установить в значение On .

Теперь обратитесь к данному скрипту через браузер введя в адресной строке http://localhost/phpinfo.php . В ответ Вам должны быть отображены широко известные фиолетовые страницы, отображающие настройки php и его расширений.


Если отчет функции phpinfo() в виде "фиолетовых таблиц" отобразилися - значит php успешно выполняется Apache-ем.

Возможные ошибки

Apache загружается, но вместо "фиолетовых таблиц" открывается пустая страница.

Проверьте: тестовый скрипт записан в через полный синтаксис или через сокращенный? Т.е.:

Должно быть записано
echo phpinfo ();
?>
вместо
echo phpinfo ();
?>

 

 

Это интересно: