Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

web - tec / PHP 5 для начинающи

.pdf
Скачиваний:
119
Добавлен:
12.06.2015
Размер:
26.79 Mб
Скачать

Установка и использование PHP 43

Для каждого пакета, который необходимо обновить или установить, следует подставить имя файла в данной команде. Строка знаков # отражает на экране про+ цесс установки.

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

Компиляция PHP 5 из исходного кода

В данном случае в качестве метода установки PHP на Red Hat Fedora с Apache рас+ сматривается компиляция исходного кода PHP. Для этого можно использовать ко+ мандную строку и некоторые визуальные инструменты (например, Konqueror), вхо+ дящие в состав дистрибутива Red Hat Linux. В случае использования какого+либо графического пользовательского интерфейса Linux (например, KDE) активизировать интерфейс командной строки можно, нажав на кнопку Red Hat, а затем выбрав пунк+ ты меню System Tools Terminal. Окно терминала показано на рис. 1.1.

Рис. 1.1.

Для инсталляции PHP понадобится установленный компилятор (компилятор ANSI C). Иногда такой компилятор устанавливается как часть инсталляции Linux, однако если в системе нет такого компилятора, то на сайте www.gnu.org можно найти и получить

44 Глава 1

хороший (и бесплатный) компилятор, который называется gnugcc. На рис. 1.2 пока+ зан Web+сайт проекта GNU, а на рис. 1.3 ++++++ фрагмент документации для GCC.

После того как компилятор установлен, можно загружать исходный файл с сайта www.php.net. Данный файл представляет собой tar+архив, сжатый gzip, поэтому его необходимо распаковать. Также можно загрузить файл .bz2, однако потребуется только один из этих файлов ++++++ либо gzip, либо .bz2.

Рис. 1.2.

Чтобы просмотреть содержимое сжатого файла, можно использовать файловый менеджер Konquerer. На рис. 1.4 показано содержимое tar+файла.

Кроме того, Konquerer можно использовать для непосредственного копирования всех файлов, входящих в сжатый архив, в другой каталог, однако это впоследствии приведет к тому, что процесс компиляции по непонятным причинам аварийно за+ вершится (будут появляться странные сообщения, которые не помогут выяснить, в чем проблема). Вместо этого для разархивирования файлов лучше использовать сле+ дующую команду в терминале (рис. 1.5):

tar -xvzf php-5.0(остальная часть номера версии).tar.gz

Установка и использование PHP 45

Рис. 1.3.

Рис. 1.4.

46 Глава 1

Рис. 1.5.

Для перехода в каталог дистрибутива PHP 5 следует использовать команду cd: cd php-5.0(остальная часть номера версии)

После перехода в каталог php-5.0.0RC1 на экране появится много новых катало+ гов и файлов. Подробные инструкции, связанные с установкой, находятся в тексто+ вом файле INSTALL (рис. 1.6).

Для целей данной книги PHP устанавливается как динамический общий объект (Dynamic Shared Object ++++++ DSO), так чтобы не требовалось перекомпилировать сер+ вер Apache.

Последние версии Apache поддерживают DSO+объекты, кроме того, общие объек+ ты могут использоваться другими программами, такими как PostGreSQL. Компилиро+ вать PHP 5 как статический модуль не рекомендуется, хотя это и возможно. Если PHP статически связан, например, с Apache или PostGreSQL, каждую из этих программ придется перекомпилировать, прежде чем они смогут взаимодействовать с PHP. В общих объектах (DSO) можно легко изменять конфигурационные файлы программ без их перекомпиляции.

Установка и использование PHP 47

Рис. 1.6.

Проверка Apache для DSO-инсталляции

Прежде чем компилировать PHP 5 как DSO+объект, необходимо убедиться, что Apache установлен и настроен для работы с динамическими модулями. Для проверки Apache в терминале можно использовать следующую команду:

httpd -l

Должен появиться вывод наподобие вывода, показанного на рис. 1.7.

Если в выводе присутствует строка mod_so.c, то можно продолжать установку.

Запуск сонфигурационного сценария.

Внутри дистрибутивного каталога PHP 5 (под названием php-5.0.0RC1. или очень похожим) находится shell+сценарий configure. Данный сценарий принимает ряд ар+ гументов, позволяющих управлять функциями, которые будут поддерживаться PHP.

48 Глава 1

Этот сценарий необходимо запустить для того, чтобы сконфигурировать компиля+ цию, а не сам PHP 5 (конфигурация PHP задается в файле php.ini, который будет рассматриваться далее).

Рис. 1.7. Запуск конфигурационного сценария

Команды, доступные для конфигурационного сценария

По умолчанию задается конфигурация, которая позволяет компилировать PHP 5 как CGI+программу. Чтобы скомпилировать PHP 5 как статический модуль, использу+ ется флаг -with-apache; как DSO+объект ++++++ флаг -with-apxs. Здесь описывается компиляция с параметром -with_apxs (а фактически с параметром -with_apxs2, так как используется Apache 2).

Далее приводятся некоторые аргументы командной строки, которые можно ис+ пользовать для компиляции PHP 5. За конфигурационной командой ./configure (текущий каталог ./ необходимо указывать для того, чтобы система могла выполнить сценарий configure) после одного пробела вводятся некоторые или все необходи+ мые из перечисленных ниже параметров.

-enable-track-vars: автоматически заполняет ассоциативные массивы зна+ чениями, переданными как часть GET+ и POST+запросов или в cookie+файлах. -with-gd = /путь/к/каталогу: разрешает поддержку библиотеки GD, по+ зволяющей сценариям динамически создавать GIF+ и PNG+изображения. Мож+ но компилировать PHP с поддержкой GD, а можно добавить соответствующий модуль позднее (см. главу 16).

-with-mysql = /путь/к/каталогу: с поддержкой MySQL. -with-pgsql = /путь/к/каталогу: с поддержкой PostGreSQL.

Установка и использование PHP 49

Для быстрой инсталляции можно использовать только параметры -with-mysql и -with-apxs2. Если в процессе компиляции появится сообщение об ошибке, указы+ вающее на то, что какой+либо файл не найден, то следует указать полный путь к ката+ логу, содержащему данный файл (или файлы). Например, как правило, конфигураци+ онная команда находит путь к mysql, но если это не так, то можно указать полный путь к mysql как часть команды для запуска конфигурационного сценария.

Другие параметры конфигурации

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

./configure --help

и получить полный перечень используемых аргументов наряду с их описаниями.

Быстрая инсталляция (DSO)

Текстовый файл INSTALL рекомендует начинать инсталяцию с двух параметров: -with-mysql и -with-apxs. Для быстрой инсталляции следует запустить конфигу+ рационный сценарий следующим образом:

./configure –-with-mysql –-with-apxs

При работе с более новой версией Apache 2 необходимо использовать флаг --with-apxs2, а не --with-apxs. Сценарий информирует об этом, что весьма по+ лезно. Если прочесть все команды, появляющиеся в окне терминала во время выпол+ нения сценария, то можно отметить, что сценарий выполняет немало подобных про+ верок, прежде чем можно будет выполнить команду make.

После выполнения конфигурационного сценария необходимо ввести еще две команды:

make

make install

Команда install создает в каталоге /user/local/lib подкаталог с именем php, куда затем помещает копию каталога PEAR (репозиторий PHP+расширений и прило+ жений) и файла php.ini. На рис. 1.8 показано, как выглядит каталог php.

Использование дополнительных конфигурационных параметров

Для компиляции PHP 5 можно использовать несколько других параметров конфи+ гурационного сценария, например, enable_track_vars, with-gd и with_pgsql. Однако если есть необходимость использовать конфигурационные параметры для gd (графический модуль) и pgsql (база данных), то чтобы все работало правильно, сле+ дует убедиться, что данные программы также загружаются, а кроме того, необходимо указать полные пути к их каталогам.

Использование PHP как CGI-программы

PHP 5 компилируется как модуль в случае использования параметра -with-apache или -with-apxs2. Если при запуске конфигурационного сценария не использовать ссылок на Apache или apxs, то PHP будет скомпилирован как исполняемый бинарный CGI+файл. И если PHP 5 компилируется как CGI, то при установке бинарный файл фактически помещается в каталог /usr/local/bin. Его следует скопировать в ката+ лог cgi-bin, используя такую команду:

cp /usr/local/bin/php /usr/local/apache/cgi-bin/php.cgi

Это позволит программам, использующим Apache, запускать различные PHP+страницы для разных идентификаторов пользователя. Однако бюллетень CERT advisory CA+96.11 не рекомендует помещать какие+либо интерпретаторы (например, PHP 5) в каталог cgi-bin,

50 Глава 1

Рис. 1.8.

поскольку это позволяет осуществлять такие атаки на сервер, как доступ к системным файлам и Web+документам. При компиляции PHP 5 с параметром -with-apache созда+ ется интерфейс разработки серверных приложений (Server Application Programming Interface ++++++ SAPI), обеспечивающий более высокий по сравнению с CGI+методом уро+ вень производительности и безопасности.

Настройка Apache для работы с PHP

Чтобы установить Apache, необходимо воспользоваться соответствующими RPM+ пакетами или скомпилировать исходный код, но в большинстве случаев Apache постав+ ляется с Linux+дистрибутивами и соответствующим образом устанавливается в ходе ин+ сталляции Linux. Например, на моей инсталляции Red Hat Fedora Apache уже был уста+

новлен, и требовалось только проверить его, нажав кнопку Red Hat, выбрав пункты меню System Settings Server Settings Services (Системные настройки Параметры сер-

веров Службы). В появившемся списке необходимо найти строку httpd (рис. 1.9). httpd означает HTTP+демон. Демон ++++++ название служб, работающих на Linux+

машинах в фоновом режиме. Таким образом, httpd означает HTTP*служба, работаю* щая в фоновом режиме, например, Web+сервер.

Если используется графический пользовательский интерфейс Linux (например, KDE), то следует щелкнуть на пункте httpd, чтобы проверить, запущена ли данная служба. В противном случае ее необходимо запустить, а затем ввести в браузере адрес http://localhost и нажать Enter. После этого в браузере должна появиться стра+ ница наподобие показанной на рис. 1.10.

Установка и использование PHP 51

Рис. 1.9.

Если Apache еще не установлен, то для его инсталляции можно использовать сле+ дующие команды в окне терминала:

lynx http://httpd.apache.org/download.cgi gzip -d httpd-2_0_NN.tar.gz

tar xvf httpd-2_0_NN.tar

./configure––prefix=PREFIX make

make install

vi PREFIX/conf/httpd.conf PREFIX/bin/apachectl start

NN необходимо заменить на второстепенный номер версии, а вместо PREFIX под+ ставить корректный путь установки Apache (по умолчанию используется путь

/usr/local/apache2).

Конфигурирование Apache для работы с PHP 5

Если PHP 5 устанавливается в качестве DSO+объекта (как в рассматриваемой здесь инсталляции), то необходимо проверить наличие нескольких записей в конфигура+ ционном файле Apache (он называется httpd.conf). В Fedora данный файл находит+ ся в каталоге /etc/httpd/conf. Файл httpd.conf следует открыть в любом тексто+ вом редакторе и модифицировать.

Во+первых, необходимо убедиться, что в Apache+сервере разрешено использовать PHP. Среди строк, начинающихся с LoadModule, должна присутствовать подобная строка:

LoadModule php5_module /usr/local/apache/lib/libphp5.so

Если такой строки нет, то ее необходимо добавить; если же задан неверный путь, его нужно исправить. Чтобы найти каталог, в который во время компиляции был помещен

файл libphp5.so, можно воспользоваться Konqueror, выбрав в нем пункты меню Tools Find file (Сервис Найти файл). Обычно файл libphp5.so помещается в каталог

/usr/lib/httpd/modules

52 Глава 1

Рис. 1.10.

Эти сведения нужны для того, чтобы указать Apache, как выполнять PHP+ сценарии. Для этого в конфигурационный файл Apache httpd.conf добавляется ин+ струкция загрузки PHP 5 ++++++ LoadModule с указанием найденного только что пути. Эту инструкцию можно вставить после любой другой строки LoadModule.

LoadModule php5_module /usr/lib/httpd/modules/libphp5.so

Теперь, когда Web+сервер ‘‘знает’’, как загружать PHP 5, необходимо активизиро+ вать PHP в Apache. В следующем файле имеется раздел, строки которого начинаются с AddModule. Если в файле есть строка ClearModulesList, то необходимо добавить в файл следующую строку. Не имеет значения, куда будет вставлена данная строка, однако ее лучше располагать поближе к другим строкам AddModule, в дальнейшем это облегчит к ней доступ.

AddModule mod_php5.c

Строку AddModule вставлять необязательно, если нет строки ClearModulesList. Наконец, необходимо указать Apache, как распознавать PHP+программы по рас+ ширению файла. В конфигурационном файле имеется несколько директив, начи+ нающихся с AddType. В конце этого раздела необходимо добавить следующую строку:

AddType application/x-httpd-php .php

Она означает, что все файлы, имеющие расширение .php, являются PHP+ программами. Теперь, когда конфигурирование закончено, следует сохранить файл.

Соседние файлы в папке web - tec