Оглавление

6. Установка PHP

Найти дистрибутив интерпретатора PHP можно по адресу http://windows.php.net/download/. В списке выбираем php-5.3.10-Win32-VC9-x86.zip. Размер дистрибутива— 15.07 Мбайт. (На момент написания. Возможно сейчас есть более новая версия)
Создаем папку C:/php5 и копируем в нее скачанные файлы. В итоге файлы интерпретатора должны оказаться в пайке C:\php5. С помощью Notepad++ открываем файл php.ini-development (C:\php5\php.ini-development) и сохраняем как php.ini. Не спешите закрывать файл, так как в нем необходимо сделать изменения. Для этого находим строку
   ; extension_dir = "ext"
и заменяем ее на 

   extension_dir = "C:/php5/ext"


Если этого не сделать, то библиотеки нужно скопировать из C:\php5\ext в C:\WINDOWS\system32. Не будем засорять систему и оставим их там, где они уже есть. Вместо этого просто пропишем к ним путь.
Далее необходимо подключить некоторые библиотеки. Находим строчки
   ; extension=php_mysql.dll
   ; extension=php_mysqli.dll

и убираем точку с запятой перед ними:
   extension=php_mysql.dll
   extension=php_mysqli.dll

 

Таким образом мы включили поддержку баз данных MySQL. Кроме этой библиотеки нам понадобится возможность работы с графикой через РНР. Это достигается подключением библиотеки php_gd2.dll. Заменяем строку
;extension=php_gd2.dll
на
extension=php_gd2.dll

 

Еще одна библиотека, которая может пригодиться, позволяет соединяться и работать с серверами. Находим строку
;extension=php_curl.dll
и убираем точку с занятой:
extension=php_curl.dll

 

А следующая библиотека содержит функции для работы с многобайтными кодировками. Меняем строку
;extension=php_mbstring.dll
на
extension=php_mbstring.dll

 

Выключаем поддержку глобальных переменных:
register_globals = Off

 

Выключаем     поддержку     длинных     имен     суперглобальных     массивов ($HTTP_*_VARS):
register_long_arrays = Off

 

Указываем кодировку по умолчанию. Для этого находим строку
;default_charset = "iso-8859-1"
и меняем ее на
default_charset = "windows-1251"

 

Находим строку
;include_path = ".;c:\php\includes"
и меняем ее на
include_path = ".;C:\php5\includes"

Предварительно создадим папку includes в C:\php5. Здесь будут храниться подключаемые файлы.

 

Находим строку
;session.save_path = "/tmp"
и меняем ее на
session.save_path = "c:/php5/tmp"
Предварительно создадим пайку tmp в C:\php5. Здесь будут храниться временные файлы сессий.
Заменяем строку
session.use_trans_sid = 0
на
session.use_trans_sid = 1

 

Это позволит без затруднений работать с сессиями РНР.


Отключаем автоматическое добавление защитной обратной косой черты:
magic_quotes_gpc = Off

 

Проверяем  значения  директив  magic_quotes_runtime и magic_quotes_sybase, они должны быть равны Off:
magic_quotes_runtime = Off
magic_quotes_sybase = Off

 

Чтобы использовать упрощенный стиль тегов включения кода РНР, заменяем строку
asp_tags = Off
на
asp_tags = On


Проверяем значение директив
short_open_tag = On
display_errors = On

 

Находим строку

upload_max_filesize = 2M

и увеличиваем максимально допустимый размер загружаемых файлов до 16 Мбайт:
upload_max_filesize = 16M

 

Находим строку
;upload_tmp_dir =
и заменяем ее на
upload_tmp_dir = "C:/php5/tmp"
Заменяем строку
;date.timezone =
на
date.timezone = "Europe/Moscow"    (3)

 

Включаем вывод всех сообщений об ошибках:
error_reporting = E_ALL | E_STRICT

 

Сохраняем и закрываем файл php.ini.

 

Теперь необходимо добавить поддержку РНР в файл конфигурации сервера Apache. Открываем файл httpd.conf и находим строки
<IfModule dir_module>
   DirectoryIndex index.html
</IfModule>
и вместо них вставляем следующие строки:
<IfModule dir_module>
 DirectoryIndex index.php index.html index.htm index.shtml index.html.var
</IfModule>

 

PHPIniDir C:/php5
LoadModule php5_module C:/php5/php5apache2_2.dll
AddType application/x-httpd-php .php

 

Сохраняем и закрываем файл httpd.conf.

 

Далее необходимо добавить каталог с установленным интерпретатором РНР в переменную  PATH операционной системы. Для этого в меню Пуск выбираем пункт Панель управления (или Настройка | Панель управления). В открывшемся окне выбираем пункт Система. Переходим на вкладку Дополнительно (рис. 1) и нажимаем кнопку Переменные среды.

 

Свойства системыРис. 1. Вкладка Дополнительно окна Свойства системы

 

В разделе Системные переменные (рис. 2) делаем двойной щелчок на строке Path (или выделяем строку и нажимаем Изменить).

 

Окно Переменные средыРис. 2 Окно Переменные среды

 

В начало к имеющемуся значению переменной path добавляем путь к каталогу, куда мы установили РНР (C:\php5) через точку с запятой (рис. 3):
C:\php5;

 

Окно Изменение системной переменной

Рис. 3 Окно Изменение системной переменной

 

Когда компьютер перезагрузится, открываем Notepad++ и набираем следующий код:

 


<?php
phpinfo();
?>

 

 

Сохраняем файл под именем index.php в C:\Apache2\htdocs. Открываем Web-браузер и в адресной строке набираем
http://localhost/

 

Результат выполнения функции phpinfo ()Рис. 4  Результат выполнения функции phpinfo ()

 
Если в окне Web-браузера отобразилась страничка с информацией об интерпретаторе РНР (рис. 4), то это уже хорошо. Тем не менее это не гарантирует правильность настроек, так как РНР может работать и без конфигурациoнногo файла php.ini. Чтобы проверить основные настройки следует запустить код из листинга 1.

 


Листинг 1. Проверка корректности установки PHP 5.3

 


<?php
$err = array();
if (!file_exists('C:\\php5\\php.ini'))
   $err[] = 'Файл C:\\php5\\php.ini не существует';
$path = php_ini_loaded_file();
if (strtolower($path) !== 'c:\\php5\\php.ini')
   $err[] = 'Пути к файлу php.ini не совпадают';
if (!file_exists('C:\\php5\\ext\\'))
   $err[] = 'Папка C:\\php5\\ext\\ не существует';
$ext = ini_get("extension_dir");
if (strtolower($ext) !== 'c:/php5/ext')
   $err[] = 'Проверьте значение директивы extension_dir';
$inc = ini_get('include_path');
if (strtolower($inc) !== '.;c:\\php5\\includes')
   $err[] = 'Проверьте значение директивы include_path';
$ses = ini_get('session.save_path');
if (strtolower($ses) !== 'c:/php5/tmp')
   $err[] = 'Проверьте значение директивы session.save_path';
if (!file_exists('C:\\php5\\tmp\\'))
   $err[] = 'Папка C:\\php5\\tmp\\ не существует';
if (!file_exists('C:\\php5\\includes\\'))
   $err[] = 'Папка C:\\php5\\includes\\ не существует';
$upl = ini_get('upload_tmp_dir');
if (strtolower($upl) !== 'c:/php5/tmp')
   $err[] = 'Проверьте значение директивы upload_tmp_dir';
if (get_magic_quotes_gpc())
   $err[] = 'Проверьте значение директивы magic_quotes_gpc';
if (ini_get('register_globals'))
   $err[] = 'Проверьте значение директивы register_globals';
if (!extension_loaded('gd'))
   $err[] = 'Библиотека GD не подключена';
if (!extension_loaded('mbstring'))
   $err[] = 'Библиотека mbstring не подключена';
if (!extension_loaded('mysql'))
   $err[] = 'Библиотека mysql не подключена';
if (!extension_loaded('mysqli'))
   $err[] = 'Библиотека mysqli не подключена';
$path = strtolower($_SERVER['PATH']);
if (strpos($path, 'c:\php5') === false)
   $err[] = 'Не прописан путь к папке c:\php5 в Path';
if (count($err) == 0) echo 'Ошибок нет';
else {
   echo '<div style="color:red;">';
   echo implode('<br>', $err) . '</div>';
}
?>

 

Если после выполнения кода было выведено сообщение

 

Ошибок нет

 

значит, все установлено нормально. Установка и настройка интерпретатора РНР завершена.

Примечания:
  • Библиотека php_mcrypt.dll включена в ядро РНР 5.3 и в подключении больше не нуждается. Однако если вы устанавливаете РНР 5.2, то эту библиотеку также необходимо подключить
  • Директивы register_globals и register_long_arrays признаны устаревшими в РНР 5.3 и удалены в РНР 6.
  • Выбрать название зоны для вашей местности можно на странице http://ru2.php.net/manual/en/timezones.php.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити