ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Установка и настройка веб-сервера Apache. Установка РНР под Windows. Подключение PHP к Apache

Apache

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

Хотя в интернете много материалов по данной тематике, я хочу поделиться своим опытом установки и настройки веб-сервера Apache, РНР и MySQL- сервера. Это связано с тем, что далеко не всегда следуя этим рекомендациям можно получить желаемый результат.

И так, прежде чем приступить к установке вышеуказанной "тройки", чтобы я рекомендовал начинающим веб-разработчикам?

Если после установки, Apache не запустился:

  • совет первый — "почистить" операционную систему Windows и если потребуется восстановить работоспособность используя функцию Восстановление системы (Пуск > Все программы > Стандартные > Служебные > Восстановление системы);
  • второй совет — почистить другие диски компьютера от лишнего "мусора".

Будем считать, что компьютер проверен, приведен в рабочее состояние и готов к дальнейшему использованию.

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

Веб-сервер Apache необходим для того, чтобы тестировать и просматривать сайты на локальной машине. Дистрибутив программы находится на официальной странице http://httpd.apache.org/. Заходим на эту страницу.

Сайт Apache

Найдем на странице Apache 2.2.11 Released и выберем ссылку Download.

Сайт Apache

На открывшейся странице представлен список HTTP и FTP-серверов, откуда можно загрузить веб-сервер Apache. Я бы рекомендовал выбрать

apache_2.2.11-win32-x86-no_ssl.msi [PGP] [MD5] или apache_2.2.11-win32-x86-openssl-0.9.8i.msi [PGP] [MD5]

Один из них и следует загрузить.

Двойной клик по скаченному файлу запустит процесс установки. Вам откроется следующее окно приветствия:

Установка Apache

Для продолжения нажмите кнопку Next(Далее).

Установка Apache

Соглашайтесь с лицензионным соглашением и нажимайте Next.

Установка Apache

Прочтите текст Read this first и нажмите Next для продолжения установки.

Установка Apache

Введите информацию о сервере и давите Next (Для локального сервера используйте localhost, как показано на рисунке).

Установка Apache

Выберите выборочную установку (Custom) и нажмите Next.

Установка Apache

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

Установка Apache

В этой инструкции (и в инструкциях по PHP\MySQL) каталог по умолчанию C:\Apache Group\ изменен на C:\Apache2.2\. Нажимайте Next. Всегда пытайтесь менять настройки по умолчанию, особенно, если это касается веб-сервера.

Установка Apache

Нажимайте Next.

Установка Apache

Нажимайте Install.

Установка Apache

Идет процесс инсталяции.

Установка Apache

Установка Apache

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

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

Трей Apache

Теперь остается только протестировать работу. Для этого открываем браузер и вводим в адресной строке http://localhost и нажимаем перейти. После этого Apache должен выдать страницу приветствия - в этой версии сервера страница приветствия заменена пустой страницей с надписью в верхнем левом углу - It Works! Если вы ее увидели, значит Apache работает. Если же надписи нет, тогда, перед тем как переходить к следующему этапу попытайтесь найти причины неправильной работы (поменять файл установки или провести мероприятия по восстановлению операционной системы).

Настройка веб-сервера Apache

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

Создадим виртуальный хост localhost, файлы которого будут храниться в каталоге D:\site\.

Для настройки нам потребуется найти и отредактировать файл httpd.conf. У нас он находится в каталоге C:\Apache 2.2\conf\. Откроем его в Блокноте.

Настройка Apache

Директивы ServerRoot, ServerName, ServerAdmin уже будут заданы в соответствии с данными, которые вы указали во время установки. Проверьте их и, если нужно, измените.

ServerRoot "C:/Apache2.2"
ServerAdmin istern@mail.ru
ServerName localhost:80

Найдите директиву DocumentRoot. Она определяет физическое расположение виртуального хоста на жестком диске. Изменим ее на

DocumentRoot "D:/site"

Далее найдите следующий текст

# This should be changed to whatever you set DocumentRoot to.

Заменим следующую после нее директиву на

<Directory "D:/site">
. . .
</Directory
>

Теперь найдите следующий текст:

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

И замените его на следующий:

<IfModule dir_module>
DirectoryIndex index.html index.php index.html.var
</IfModule>

Далее найдите текст:

# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

</IfModule>

и уберите комментарии с двух последних строчек:

# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
АddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule
>

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

# Language settings
Include conf/extra/httpd-languages.conf

# User home directories
#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf

# Various default settings
Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf

Для настройки виртуальных хостов существует отдельный файл - httpd-vhosts.conf. В нем мы и произведем все настройки

Настройка Apache

Откроем файл. Найдем директиву NameVirtualHost *:80 и изменим ее на

NameVirtualHost 127.0.0.1:80

Затем добавьте новую секцию VirtualHost для вашего первого сайта.

<VirtualHost 127.0.0.1:80>
ServerAdmin istern@mail.ru
DocumentRoot "D:/site"
ServerName dummy-host.localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost
>

Теперь файлы можно размещать в каталоге D:/site, и они будут доступны при обращении к адресу http://localhost/.

Для проверки работоспособности виртуального хоста необходимо создать в каталоге D:/site файл index.html, содержащий фразу "Hello, world".

Для того чтобы изменения конфигурационного файла вступили в действие следует перезапустить веб-сервер Apache(данные из конфигурационного файла читаются один раз при загрузке сервера). Если конфигурационный файл не содержит ошибок, после перезагрузки сервера и обращения по адресу http://localhost/ веб браузер должен выглядеть ТАК.

Настройка кодировки

Для настройки кодировки существует отдельный файл - httpd-languages.conf. В нем мы и произведем все настройки. Закомментируем все строки, кроме:

#AddLanguage ca .ca
#AddLanguage cs .cz .cs
#AddLanguage da .dk
#AddLanguage de .de
#AddLanguage el .el
AddLanguage en .en
#AddLanguage eo .eo
#AddLanguage es .es
#AddLanguage et .et
#AddLanguage fr .fr
#AddLanguage he .he
#AddLanguage hr .hr
#AddLanguage it .it
#AddLanguage ja .ja
#AddLanguage ko .ko
#AddLanguage ltz .ltz
#AddLanguage nl .nl
#AddLanguage nn .nn
#AddLanguage no .no
#AddLanguage pl .po
#AddLanguage pt .pt
#AddLanguage pt-BR .pt-br
AddLanguage ru .ru
#AddLanguage sv .sv
#AddLanguage tr .tr
#AddLanguage zh-CN .zh-cn
#AddLanguage zh-TW .zh-tw

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

#LanguagePriority en ca cs da de el eo es et fr he hr it

После нее добавим новую

LanguagePriority en ru

Далее найдем и закомментируем все строки кроме

#AddCharset us-ascii.ascii .us-ascii
#AddCharset ISO-8859-1 .iso8859-1 .latin1
#AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
#AddCharset ISO-8859-3 .iso8859-3 .latin3
#AddCharset ISO-8859-4 .iso8859-4 .latin4
#AddCharset ISO-8859-5 .iso8859-5 .cyr .iso-ru
#AddCharset ISO-8859-6 .iso8859-6 .arb .arabic
#AddCharset ISO-8859-7 .iso8859-7 .grk .greek
#AddCharset ISO-8859-8 .iso8859-8 .heb .hebrew
#AddCharset ISO-8859-9 .iso8859-9 .latin5 .trk
#AddCharset ISO-8859-10 .iso8859-10 .latin6
#AddCharset ISO-8859-13 .iso8859-13
#AddCharset ISO-8859-14 .iso8859-14 .latin8
#AddCharset ISO-8859-15 .iso8859-15 .latin9
#AddCharset ISO-8859-16 .iso8859-16 .latin10
#AddCharset ISO-2022-JP .iso2022-jp .jis
#AddCharset ISO-2022-KR .iso2022-kr .kis
#AddCharset ISO-2022-CN .iso2022-cn .cis
#AddCharset Big5.Big5 .big5 .b5
#AddCharset cn-Big5 .cn-big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
#AddCharset CP866 .cp866
#AddCharset KOI8 .koi8
#AddCharset KOI8-E .koi8-e
#AddCharset KOI8-r .koi8-r .koi8-ru
#AddCharset KOI8-U .koi8-u

Перезагрузим сервер. На этом основные настройки веб-сервера Apache завершены.

Управление веб-сервером Apache

Если при установке сервера в качестве порта, по которому Apache принимает запросы, был выбран 80-й порт, допускается запуск Apache в качестве сервиса. Для запуска консоли управления выполните команду Пуск> Панель управления>Администрирование >Службы. В появившемся окне консоли, следует выбрать сервис Apache 2.2.

Настройка Apache

Контекстное меню позволяет осуществить запуск, остановку и перезапуск сервиса. Упралять сервисом можно, используя иконку утилиты Apache Monitor.

Apache Monitor

Установка РНР под Windows

Прежде чем приступить к делу, обзаведемся дистрибутивом интерпретатора РНР. Для этого загрузим страницу http://www.php.net/.

Сайт www.php.net

Далее переходим на страницу downloads, с адресом http://www.php.net/downloads.php.

Сайт www.php.net

На данной странице РНР доступен в двух форматах: исходных кодах (Complete Source Code) и предкомпелированном варианте (Windows Binaeies). Нас будет интересовать предкомпилированная версия, которая также распространяется в двух вариантах: в виде автоматического установщика (PHP 5.2.8 installer) и в виде zip-архива(например, PHP 5.2.8 zip package).

Выберем в разделе Windows Binaeies ссылку PHP 5.2.8 zip package, которая приведет на страницу со списком зеркал, откуда можно загрузить текущую версию РНР.

Сайт www.php.net

Для загрузки архива выбираем сервер, который расположен в Российской Федерации (Russian Federation).

Для установки РНР следует создать каталог С:\php и разместить в нем файлы из скаченного zip-архива дистрибутива. После этого, посредством Блокнота, открыть папку РНР и переименовать конфигурационный файл php.ini-dist в php.ini.

Сайт www.php.net

Далее необходимо сообщить веб-серверу о наличии установленного РНР. Установка РНР возможна двумя способами: как модуль Apache и как внешнее CGI-приложение.

Подключение PHP к Apache

Для подключения PHP к Apache в качестве модуля откройте конфигурационный файл httpd.conf и вставьте три данные строчки в сeредину, к примеру, после директив LoadModule.LoadModule php5_module

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

Перезапустите Apache. Если Apache запустился, то приступаем к настройке РНР. Если нет, то должно появиться диалоговое окно, предупреждение об ошибке. В этом случае, поверьте моему опыту, начните с восстановления операционной системы. У меня был случай, когда после восстановительной процедуры, была выдана та же ошибка. Я полностью переустановил Windows. После установки Apache и всех настроек— опять та же ошибка. И только после чиски диска D все пошло нормально. Когда будeте переустанавливать Apache, не забывайте удалять папку в каталоге, где до этого был установлен веб-сервер.

Настройка PHP

Откройте конфигурационный файл php.ini. Найдите директиву error_reporting и установите для неё следующее значение:

error_reporting = E_ALL & ~E_NOTICE

Это значение настроить 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. Если данная директива отключена, то к таким переменным можно будет обращаться только при помощи суперглобальных массивов ($_POST, $_GET и т.п.).

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

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

Откройте http.conf для настройки таким образом, чтобы Web-сервер Apache так же реагировал на файлы index.php. Для этого найдите в http.conf директиву DirectoryIndex и исправьте её следующим образом: DirectoryIndex index.html index.htm index.shtml index.php После этого необходимо перегрузить сервер Apache. В корневой директории виртуального хоста ("D:/site") создать тестовый файл PHP (index.php) с содержимым:
<?php
phpinfo();
?>

В случае успешной настройки, обращение по адресу http://localhost/ отобразит фиолетовую таблицу с текущими настройками PHP, которая выдаётся функцией phpinfo().

Установка графической библиотеки GD

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

extension=php_gd2.dll

Помимо этого, необходимо настроить директиву, указав путь к библиотекам расширения:

extension_dir = "C:/php/ext/"

После внесения изменений в php.ini перезапустите сервер Apache. Для проверки работы библиотеки GD, воспользуйтесь функцией phpinfo(), должен появиться раздел "gd".