Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2.1. Установка на системы Unix

Данный раздел поможет вам полностью изучить принципы установки РНР на операционную систему Unix.

Если у вас нет никакого опыта работы с Unix, вы можете попросить кого-либо, имеющего хотя бы немного знаний по Unix, помочь вам с установкой модуля. Процесс инсталляции настолько прост, насколько это возможно, но так как программное обеспечение сильно различается и зависит от ряда компонентов системы, установка не всегда проходит гладко на разных системах.

Имеется несколько способов установки РНР для платформы Unix — включающий компиляцию и конфигурирование или с использованием пакетных методов. В этой книге основной упор делается на процесс компиляции и конфигурирования РНР.

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

• установка как модуля Apache;

• установка как модуля fhttpd;

• для использованиОЬБеег, NSAPI, phttpd,Pi3Web, Roxen, thttpd, or Zeus;

• как исполняемый модуль CGI.

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

При установке можно выбрать аргументы для добавления в configure на строке 8 из полного списка опций конфигурации (см. приложение А). Обратите внимание, что вместо соответсвующей версии стоят 'ххх'. При установке необходимо просто заменить 'ххх' на корректное значение версии Apache или РНР.

1. gunzip apache_xxx.tar.gz

2. tar -xvf apache_xxx.tar

3. gunzip php-xxx.tar.gz

4. tar -xvf php-xxx.tar

5. cd apache_xxx

6 . . /configure—prefix=/www—enable-module = so

7. make

8. make install

9. cd .. /php-xxx

10. ./configure-with-mysql — with-apxs=/www/bin/apxs

11. make

12. make install

Если вы решите изменить опции конфигурации после инсталляции, вам нужно будет только повторить последние три шага. Необходимо перезагрузить Apache, чтобы новый модуль заработал. Переустановка Apache не нужна.

13. ср php.ini-dist /usr/local/lib/php.ini

Вы можете редактировать ваш INI-файлдля установки опций РНР. Если вы предпочитаете иметь этот файл в другом месте, используйте -with-config-file-path=/path начиная со строки 8.

14. Отредактируйте httpd. conf или srm. conf и проверьте, что эти строки имеются и не закомментированы:

AddType application/x-httpd-php.php LoadModule php4_module libexec/libphp4.so

Вы можете выбрать здесь любое расширение файлов. Мы рекомендуем .php. Можете включить даже .html, a .php3 можно добавить для обеспечения обратной совместимости.

Путь с правой стороны оператора LoadModule обязан указывать на РНР-модуль на вашей системе. Выше указанный оператор корректен для предыдущих шагов.

15. Используйте вашу обычную процедуру старта сервера Apache. Если он уже запущен, то необходимо остановить его и загрузить сервер заново.

В зависимости от варианта установки Apache и вида Unix есть много вариантов остановки и перезагрузки сервера. Ниже даны типичные строки, используемые для перезагрузки сервера, для различных установок apache/unix. Вы должны заменить /path/to/ на путь к этим приложениям на вашей системе.

1. Разные варианты Linux и SysV:

/etc/rc.d/init.d/httpd restart

2. Использование скриптов apachectl:

/path/to/apachectl stop

/path/to/apachectl start

3. httpdctl и httpsdctl (с использованием OpenSSL) аналогично apachectl:

/path/to/httpsdctl stop

/path/to/httpsdctl start

4. Используя mod_ssi или иной SSL-сервер, вы можете вручную остановить и перезагрузить:

/path/to/apachectl stop

/path/to/apachectl startssl

Расположение двоичных часто Если

ваша система имеет команды locate, whereis или which, они могут вам помочь найти программы управления вашим сервером.

Далее идут примеры компиляции РНРдля Apache.

./configure — with-apxs —with-pgsql

Это создаст библиотеку libphp4.so, которая загружается в Apache с использованием строки LoadModule в файле конфигурации Apache httpd. conf. Поддержка PostgreSQL встроена в эту библиотеку libphp4.so.

./configure —with-apxs —with-pgsql=shared

Это создаст библиотеку libphp4.so для Apache, а также библиотеку pgsql.so, которая загружается в РНР путем использования директивы расширения /extension в файле php. ini либо загрузкой ее в скрипт явным образом с использованием функции dl().

./configure —with-apache=/path/to/apache_source —with-pgsql

Это создаст библиотеку libphp4.so, mod_php4.с и некоторые сопутствующие файлы и скопирует их в директорию src/modules/php4 вдереве ресурсов Apache.

Затем вы компилируете Apache с использованием -activate-module=src/modules/php4/libphp4.a, и система построения Apache создаст libphp4.a и свяжет ее статически с двоичным httpd. Поддержка PostgreSQL включена непосредственно в этот двоичный httpd, так что окончательным результатом здесь является единственный двоичный httpd, который содержит все из Apache и все из РНР.

./configure -with-apache=/path/to/apache_source -with-pgsql=shared

То же самое, только вместо включения поддержки PostgreSQL непосредственно в окончательный httpd вы получите библиотеку pgsql.so, которую можете загрузить в РНР из php.ini либо напрямую через использование dl().

При выборе варианта установки РНР вы должны рассмотреть преимущества и недостатки каждого метода. При установке как CGI вы сможете компилировать Apache независимо и не должны ничего рекомпилировать, если добавите или измените РНР. Встраивание РНР в Apache (статический метод) означает, что РНР будет загружаться и работать

Для более наглядного представления процесса установки РНР как модуля Apache, мы приведем вам локаничную последовательность действий для установки. Материал мы использовали с популярного сервера документации net с ного разрешения автора. В дальнейшем мы будем пользоваться такой же методикой, для того чтобы более точно можно было представить последовательность действий при установке и не совершить какой-либо ошибки:

1) gunzip apache_1.3.х.tar.gz

2) tar xvf apache_1.3.x.tar

3) gunzip php-x.x.x.tar.gz

4) tar xvf php-x.x.x.tar

5) cd apache_1.3.x

6) ./conf igure — pref ix=/www

7) cd ../php-х.x.x

8) ./configure-with-mysql —with-apache=../apache_1.3.x —enable-track-vars

9) make

10) make install

11) cd ../apache_1.3.x

12) ./configure—activate-module=src/modules/php4/libphp4.a

13) make

14) make install

15) cd ../php-x.x.x16) ср php.ini-dist /usr/local/lib/php.ini

17) Отредактируйте ваш httpd Apache conf/srm.conf файл и добавьте строку

AddType application/x-httpd-php.php

18) Воспользуйтесь обычной процедурой для перезагрузки сервера Apache.

После того как PHP-модуль установлен и вся конфигурация полностью настроена, можно приступить к выполнению программ.


ВНИМАНИЕ

Когда РНР установлен как CGI, может возникнуть следующая проблема: РНР не понимает некоторые глобальные переменные ($PHP_AUTH_USER $PHP_AUTH_PW и т. д.). Поэтому, если вдруг у вас возникла необходимость работы с глобальными переменными, просто устанавливайте РНР в качестве модуля Apache.


<< Предыдущий параграф Следующий параграф >>
Оглавление