Версия 1.1.
Спасибо doliar за напоминание об обязательной перезагрузке сервера после его конфигурации с PHP.
Использованное ПО:
Apache 2.2.9 без SSL (apache_2.2.9-win32-x86-no_ssl-r2.msi)- установщик
PHP 5.2.6 (php-5.2.6-Win32.zip) - архив
MySQL 5.0.51b (mysql-essential-5.0.51b-win32.msi) - установщик
MySQL GUI Tools 5.0-r12 (mysql-gui-tools-5.0-r12-win32.msi) - установщик
Установка и настройка происходила под управлением Windows 2000 SP4 (это единственная из более-менее вменяемых NT-систем, которые тянет мой компьютер под виртуальной машиной), но установка под другие системы вроде WinXP или Vista отличаться не будет.
1.Установка веб-сервера Apache.
Первый компонент, который мы будем устанавливать — это веб-сервер Apache. Запускайте установочный пакет (apache_2.2.9-win32-x86-no_ssl-r2.msi). Следуйте инструкциям установщика, пока не дойдёте до следующего диалога:
Если вы ставите сервер для работы с сервисом вФОСе.ру (что скорее всего), то прописывайте в поле «Network domain» "vfose.ru" без кавычек, в поле «Server name» - "<имя_вашего_домена>.vfose.ru" без кавычек. В поле для e-mail'а можете ввести любой адрес. Флажок оставляем по умолчанию (нам нужно, чтобы сервер запускался как сервис винды)
и переходим на следующую страницу. Далее, если хотите изменить путь установки (я так и сделаю), то выбирайте «Custom», иначе - «Typical». Я немного изменю путь установки:
Компоненты оставляйте прежними. Далее сервер устанавливается.
После установки можете проверить её «качество». Если в браузере страница http://localhost/ отображается нормально, значит сервер установлен правильно.
2.Установка и настройка интерпретатора PHP и конфигурация Apache.
Дальше мы установим PHP и настроим веб-сервер на его использование. Распаковываем zip-архив (php-5.2.6-Win32.zip) в удобную для вас папку (лучше всего в C:\php; я буду следовать в статье тому, что распаковка была именно сюда, поэтому, если у вас PHP в другом месте, то, соответственно, далее используйте ваш каталог). Заходите в эту папку и копируйте файл php.ini-dist в каталог Windows (у меня это C:\WINNT), а потом переименуйте его в php.ini. Открывайте это файл блокнотом или любым текстовым редактором. Я считаю, что стандартные настройки достаточно хороши, надо только исправить несколько директив. Сначала надо выбрать место на диске где будут храниться документы сервера, то есть HTML-, PHP-файлы и т.д. Возьмём, к примеру, каталог C:\www\htdocs. Тогда нам необходимо в файле php.ini исправить директиву
- Код: Выделить всё • Развернуть
doc_root =
- Код: Выделить всё • Развернуть
doc_root = "C:\www\htdocs"
- Код: Выделить всё • Развернуть
extension_dir = "./"
- Код: Выделить всё • Развернуть
extension_dir = "C:\php\ext"
Далее, так как мы хотим использовать MySQL, то нужно подключить соответствующие модули. Для этого раскомментируйте (уберите «;» из начала строки) следующие строки:
- Код: Выделить всё • Развернуть
;extension=php_mysql.dll
;extension=php_mysqli.dll
- Код: Выделить всё • Развернуть
;extension=php_bz2.dll — для работы с bz2-архивами (распаковка/упаковка средствами скриптов)
;extension=php_curl.dll — это curl-расширение; с помощью него можно, например, из скрипта послать POST-запрос к другому скрипту
;extension=php_exif.dll — для работы с дополнительной информацией в файлах фотографий
;extension=php_gd2.dll — графическая библиотека для генерации рисунков скриптами
;extension=php_mbstring.dll — это библиотека для работы с многобайтовыми (в кодировке Unicode) строками, настоятельно советую подключить, иначе некоторые CMS могут не работать
;extension=php_msql.dll — для работы с БД mSQL
;extension=php_mssql.dll — для работы с Microsoft SQL Server
;extension=php_mysql.dll — стандартная библиотека MySQL; для версий MySQL 5 и старше лучше использовать модуль mysqli
;extension=php_mysqli.dll — улучшенная (MySQL Improved) библиотека для работы с MySQL. Для работы с MySQL5 лучше использовать именно её
;extension=php_pdo.dll — этот модуль, а также все модули PDO обеспечивают унифицированный интерфейс ко многим базам данных. Но в частности это полезно тем, что это (насколько я знаю, по крайней мере из стандартных) единственный способ работать с базами SQLite 3
;extension=php_pgsql.dll — для работы с СУБД PostgreSQL
;extension=php_sockets.dll — модуль для работы с сокетами из скриптов
;extension=php_sqlite.dll — для работы с бессерверной БД SQLite. В этом модуле поддерживается только 2 версия файлов баз данных
;extension=php_zip.dll — для работы с zip-архивами (то же самое что и для bz2)
На этом редактирование php.ini завершаем (не забудьте сохранить изменения!). Теперь из каталога C:\php в каталог C:\WINNT\System32 (или C:\Windows\System32, в зависимости от того, куда у вас установлена система) скопируйте файл libmysql.dll. Он нужен для правильной работы PHP с MySQL.
Переходите в каталог C:\Program files\Apache2.2\conf и открывайте в текстовом редакторе файл httpd.conf.
Замечание: все пути к файлам в конфигурационных файлах Apache должны быть с прямыми слешами («/»), а не с обратными, как принято в Windows («\»).
Найдите секцию, озаглавленную как «Dynamic Shared Object (DSO) Support». Здесь можно настроить модули сервера, например, mod_rewrite. В конец, сразу после последней директивы LoadModule, добавьте следующее:
- Код: Выделить всё • Развернуть
LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "C:/WINNT"
Если вы просмотрите этот файл дальше, то можете увидеть, что сюда занесены данные, которые вы вводили в установщике:
- Код: Выделить всё • Развернуть
ServerAdmin admin@example.vfose.ru
#ServerName example.vfose.ru:80
Далее находите следующую директиву:
- Код: Выделить всё • Развернуть
DocumentRoot "C:/Program Files/Apache2.2/htdocs"
- Код: Выделить всё • Развернуть
DocumentRoot "C:/www/htdocs"
Чтобы эту папку можно было использовать, нужно её настроить. Находим следующий блок директив:
- Код: Выделить всё • Развернуть
<Directory "C:/Program Files/Apache2.2/htdocs">
...
</Directory>
- Код: Выделить всё • Развернуть
AllowOverride None
- Код: Выделить всё • Развернуть
AllowOverride All
Добавьте в блок <IfModule dir_module> ещё одну строку:
- Код: Выделить всё • Развернуть
DirectoryIndex index.php
Это означает, что теперь сервер по запросу без указания файла (например, http://example.vfose.ru/) будет выдавать файл index.html или index.php. Здесь порядок директив DirectoryIndex определяет порядок файлов, то есть если в каталоге два файла index.html и index.php, а в этом блоке директив указано
- Код: Выделить всё • Развернуть
DirectoryIndex index.html
DirectoryIndex index.php
Большинство других настроек в данном файле нам не нужны, по крайней мере, сейчас. Сохраняем и закрываем файл.
Теперь откройте файл mime.types (он находится рядом с httpd.conf). Здесь настраиваются mime-типы, определяемые по расширению файла. Добавьте куда-нибудь в этот файл строку
- Код: Выделить всё • Развернуть
application/x-httpd-php php
- Код: Выделить всё • Развернуть
application/x-httpd-php-source phps
Сохраняйте и закрывайте этот файл.
Всё, веб-сервер и PHP сконфигурированы для работы вместе. Обязательно перезагрузите веб-сервер, чтобы PHP заработал! Для этого используйте Монитор Apache (значок пера с зелёной стрелкой в системном трее) или ярлык в меню Пуск/Программы/Apache HTTP Server 2.2/Control Apache Server/Restart Чтобы протестировать работу PHP, создайте в каталоге C:\www\htdocs файл index.php с текстом
- Код: Выделить всё • Развернуть
<?php phpinfo(); ?>
Должно отобразиться примерно следующее:
3.Установка и настройка СУБД MySQL.
MySQL — это одна из самых используемых СУБД (Систем Управления Базами Данных) с открытым кодом. Версия Community распространяется на условиях лицензии GPL.
Приступим к установке. Запускайте установочный пакет (mysql-essential-5.0.51b-win32.msi). Установки по умолчанию вполне нормальны (сервер СУБД установится в C:\Program Files\MySQL\MySQL Server 5.0). После окончания установки оставьте флажок «Configure the MySQL Server now» включённым. Запустится конфигуратор сервера MySQL.
Нажмите Next.
В этом диалоге выберите «Detailed Configuration».
Дальше на выбор предлагаются три опции: «Developer Machine», «Server Machine» и «Dedicated MySQL Server Machine». Как можно догадаться из описаний, первая опция указывает потреблять минимум памяти, вторая — для среднего потребления, третья — для максимального. Если вы устанавливаете серверы на домашний компьютер, который используете, например, для игр, то оставьте первую опцию; если вы ставите серверы на отдельный компьютер (например, их у вас два и вы хотите отвести второй под сервер), то выберите вторую опцию. Третий вариант вам вряд ли понадобится (он нужен для выделенных серверов СУБД).
На следующей странице вы выбираете доступные движки баз данных. Движок MyISAM быстрее, но не поддерживает транзакции, а InnoDB работает немного медленнее, но поддерживает транзакции. Впрочем, если вы не собираетесь разрабатывать свои веб-приложения, то это вас не должно особо волновать. Выберите «Multifunctional Database», чтобы активировать оба движка.
В следующем диалоге вы выбираете место хранения таблиц InnoDB (этот шаг будет только если вы выбрали первую или вторую опцию на предыдущем шаге). Место хранения по умолчанию вполне нормально.
На следующем шаге вы устанавливаете количество одновременных подключений. Первая опция — 20, вторая — 500, третья — ваше число. Примечание: 20 соединений — это не значит, что на ваш сайт смогут зайти только 20 пользователей одновременно. Сессия скрипта с БД длится максимум пару секунд, поэтому пользователи на сайте не подключены к базе постоянно. Это что-то вроде распределения процессорного времени между программами. Первой опции вполне достаточно.
На следующей странице — сетевые настройки сервера и режим SQL. Оставьте настройки по умолчанию.
Следующий шаг — выбор кодировки по умолчанию Я предпочитаю установить кодировку utf8 по умолчанию — это вторая опция. Вы также можете выбрать третью опцию и установить кодировку cp1251. В любом случае, насколько я знаю, большинство CMS указывают кодировку явно при создании таблиц, так что это понадобится, если вы собираетесь разрабатывать свои веб-приложения.
Следующий диалог — настройки сервиса MySQL. Оставьте здесь всё по умолчанию.
На следующем шаге установите пароль для суперпользователя (root'а). Изначально доступ к БД извне за суперпользователя закрыт (отключена соответствующая галочка на этой странице). Так что здесь длинный пароль не так необходим. Но в любом случае безопасность — дело не последнее, поэтому установите какой-нибудь пароль. В любом случае, потом мы создадим ещё одного пользователя. Не устанавливайте опцию «Create An Anonymous Account» — это вредно с точки зрения безопасности.
mysql_11.png
Всё, теперь нажмите Execute. Настройки применятся. Нажмите Finish для завершения настройки.
Далее мы установим пакет MySQL GUI Tools. Это очень удобный набор утилит для администрации MySQL-сервера от самих разработчиков СУБД. Я лично предпочитаю именно GUI Tools, а не phpMyAdmin. Если вы не хотите использовать MySQL GUI Tools, а предпочитаете phpMyAdmin, то можете пропустить этот шаг.
Запускаем установщик (mysql-gui-tools-5.0-r12-win32.msi). Установки по умолчанию вполне удовлетворительны. После окончания установки доступ к утилитам можно получить из меню «Пуск». Запустите MySQL Administrator.
В поле «Server Host» введите localhost, в поля «Username» и «Password» — root и пароль, который вы установили в конфигураторе, соответственно. Нажмите OK. Появится такое окно:
Что за что здесь отвечает, вы можете посмотреть в моей другой статье, «Работа с MySQL в MySQL GUI Tools».
Переходим на страницу «Catalogs». Снизу появится список баз данных. Нажмите на пустом месте в нём правой кнопкой и выберите «Create New Schema» в меню. Введите имя новой базы данных, например, SiteForum. Новая база данных будет создана. Сейчас мы установим для неё пользователя и права доступа. Переходим на страницу «User Administration».
Нажмите кнопку «Add new user». В поле «MySQL User» введите, например, forumuser. В поле «Password» можете ввести что-нибудь, а можете и не вводить. Что-то сложное вводить не обязательно. Перейдите на вкладку «Schema Privileges». В списке слева выберите только что созданную базу данных — siteforum. В правом списке появится список привилегий для данной базы данных. Вы можете выбрать все привилегии. Потом нажмите кнопку «<» (или «<<» для переноса всех привилегий). Теперь привилегии пользователя установлены, вы можете нажать кнопку «Apply changes».
Всё, сервер готов к работе. Теперь при установке форума выберите базу данных siteforum и пользователя forumuser.
Заключение.
Мы настроили веб-сервер Apache, интерпретатор скриптов PHP и сервер СУБД MySQL. В следующей части статьи я напишу, как настроить виртуальные хосты Apache — это нужно для того, чтобы держать на компьютере несколько сайтов, а также для того, чтобы изолировать и обезопасить сайты.