2.2. Установка php
Загрузить PHP можно с официального сайта PHP http://www.php.net из секции Downloads два файла
1. Запустите exe-файл. В открывшемся диалоговом окне нажмите кнопку Next.
2. Согласитесь с условиями лицензии, нажав кнопку I Agree. В появившемся диалоговом окне выберите тип установки Standard.
3. Теперь укажите директорию, в которую будет установлен PHP. Оставьте указанную по умолчанию (C:\PHP)
Оставьте в текстовых полях значения по умолчанию.
5. Выберите сервер, на который будет настроен PHP. В нашем случае это — Apache.
Начнется процесс копирования файлов. После его окончания, возможно, появятся еще некоторые диалоговые окна с различными извещениями. Не обращайте на них внимания.
На этом этапе язык PHP можно считать уже почти установленным — нам осталось только настроить Apache, чтобы он мог распознать PHP-сценарии, а также подключить дополнительные модули, которые содержатся в загруженном нами zip-архиве.
Настройка Apache для работы с PHP
1. Откройте в Блокноте файл конфигурации Apache httpd.conf, находящийся в каталоге C:\Program Files\Apache Group\Apache\conf.
2. Найдите в тексте файла такую закомментированную строку:
#AddType application/x-httpd-php php
3. Раскройте комментарий:
AddType application/x-httpd-php php
Таким образом, мы присвоили всем файлам с расширением php тип
application/x-httpd-php.
4. Сразу же после этой строки добавьте такие настройки:
ScriptAlias /_php/ "C:/PHP/"
Action application/x-httpd-php "/_php/php.exe"
Этим мы, во-первых, создаем синоним _php для каталога с процессором PHP, чтобы Apache мог получить к нему доступ, а во-вторых, связываем все файлы типа application/x-httpd-php с обработчиком php.exe.
Префикс к строке "_php" выбран из такого расчета, чтобы она в будущем не конфликтовала с именами каталогов, которые вы можете объявить на вашем хосте.
5. Сохраните изменения в файле конфигурации, остановите Apache, если он был до этого запущен (пункт Пуск u Программы u Apache Web Server u Management u Stop Apache), и стартуйте сервер снова. Если Apache не запускается (его окно открывается и тут же закрывается), значит, вы где-то допустили синтаксическую ошибку.
Тестирование PHP
Давайте теперь убедимся, что PHP-сценарии работают. Для этого создадим в каталоге C:/Program Files/Apache Group/Apache/htdocs файл test.php со следующим содержанием:
Листинг 5.1. Тестовый сценарий
<?
echo "It works!<br>\n";
phpinfo();
?>
Теперь наберите в браузере: http://localhost/test.php. Должна отобразиться
страница с разнообразной информацией о PHP, которая генерируется функцией phpinfo().
Напоминаем, что PHP-сценарии — не то же самое, что CGI-сценарии. В частности, если CGI-сценарий обычно располагают в /cgi-bin/ или /cgi/, то php-сценарий должен находиться в каталоге с документами.
Если страница не отображается, значит, вы допустили ошибку в файле httpd.conf.
Откройте его снова и исправьте ошибку, затем не забудьте перезапустить Apache.
2.3. Установка MySql
1. Дистрибутив MySQL можно загрузить с официального сайта MySQL (http://www.mysql.com, раздел Downloads). Дистрибутив представляет собой zip-архив, который нужно развернуть в любой удобный вам каталог.
2. Запустите setup.exe из только что разархивированного дистрибутива. Нажмите кнопку Next.
3. В появившемся информационном окне снова нажмите Next. Откроется диалог с запросом о выборе каталога для MySQL. По умолчанию предлагается C:\mysql. Оставьте этот каталог и нажмите Next.
4. Выберите тип установки Typical. Начнется копирование файлов MySQL. Дождитесь его окончания. MySQL установлена.
5. Для того чтобы активизировать MySQL-сервер, запустите исполняемый файл C:\MySQL\bin\mysqld.exe. Можете создать для него ярлык, однако, поскольку обычно MySQL работает "в связке" с Apache, будет логично создать командный файл, который будет стартовать и Apache, и MySQL. Назовем его server.bat. Вот содержание этого файла:
@echo off
"C:\MySQL\bin\mysqld"
start /m "C:\Program Files\Apache Group\Apache\Apache"
Для операционных систем Windows NT и Widows 2000, однако, будет удобнее использовать несколько другие команды (иначе в этих системах окно процесса MySQL будет постоянно видно на экране, что нежелательно):
@echo off
start C:\MySQL\bin\mysqld-nt --standalone
C:\Progra~1\Apache~1\Apache\Apache -k start
Перед выключением или перезагрузкой компьютера нужно завершать работу Apache и MySQL. Для этого удобнее всего создать следующий bat-файл с именем, например, shutdown.bat.
@echo off
"C:\Program Files\Apache Group\Apache\Apache" -k shutdown
"C:\MySQL\bin\mysqladmin" -u root shutdown
Тестирование MySQL
Давайте теперь проверим, все ли работает. Для начала запустите наш файл server.bat, чтобы активизировать сервер. Создайте следующий PHP-сценарий с именем mysql.php в каталоге C:/Program Files/Apache Group/Apache/htdocs.
<?
define("DBName","test");
define("HostName","localhost");
define("UserName","root");
define("Password","");
if(!mysql_connect(HostName,UserName,Password))
{ echo "Не могу соединиться с базой ".DBName."!<br>";
echo mysql_error();
exit;
}
mysql_select_db(DBName);
// Создаем таблицу t. Если такая таблица уже есть,
// сообщение об ошибке будет подавлено
@mysql_query("create table t(id int, a text)");
// Вставляем в таблицу 10 записей
for($i=0; $i<10; $i++)
{ $id=time();
mysql_query("insert into t(id, a) values($id, 'No.$i!')");
}
$r=mysql_query("select * from t");
for($i=0; $i<mysql_num_rows($r); $i++)
{ $f=mysql_fetch_array($r);
echo "$f[id] -> $f[a]<br>\n";
}
?>
Теперь наберите в браузере:
http://localhost/mysql.php
Если все сконфигурировано правильно, вы должны получить несколько строк вывода в браузере без сообщений об ошибках. При каждом запуске в таблицу t добавляются новые строки, так что с каждым нажатием кнопки Обновить в браузере объем таблицы будет все увеличиваться.
В тексте программы присутствуют константы DBName, HostName, UserName и Password.
DBName должен содержать имя базы данных (в нашем случае это test — база данных, которая создается MySQL по умолчанию). HostName — всегда localhost, ведь мы работаем на локальном компьютере. В макросе UserName проще всего подставлять root, который является владельцем всех таблиц. При установке MySQL пользователю root не назначается пароль, так что константа Password равна пустой строке.