Установка PHP. Установка и настройка PHP Переустановка php

» Установка 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 , как оказалось, не очень сложное занятие. Ознакомиться с настройками PHP 5.3 можно в файле «php.ini «, находящемуся в директории WINDOWS (путь к конфигурационному файлу выглядит примерно так: «%WINDOWS%\php.ini». К нему, безусловно, предполагается backup, находящийся в директории «PHP\BACKUP». Файл настроек PHP можно по-разному редактировать, удалять из него комментарии и пояснения (кстати, такие же операции можно проводить и с файлом «httpd.conf». Синтаксис файла php.ini: «директива = значение». Выглядит это примерно вот так:

Директива = значение; пояснение директива = ;директива = значение;директива =

и тому подобное.

В конфигурационном файле PHP есть специализированный знак комментария — «;». Все, что находится после этого знака, не воспринимается.

Общие настройки

Для осуществления настроек PHP Apache нам необходимо провести правку конфигурационного файла php.ini.
Директива, дающая право заключать код php в короткие тэги:

Short_open_tag = On

Включив эту директиву, вы сможете заключать код в такие теги «», вместо таких ««.

Для облегчения отладок сценария можно включить вывод ошибок непосредственно в ваш браузер:

Display_errors = On

Показывать все ошибки, кроме замечаний:

Error_reporting = E_ALL & ~E_NOTICE

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

Log_errors = Off

Порядок, в котором PHP будет регистрировать перменные (E — встроенные переменные, G — GET переменные, P — POST переменные, C — Cookies, S — сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными, поэтому необходимо задать следующий порядок:

Variables_order = "EGPCS"

Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, «$переменная»), так как обращаться к этим переменным можно было только через суперглобальные массивы. Включать рекомендуется только в специфичных случаях (например, «$_POST[‘переменная’]):

Register_globals = On

Отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie:

Magic_quotes_gpc = Off

Настройки загрузки файлов

Директива, разрешающая загрузку файлов:

File_uploads = On

Upload_tmp_dir = C:\Temp\uploadtemp

Максимальный размер файла, загружаемого вами:

Upload_max_filesize = 3M

Динамически загружаемые расширения

Путь к папке с расширениями :

Extension_dir = extensions

или абсолютный:

Extension_dir = C:\Server\PHP\extensions

Подключение динамических библиотек. Рекомендуется включать только нужные вам библиотеки. Для того, чтобы подключить ту или иную библиотеку, можно просто раскомментировать строчку. Например, для подключения графической библиотеки GD, раскомментируйте следующую строку:

Extension=php_gd2.dll

Настройка SMTP-сервера

Используемый SMTP-сервер:

SMTP = localhost

Smtp_port = 25

Адрес, который будет указываться в поле «From» в :

Sendmail_from = [email protected]

Настройка MySQL

Все мы работаем с разными версиями PHP, поэтому и настраивать их надо по-разному. В более поздних версиях PHP есть поддержка встроенной в ядро БД MySQL, а в более ранних — нету. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки «php_mysql.dll», то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить:

Extension=php_mysql.dll

Указание порта:

Mysql.default_port = 3306

и хоста MySQL по умолчанию

Mysql.default_host = localhost

Настройка сессий

Хранить данные сессий в файлах:

Session.save_handler = files

Папка для хранения файлов сессий (не забудте создать этот каталог!):

Session.save_path = C:/Temp/session

Использовать cookie в сессиях:

Session.use_cookies = 1

Исользовать в качестве имени сессии и сессионной cookie ID сессии:

Session.name = PHPSESSID

Запрет на инициализацию сессии при начале соединения:

Session.auto_start = 0

Время жизни сессионных cookie («0» — до закрытия окна браузера):

Session.cookie_lifetime = 0

Session.use_trans_sid = 1

Настройка PHP завершена. Вам необходимо перезапустить Apache для того, чтобы изменения вступили в силу.
Были использованы материалы с тематического сайта codenet.ru.


Прямая ссылка: 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.

«

В этой статье мы рассмотрим установку и настройку Web-сервера Apache , PHP 5 и СУБД MySQL для использования их на локальной машине под операционной системой Windows (2000 и XP). Использование локальных серверов может понадобится по многим причинам – вам необходимо изучить PHP или MySQL, а тестирование своих Web-приложений на хостинге либо дорого обходится, либо такой возможности вообще нет. В этом случае вам понадобится связка Apache+PHP+MySQL на локальной машине.

Для начала необходимо раздобыть дистрибутивы серверов Apache и MySQL, а так же архив PHP. Мы будем устанавливать и настраивать Apache 2, MySQL 4 и PHP 5.

Так же можете скачать с нашего сайта файлы php.ini для настройки PHP и httpd.conf для Apache. Однако, делайте это только в крайнем случае - если у Вас ничего не получилось с "родными" файлами, которые появилиcь при установке приложений. Но в любом случае, их необходимо будет настроить под конкретную машину. Скачать php.ini и httpd.conf

Скачать Apache можно с зеркал приведённых на официальном сайте http://www.apache.org/dyn/closer.cgi . При поиске следует помнить, что Apache так же может называться httpd, по имени его демона в UNIX. На зеркалах обычно много различных файлов, например:
httpd-2.0.49-win32-src.zip - это архив с исходными кодами (src) для Windows (win32) Web-сервера Apache (httpd) версии 2.0.49.
httpd-2.0.49.tar.gz - тоже самое, но для Linux, в котором программы принято распространять в исходных кодах.
apache_2.0.50-win32-x86-no_ssl.exe - а вот это, откомпилированный под архитектуру (x86) для Windows (win32) без поддержки SSL(no_ssl) сервер Apache (apache) версии 2.0.50 - вот он и нужен.

Замечание

Бинарные коды дистрибутивов Apache распространяются в нескольких вариантах, как с расширением *.exe, так и *.msi и имеют название вида httpd_версия_win32_*_.msi.

Чтобы вам не мучатся, вот ресурс где можно его взять: http://apache.rinet.ru/dist/httpd/binaries/win32/
Вторая и третья цифра в версии могут отличаться от приведённых здесь – следует выбирать самую последнюю версию, так как в ней устранены ошибки обнаруженные в предыдущих версиях.

PHP 5 можно загрузить из раздела нашего сайта.

Дистрибутив MySQL можно загрузить со страницы нашего сайта.

Полное справочное руководство на русском языке можно найти по адресу .

После того как мы запаслись всеми необходимыми дистрибутивами можно приступать к установке. Порядок установки Apache, PHP и MySQL не имеет значения. Начнём с Web-сервера Apache.

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

Запустите установщик Web-сервера Apache. Результатом будет окно с лицензионным соглашением, после принятия которого, следует перейти к следующему окну с краткой информацией о нововведениях во второй версии Apache. Следующее окно, показанное на рисунке, позволяет ввести информацию о сервере: доменное имя сервера , имя сервера и адрес электронной почты администратора . Если установка происходит на локальную машину, то в поля для доменного имени и имени сервера следует ввести localhost (см. рисунок.). В нижней части окна предлагается выбрать номер порта по которому сервер будет принимать запросы (80 или 8080).


localhost - это имя для использования сервера на локальной машине, которое связано с IP-адресом 127.0.0.1, который зарезервирован для локального использования.

После этого будет предложен способ установки: стандартный (Typical ) или выборочный (Custom ), позволяющий выбрать компоненты сервера вручную. Следующее окно позволяет выбрать каталог установки сервера, по умолчанию это C:Program FilesApache Group , но мы рекомендуем выбрать другой каталог, например, С:www. После этого мастер установки сообщит о готовности к процессу установки и после нажатия кнопки Install , будет произведено копирование файлов сервера. Если установка прошла успешно, Windows автоматически запустит Apache.

После успешной инсталляции при наборе в окне браузера http://localhost/ или http://127.0.0.1/ - должна загрузится страница сервера.

Теперь необходимо научиться управлять Apache, а именно научится запускать, останавливать и перезапускать сервер. Существует много способов осуществить эти операции: при помощи утилиты ApacheMonitor, используя консоль управления сервисов Windows, используя пункты меню Пуск, из командной строки… Мы рассмотрим консоль управления сервисов Windows, позволяющего настроить Apache для автоматического старта при запуске системы. Для запуска консоли управления выполните команду
Пуск->Настройка->Панель управления->Администрирование->Службы .
В появившемся окне консоли, на приведённом ниже рисунке, следует выбрать сервис Apache2. Контекстное меню, открывающееся по нажатию на правой кнопке, позволяет осуществлять запуск, остановку и перезапуск сервиса.


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

Конфигурирование Apache

Web-сервер - сложный программный продукт работающий на разных платформах и в разных операционных системах по всему миру. Поэтому для корректной работы на установленной системе его необходимо настроить (сконфигурировать).
По умолчанию настройки Apache расположены в файле httpd.conf в директории conf. Далее будут описаны основные директивы файла httpd.conf и их общеупотребительные значения.

Пути к файлам

В конфигурационных файлах Apache и PHP Вам часто придется указывать пути к различным директориям и папкам. В операционных системах UNIX и Windows при-меняются различные разделители каталогов. В UNIX используется прямая косая черта "/", например /usr/bin/perl, в в Windows обратная, например, c:Apachein. Вообще, в некоторых директивах Apache и PHP работают оба вида разделителей каталогов: прямой(/) и обратный(), но так как и Apache и PHP изначально разрабаты-вались под UNIX, то применяя их "родной" формат, Вы сможете избежать ряда проблем. Поэтому пути в настроечных файлах (httpd.conf и php.ini) рекомендуется писать через слеш в формате UNIX - "/". Например:

ScriptAlias "/php_dir/" "c:/php/"

Директивы файла httpd.conf

Port

Port 80

Устанавливает порт TCP, который используется Apache для установки соединения. По умолчанию используется 80 порт.

Примечание

Единственная причина использования нестандартного порта - это отсутствие прав на использование стандартного порта. При использовании нестандартного порта, например, 8080 номер порта следует указывать в адресе, например: http://localhost:8080/.

ServerAdmin

ServerAdmin [email protected]

Содержит e-mail-адрес администратора web-сервера, который будет отображаться при ошибках работы сервера.

ServerName

ServerName myserver

Содержит имя компьютера для сервера.

ServerRoot

ServerRoot "C:/Apache2"

Указывает на каталог, содержащий файлы WEB-сервера Apache.

Примечание

Не путайте директиву ServerRoot с директивой DocumentRoot, которая указывает каталог для файлов WEB-сайта.

DocumentRoot

DocumentRoot "C:/Apache2/htdocs"

Определяет каталог, в котором расположены файлы WEB-сайта.

Контейнер

Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги внутри DocumentRoot.


Options FollowSymLinks Includes Indexes
AllowOverride All

  • Директива AllowOverride установленная в значение All разрешает переопределять значения главного конфигурационного файла httpd.conf в файлах.htaccess.
  • Директива Options FollowSymLinks разрешает Apache следовать символическим ссылкам.
  • Директива Options Includes разрешает выполнение директив SSI (Server Side Includes) в коде страниц web-сайта.
  • Директива Options Indexes указывает, что нужно возвращать содержимое каталога, если отсутствует индексный файл.

DirectoryIndex

DirectoryIndex index.html index.phtml index.php

Содержит список индексных файлов, которые следует отображать при обращении к директории без указания имени файла (например, http://localhost/test/).

AddDefaultCharset

AddDefaultCharset windows-1251

Устанавливает кодировку по умолчанию, если кодировка не установлена в заголовке HTML-документа. Также Вам может потребоваться указывать значение кодировки KOI8-R.

Создание виртуальных хостов

На одном WEB-сервере Apache можно установить несколько WEB-сайтов. Эта функция сервера называется виртуальным хостингом. Ниже рассмотрим создание виртуальных узлов на основе имен. Виртуальные узлы обычно расположены в конце файла httpd.conf.

Сначала требуется указать какой IP-адрес используется для виртуальных хостов.



# Директивы виртуального хоста

Файл httpd.conf. Контейнер


ServerAdmin webmaster@may_domain.ru
DocumentRoot c:/www/mysite
ServerName www.mysite.ru
ServerAlias www.site.ru www.host2.ru
ErrorLog logs/mysite-error.log
CustomLog logs/mysite-access.log common

Рассмотрим директивы виртуального узла:

  • DocumentRoot указывает каталог, где расположены файлы (странички) данного виртуального узла (WEB-сайта)
  • ServerName указывает имя виртуального узла, по которому к нему можно обратиться. В данном случае, по адресу http://www.mysite.ru/.
  • ServerAlias содержит псевдонимы имен виртуального узла. В данном случае к виртуальному узлу можно также обратиться, используя имена: http://www.site.ru/ и http://www.host2.ru/.
  • ErrorLog и CustomLog указывает имена логов сервера для этого виртуального хоста.

Контейнеры обычно располагают один за другим в конце файла httpd.conf.

Файл httpd.conf. Настройка виртуальных хостов

NameVirtualHost 127.0.0.1:80

# Директивы виртуального хоста 1


# Директивы виртуального хоста 2


# Директивы виртуального хоста 3

Примечание

Для применения изменений, вносимых в файл httpd.conf, Apache следует перезагрузить.

Для того, чтобы обращаться к виртуальным узлам по именам их следует прописать в базы данных DNS-сервера. Если Вы используете Apache для тестирования файлов на локальной машине, то имена ваших виртуальных узлов следует прописать в файле hosts. Для Windows 2000 и XP он расположен в каталоге C:WindowSystem32Driversets. Файл hosts содержит записи вида:

Формат записей файла hosts

127.0.0.1 www.mysite.ru
127.0.0.1 www.site.ru
127.0.0.1 www.host2.ru

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

Для установки PHP следует создать каталог c:/php и разместить в нём файлы из zip-архива дистрибутива. После этого следует переименовать конфигурационный файл php.ini-dist в php.ini и скопировать его в директорию Windows.

Установка PHP в качестве модуля

Установка PHP в качестве модуля немного повышает быстродействие, так как модуль PHP загружается один раз при запуске Web-сервера

Замечание

При установке PHP в качестве модуля настройки из php.ini читаются один раз при запуске Web-сервера. Поэтому при внесении изменений в php.ini необходимо перегрузить Apache для того, чтобы внесенные изменения вступили в силу.

Для установки PHP откройте файл главный настроечный файл Apache httpd.conf на редактирование и удалите символы комментариев со следующих строк, при необходимости изменив их:

Файл httpd.conf. Подключение PHP как модуль Apache


LoadModule php5_module c:/php/php5apache2.dll

Примечание

Установка PHP, как CGI-приложения

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

Примечание

При установке PHP, как CGI перестанут работать некоторые заголовки, например, Вы не сможете организовать авторизацию пользователей средствами PHP. Авторизации можно будет реализовать только средствами самого Apache с помощью файлов.htaccess.

Для установки PHP откройте главный настроечный файл httpd.conf на редактирование, найдите в нем закомментированные строки подключения PHP и измените их следующим образом:

Файл httpd.conf. Подключение PHP как CGI

AddType application/x-httpd-php phtml php

Options ExecCGI

ScriptAlias "/php_dir/" "c:/php/"
Action application/x-httpd-php "/php_dir/php-cgi.exe"

Примечание

Вместо директории c:/php подставьте Вашу директорию с установленным PHP.

Конфигурирование PHP (файл php.ini)

Так как на локальной машине вы, скорее всего, будете заняты тестированием Ваших Web-приложений, то необходимо должным образом настроить конфигурационный файл php.ini. Найдите директиву error_reporting и установите для неё следующее значение:

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

Display_errors = On

Если данная директива отключена (Off), то сообщения об ошибках не будут выводится в окно браузера и в случае возникновения в коде ошибки вы будете гадать перед девственно белым окном - что бы это означало.
Так же необходимо проследить, чтобы директива variables_order имела следующее значение:

Variables_order = "EGPCS"

Буквы здесь означают следующее:
E - переменными среды
G - переменными передаваемыми по методу GET (G)
P - переменными передаваемыми по методу POST (P)
C - Cookies
S - сессии
Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными.

Следующая директива, которая может потребовать настройки – это register_globals . Если данная директива включена

Register_globals = On

то переменные передаваемые метором GET, POST, через cookies и сессии можно использовать в PHP-скрипте, обращаясь к ним просто как обычным переменным $someone.
Если данная директива отключена

Register_globals = Off

то к таким переменным можно будет обращаться только при помощи суперглобальных массивов ($_POST, $_GET и т.п.).
Директива register_long_arrays позволяет использовать суперглобальные массивы в старом формате ("длинном" - $HTTP_GET_VARS, $HTTP_POST_VARS и т.д.)

Register_long_arrays = On

Теперь необходимо настроить индексный файл. Если в окне браузера набрать строку http://localhost/, а не http://localhost/index.html. Сервер всё равно предоставит браузеру index.html, так как этот файл является индексным и ищется в директории первую очередь, если не указан конкретный файл. Теперь необходимо настроить http.conf, таким образом, чтобы Web-сервер Apache так же реагировал на файлы index.php. Для этого найдте в http.conf директиву DirectoryIndex и исправьте её следующим образом:

DirectoryIndex index.html index.html.var index.php

После этого необходимо перегрузить сервер Apache, а в корневой директории виртуального хоста ("C:/www/scripts") создать пробный файл PHP (index.php):

phpinfo ();
?>

В случае успешной настройки, обращение по адресу http://localhost/index.php отобразит фиолетовую таблицу с текущими настройками PHP, которая выдаётся функцией phpinfo().
Таким образом, у нас настроена связка Apache и PHP и можно переходить к настройке MySQL. Распакуйте дистрибутив MySQL во временную директорию и запустите установщик. Контролировать работу сервера MySQL можно точно так же как и Apache, используя консоль управления сервисов Windows.

Подключение MySQL

Подробная методика подключения к PHP расширения MySQL описана в статье по ссылке: .

Если сервер MySQL уже установлен на Вашей машине, то следующим шагом будет настройка PHP для работы с базами данных MySQL.

Откройте на редактирование файл php.ini из каталога Windows. Для подключения библиотеки расширения MySQL Вам нужно убрать символ комментария;(точка с запятой) из строки:

Extension=php_mysql.dll

Также проверьте значение директивы extension_dir

Extension_dir ="c:/php-5.0/ext"

Она должна указывать на каталог, где хранятся расширения PHP. Разделители каталогов рекомендуется писать в формате UNIX (/) - обратный слеш. Однако, если ничего не получается, просто откатите назад значение директивы extension_dir, а библиотеку php_mysql.dll скопируйте в корень C:/php-5.0/ - в большинстве случаев это должно помочь.

Если PHP Вас подключен как модуль, то Вам также необходимо скопировать библиотеку libmysql.dll из каталога с установленным PHP в системный каталог C:/Windows/System32. Чтобы внесенные изменения вступили в силу - перезагрузите Apache.

Для проверки работы MySQL перезапустите сервер Apache и создайте проверочный скрипт со следующим кодом:

$dblocation = "127.0.0.1" ;
$dbname = "test" ;
$dbuser = "root" ;
$dbpasswd = "" ;

$dbcnx = @ mysql_connect ($dblocation , $dbuser , $dbpasswd );
if (! $dbcnx )
{
echo "

К сожалению, не доступен сервер mySQL

" ;
exit();
}
if (!@
mysql_select_db ($dbname , $dbcnx ))
{
echo "

К сожалению, не доступна база данных

"
;
exit();
}
$ver = mysql_query ("SELECT VERSION()" );
if(! $ver )
{
echo "

Ошибка в запросе

"
;
exit();
}
echo
mysql_result ($ver , 0 );
?>

В случае успешной интеграции MySQL в связку Apache и PHP, обращение к проверочному скрипту выведет в окно браузера версию сервера MySQL.

В новых версиях MySQL (начиная с 4.1.0) изменился порядок работы с национальными кодировками, поэтому старый код может вызывать появление в таблице базы данных знаков вопроса "????????" вместо русского текста. Для того, чтобы этого не возникало в начало PHP-скрипта, после установки соединения с базой данных, следует поместить следующие строки:

mysql_query ("set character_set_client="cp1251"" );
mysql_query ("set character_set_results="cp1251"" );
mysql_query ("set collation_connection="cp1251_general_ci"" );
?>

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

На последок вам возможно понадобится настроить некоторые расширения PHP, они настраиваются точно так же как и MySQL.

Так для того, чтобы подключить графическую библиотеку GDLib в php.ini необходимо раскомментировать строку:

Extension=php_gd2.dll

Проверьте после этого наличие данной библиотеки в папке c:phpext. После внесения изменений в php.ini перезапустите сервер. Что бы быстро проверить: подключилась ли библиотека - выполните функцию phpinfo(). Если все в порядке, то в таблице, которая отображается функций phpinfo(), должен появится раздел "gd

При использовании устаревшего имени php.exe, использовавшегося в более ранних версиях вместо php-cgi.exe также возможно появлении ошибки:

403 Forbidden You don"t have permission to access /__php_dir__/php.exe/test.php on this server

HTML-файлы выполняются, а PHP-скрипты нет

При ненастроенном подключении PHP при обращении к файлам с расширением php, например: http:/localohost/index.php открывается окно с запрос на загрузку такого файла. Это говорит о том, что не настроена обработка файлов с расширением php. Проверьте в файле httpd.conf существование следующей строки:

AddType application/x-httpd-php phtml php

Notice: Undefined variable...

На новом, только что установленном, PHP можно часто видеть сообщения вида:

Notice: Undefined variable: msg in C:/Main/addrec.php on line 7

Error_reporting = E_ALL & ~E_NOTICE

Не подключается MySQL

Иногда возникают проблемы с установкой MySQL. Следует проконтролировать запускается ли MySQL в качестве сервиса каждый раз при старте системы. Для этого откройте консоль сервисов:

Пуск | Настройка | Панель управления | Администрирование | Службы

найдите там MySQL - запустите. Чтобы сервер стартовал при каждой загрузке системы нажмите правую кнопку мыши на сервисе и выберите "Свойства" - в открывшемся выпадающем списке "Тип запуска" выберите пункт "Авто".

Если при запуске Apache и при обращении ко скриптам выдается сообщение о невозможности загрузки библиотеки php_mysql.dll.

PHP startup: Unable to load dynamic library c:/php/ext/php_mysql.dll
- не найден указанный модуль

То еще раз сверьтесь с инструкциями из раздела, где описывается подключение к PHP библиотеки для работы с MySQL. Используете ли Вы "правильную" версию файла php_mysql.dll (именно для той версии PHP, которая установлена в системе)?
Версии файла php_mysql.dll различаются для разных версий PHP, хотя и имеют одно и тоже название.

  • Использование разделителей каталогов формате Windows (обратный слеш): c:apache/bin. Для надежной работы следует использовать разделители в формате UNIX (прямой слеш), например: c:/apache/bin.
  • Существование нескольких настроечных файлов php.ini на машине, либо отсутствие такого файла. Нужный файл php.ini должен лежать в директории Windows. Проведите поиск по дискам компьютера, найдите все лишние версии файлов и удалите их.
  • Любые возникающие по установке связки Apache+PHP+MySQL вопросы вы можете задать на нашем форуме посвященном установке и настройке Apache, PHP и библиотек расширений .

    В htmlAcademy и я работаю на нем наставником. Студентам в рамках интенсива предстоит поднять рабочее окружение и это заметка нацелена упростить эту нелегкую для новичка задачу. Есть разные способы поднятия полноценного LAMP стека, но мы пойдем классическим путем. Настроим все компоненты по отдельности (без применения готовых комбайнов) и начнем с PHP (обязательно будет заметка с рассмотрением готовых сборок LAMP). Поскольку я планирую работать наставникам на интесивах по PHP и дальше, я собираюсь написать подобные инструкции для повторения в других ОС (Linux, macOS). Как говорится, лучше один раз попотеть, но потом всем станет проще. Итак, приступаем.

    Загружаем PHP для Windows

    Заходим на официальный сайт и загружаем актуальную версию PHP. На момент написания заметки это – 7.1.4 . На странице доступно несколько вариантов дистрибутивов. У меня Windows 7 x64, соответственно я выбираю zip архив с VC14 x64 Thread Safe.

    Обратите внимание, для загрузки доступна два варианта дистрибутива: Thread-Safe (TS) и Non-Thread-Safe (NTS) . Выбор зависит от того как вы планируете применять интерпретатор. TS рекомендуется использовать для одного процесса веб-служб (например, настраивая через модуль mod_php для Apache). NTS рекомендуется для применения IIS (Internet Information Service) и альтернативных FastCGI веб-сервером (например, Apache с модулем FastCGI) и командной строки.

    Устанавливаем PHP 7.1

    Начнем готовить PHP для комфортной работе из командной строки. В предыдущем шаге вы загрузили архив с дистрибутивом PHP. В отличие от большинства программ, PHP поставляется в простом архиве, а не как инсталляционный пакет. Поэтому вам придется самостоятельно извлечь файлы в любую удобную для вас директорию. Я предпочитаю хранить подобные вещи в корне системного диска. Создайте в корне диска «C:» (или любом другом месте) директорию «php» и извлеките в нее содержимое загруженного архива.

    В директории появится множество файлов, но нас больше всего интересуют:

    • go-pear.bat – сценарий для установки PEAR. Подробности о PEAR можно почитать в официальной документации .
    • php.exe – позволяет выполнять PHP сценарии из консоли;
    • php-win.exe - позволяет выполнять PHP сценарии без применения консоли;
    • php-cgi.exe – необходим для выполнения PHP кода в режиме FastCGI;
    • php7apache2_4.dll – модуль интеграции с веб-сервером Apache 2.4.X;
    • phpdbg.exe – отладчик;
    • php.ini-development – пример конфигурационного файла PHP для окружения разработчика (development)
    • php.ini-production – пример конфигурационного файла PHP для рабочего окружения (production)

    Подключаем конфигурационный файл

    Распакованный дистрибутив у нас есть, подключим для него конфигурационный файл. Мы собираемся ставить эксперименты, поэтому в качестве образца возьмем php.ini-development . Сделайте копию этого файла в директорию php (C:\php ) с именем php.ini . ВАЖНО! Делайте именно копию, не простое переименование. За время разработки вам может потребоваться изменять конфигурационный файл и есть все шансы совершить ошибку, которую трудно будет обнаружить.

    В таких случаях нет ничего лучше, чем вернуться к эталонным настройкам. В нашем случае будет достаточно повторить копирование файла php.ini-development в php.ini . Итак, по окончанию телодвижений в директории с php должен появиться файлик php.ini. В дальнейших заметках мы обязательно поговорим о его содержимом более детально.

    Тестируем PHP из командной строки

    На этом шаге, так называемая «установка» завершена. Откройте консоль (cmd.exe , ярлык доступен в меню «Стандартные») и введите команду:

    C:\php\php.exe --version

    Результат будет примерно таким:

    PHP 7.1.4 (cli) (built: Apr 11 2017 19:54:37) (ZTS MSVC14 (Visual C++ 2015) x64) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

    Результат подтверждает, что PHP работает. Попробуйте для примера создать новый файл-сценарий (я создал файл “test.php” прямо в корне диска “C:”) и поместить в него текст:

    Теперь попробуйте выполнить этот файл и посмотрите результат:

    C:\php\php.exe –f test.php

    Функция phpinfo() выводит информацию по конфигурации PHP в удобном виде. Об этой функции мы еще поговорим.

    Упрощаем обращение к php.exe

    PHP готов к работе, но согласитесь, каждый раз вбивать в консоле путь к php интерпретатору довольно неудобно. Чтобы упростить себе жизнь, внесем небольшие изменения в переменные среды. Запустим в панели управления аплет «Система» (или просто нажмем горячую клавишу «Windows + Pause Break» . Затем нажмем на кнопку «Изменить параметры» . В появившемся окне «Свойства системы» , перейдем на закладку «Дополнительно» . Найдите и нажмите на ней кнопку «Переменные среды» .

    Находим в списке переменную «PATH» и нажимаем кнопку «Изменить» , появится окно редактирования переменной. В поле «Значение переменной» нам необходимо дописать путь к директории с PHP. Перейдите в самый конец строки и через точку с запятой укажите путь к директории с PHP: C:\php;

    Все, нажимайте «Ok». Теперь перезагрузите систему (увы, придется). После перезагрузки Windows, обращаться к PHP можно будет просто: php.Например, чтобы вывести название версии достаточно написать:

    Php –version

    А чтобы интерпретировать файл test.php, расположенный в корне диска «C:»:

    Php –f C:\test.php

    Или вовсе запустить встроенный веб-сервер:

    Php -t C:\ -S 127.0.0.1:8888 Listening on http://127.0.0.1:8888 Document root is C:\ Press Ctrl-C to quit.

    Для тестирования откройте web-браузер попробуйте обратиться на http://127.0.0.1:8888/test.php . Обратите внимание, после параметра –t мы указываем путь к директории, которая станет корневой директорией веб-сервера. Все сценарии, расположенные в этой папке будут доступны для запроса с клиента. У меня на диске «C:» есть один файлик 1.php и именно его я и запрашиваю.

    Assoc .php=phpfile ftype phpfile="C:\php\php.ee" -f "%1" -- %~2

    Еще немного о переменных окружения

    Теперь давайте поговорим о том как PHP будет искать файл настроек конфигурации (вспоминаем, о php.ini ). В документации приведена полная цепочка поиска. Во избежание лишних сложностей, рекомендую сразу добавить в переменные окружения новую – «PHPRC» и в качестве значения указать путь к директории с конфигурационным файлом. У меня конфиг располагается в тоже же директории, что и основные файлы php, следовательно в качестве значения переменной указываю –

    «C:\php». После внесения изменения потребуется перезагрузка.

    На этом у меня все. Первый часть мануала для новичков готова.



    Понравилась статья? Поделитесь ей
    Наверх