Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP обучение на примерах - Кухарчик А..pdf
Скачиваний:
139
Добавлен:
24.05.2014
Размер:
24 Мб
Скачать
☆

44

Знакомьтесь — РНР

В каталоге virtual нужно создать еще один каталог — LOG для log-файлов Apache. Сами файлы создавать вручную не надо, они будут созданы Apache автоматически.

СОВЕТ

Если вы не очень нуждаетесь в log-файлах, можно периодически их удалять. Это позволит серверу работать немного быстрее, да и место сэкономит. Сделать это можно только тогда, когда сервер остановлен. Log-файлы можно сохранять в разные папки для каждого сайта отдельно, но если они не очень нужны, можно задать в одну папку, чтобы легче было удалять.

Как обычно, сохраните файл конфигурации и попробуйте запустить Apache. Если ошибка — ищите ее в указанной строке.

Тестирование РНР

Убедимся, что РНР-скрипты работают. Для этого создадим в директории d:/usr/public_html/host/virtual файл test.php со следующим содержанием:

<? phpinfo(); ?>

Теперь наберите в браузере: h t t p : //127 . 0 . 0 . 1/test . php . Должна отобразиться страница с разнообразной информацией о РНР, которая генерируется функцией phpinfo () (рис. 15).

Все, РНР работает.

Установка и настройка дополнительных модулей

Обратите внимание на второй файл, который мы скачали. Он имеет расширение zip и представляет собой обычный архив. Распакуйте его. Найдите в нем директорию extensions и скопируйте ее полностью к себе в каталог с установленным РНР.

Это — дополнительные модули, которые нужны для работы с изображениями, службами улучшенной криптографии и т.д.

А если и не нужны сразу, то некоторые готовые разработки могут их использовать, так что пусть будут.

Установка РНР

45

Рис. 15. Страница информации о РНР, сгенерированная функцией phpinfo()

Теперь надо подключить новые модули к РНР. Делается это во втором важном конфигурационном файле — php.ini. Готового его варианта нет, придется создать самостоятельно. Надо отметить, что и без этого файла РНР сможет работать, но у нас не будет возможности настраивать нужные параметры.

Итак, в дистрибутиве ищем файл php.ini-recommended и переименовываем его в php.ini. Редактировать можно, как обычно, в любом текстовом редакторе, так как он, как и конфигурационный файл Apache, представляет собой простой текст.

Открыли? Ищите в нем раздел Error handling and logging (рис.16).

46

Знакомьтесь — РНР

Этот раздел отвечает за настройку ошибок, выводимых на экран. Нам очень важно видеть эти ошибки, чтобы понимать, как работает скрипт. А точнее — почему он не работает.

Puc. 16. Раздел Error handling and logging в файле php.ini

Здесь чуть ниже будет переменная error _ reporting = E_ALL. Конечно, можно оставить ее такой, какая она есть, но тогда приготовьтесь получать сообщения об ошибках по поводу и без повода. Например, если происходит попытка использования неинициализированной переменной (см. ниже). Это не страшно, так как в этом случае переменная автоматически инициализируется и приравнивается или к нулю, или к пустой строке, в зависимости от типа, но сообщение об ошибке все равно появится на экране. Чтобы избежать таких ситуаций, надо прописать тут: error_reporting = E_WARNING. В табл. 1 приведен полный

Установка РНР

47

список доступных значений: вы можете выбрать более подходящие для вашего сайта.

Таблица 1.Типы ошибок в PHP

Значение

Константа

1

Е_ERROR

2

E_WARNING

4

Е_PARSE

8

E_NOTICE

Описание

Фатальные ошибки на стадии выполнения

Предупреждения на стадии выполнения (нефатальные ошибки)

Ошибки анализа на стадии компиляции

Уведомления на стадии выполнения (менее серьезные, чем предупреждения)

16

E_CORE_ERROR

Фатальные ошибки при запуске РНР

32

E_CORE_WARNING

Предупреждения (нефатальные ошиб-

 

 

ки) при запуске РНР

64

E_COMPILE_ERROR

Фатальные ошибки на стадии компи-

 

 

ляции

128

E_COMPILE_WARNING

Предупреждения на стадии компиля-

 

 

ции (нефатальные ошибки)

256

E_USER_ERROR

Сообщение об ошибке, генерируемое

 

 

пользователем

512

E_USER_WARNING

Предупреждение, генерируемое поль-

 

 

зователем

1024

E_USER_NOTICE

Уведомление, генерируемое пользова-

 

 

телем

2047

E_ALL

Все вышеуказанное

Еще чуть дальше нужно найти параметр display_errors = Off и установить его в On, включив, таким образом, выдачу сообщений об ошибках именно на экран, а не в log-файлы. Там просто неудобно искать эти ошибки.

48

Знакомьтесь — РНР

 

 

 

В разделе Data Handling переменную register_globals = Off установим в On (рис. 17). Так мы сделали доступными для считывания переменные окружения непосредственно по их имени, а не через специальный массив переменных окружения.

Рис. 17. Настройка переменных окружения в файле php.ini

Теперь нужно указать путь к папке, в которой находятся наши модули расширения. Он задается в переменной extension_dir. Задайте его правильно, в соответствии с тем, где именно находится у вас папка с модулями. Если этот путь указан неправиль-

Переменные окружения — это параметры операционной системы, содержащие такие сведения, как имя диска, путь или имя файла. Например, переменная окружения TEMP задает папку, в которой хранятся временные файлы программ.

{Примеч. ред.)

Установка РНР

49

но, при загрузке ненайденного модуля РНР будет выдавать ошибку.

ВНИМАНИЕ

Полученный таким образом файл php.ini надо скопировать в директорию, в которой установлена Windows ( как правило, одноименная директория в корневом каталоге диска С). Именно там РНР будет искать этот файл. В последних версиях РНР его можно сохранить в директорию с установленным сервером Apache.

Учтите, что загрузка и использование дополнительных модулей может в значительной степени снижать производительность интерпретатора РНР. Лучше всего использовать в работе только те модули, которые нужны при работе сайта.

Теперь еще об одном важном моменте. Во всех руководствах по РНР написано, что данные, полученные из формы или переданные по ссылке вот так: name.phtml?a=l&b=2, автоматически становятся переменными РНР $а и $b. На самом деле это может быть не совсем так. Дело в том, что в целях безопасности, начиная с версии 4.1, РНР настраивается по умолчанию так, чтобы переданные значения не назначались переменным, потому что таким образом легко уничтожить уже существующие в скрипте переменные и взломать скрипт. Хотя это является сомнительным, так как нужные переменные всегда можно отследить и защитить, но все-таки это факт.

За назначение переменных отвечает параметр register _ globals в php.ini. Если register _ global s = On, то все полученные скриптом данные будут назначены соответствующим переменным. Если register _ global s = Off, то получить значение переменной можно, обратившись к массиву, соответствующему способу передачи данных в скрипт.

На этом установку можно считать завершенной. Осталось поговорить о некоторых удобствах.

Соседние файлы в предмете Программирование