На самом деле в установке и настройке связки apache + php + perl нету ничего сложного… Можете в этом убедиться сами. Итак, приступим.
Устанавливать будем apache22. Те кто дает предпочтение apache13 нужно будет только изменить директорию установки. В портах есть обе версии.
# cd /usr/ports/www/apache22/ # make install clean |
Из опций изменяю только:
[X] THREADS Enable threads support in APR [X] MYSQL Enable MySQL support for apr-dbd [ ] IPV6 Enable IPv6 support |
Кому необходимо, может включить поддержку PostgreSQL
[X] PGSQL Enable PostgreSQL support for apr-dbd |
Итак… Установка завершена. Не забываем перечитать пути:
# rehash |
Следуя указаниям порта, добавляем в /etc/rc.conf строку apache22_enable="YES"
# echo '# Web' >> /etc/rc.conf |
Приступаем к редактированию главного конфигурационного файла /usr/local/etc/apache22/httpd.conf
По умолчанию, он готов к использованию, но я рекомендую все-таки внести некоторые изменения.
ServerAdmin – директива, позволяющая задать адрес e-mail, который будет указываться в страницах ошибок, возвращаемых пользователям (рекомендую установить адрес администратора web-сервера).
ServerName – директива, которая позволяет задать имя хоста. Таким образом, при обращению к серверу, все относительные ссылки будут строиться на основании данного имени. Желательно задать здесь официальное DNS-имя сервера. Если директиву не задать, то Apache попытается сам определить ее значение на основании IP-адреса машины, что не всегда приводит к успешному и правильному результату. Обратите внимание, что данная директива используется также при виртуальном хостинге и позволяет определить настройки для виртуального хоста, имя которого будет получено в заголовке Host: http-запроса.
Остальные опции будем менять уже по ходу работы в случае необходимости.
Проверяем, все ли нормально с конфигурационным файлом и если все нормально, запускаем веб-сервер.
# apachectl configtest Syntax OK # apachectl start |
Проверяем, запустился ли демон:
# ps -ax | grep http 47234 ?? Ss 0:00.07 /usr/local/sbin/httpd -k start 47235 ?? I 0:00.00 /usr/local/sbin/httpd -k start 47236 ?? I 0:00.00 /usr/local/sbin/httpd -k start 47237 ?? I 0:00.00 /usr/local/sbin/httpd -k start 47238 ?? I 0:00.00 /usr/local/sbin/httpd -k start 47239 ?? I 0:00.00 /usr/local/sbin/httpd -k start |
Все в норме… Приступаем к установке PHP.
# cd /usr/ports/lang/php5 # make install clean |
Список опций:
Options for php5 5.2.10
[X] CLI Build CLI version |
По завершению установки перечитываем пути.
# rehash |
Итак, для того, чтобы apache поддерживал php, необходимо сделать то, что предлагает сам PHP по завершению установки:
Make sure index.php is part of your DirectoryIndex. |
Приступаем к редактированию /usr/local/etc/apache22/httpd.conf
Необходимо найти модуль dir_module и добавить для обработки index.php:
<IfModule dir_module> |
Теперь ищем модуль mime_module и добавляем типы приложений:
<IfModule mime_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps |
Создадим конфигурационный файл для PHP:
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini |
Перезапускаем Apache и смотрим, подключился ли PHP:
# sh /usr/local/etc/rc.d/apache22 restart Performing sanity check on apache22 configuration: Syntax OK Stopping apache22. Waiting for PIDS: 47234. Performing sanity check on apache22 configuration: Syntax OK Starting apache22. # tail –f /var/log/httpd-error.log [Mon Aug 10 01:37:37 2009] [notice] caught SIGTERM, shutting down [Mon Aug 10 01:37:40 2009] [notice] Digest: generating secret for digest authentication ... [Mon Aug 10 01:37:40 2009] [notice] Digest: done [Mon Aug 10 01:37:41 2009] [notice] Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.8e DAV/2 PHP/5.2.10 with Suhosin-Patch configured -- resuming normal operations |
Поздравляю. Связка Apache + PHP работает. Пора научить Apache "понимать" скрипты perl. Для этого необходимо установить дополнительный модуль Apache. Если установлен Apache 1.3, то необходим модуль mod_perl, если же установлен Apache 2.x, то необходим модуль mod_perl2
Приступим к установке.
# cd /usr/ports/www/mod_perl2/ # make install clean # rehash |
Добавим в /usr/local/etc/apache22/httpd.conf загрузку модуля mod_perl.so. Строка подгрузки модуля имеет такой синтаксис:
LoadModule perl_module libexec/apache22/mod_perl.so |
Куда именно разместить в конфигурационном файле Apache – думаю догадаться можно без проблем ;).
Также необходимо найти строку AddHandler cgi-script .cgi, расскоментировать ее и добавить обработку расширения pl. То есть после наших манипуляций данная строка должна иметь такой вид:
AddHandler cgi-script .cgi .pl |
Перезапускаем Apache, чтобы изменения вступили в силу.
# sh /usr/local/etc/rc.d/apache22 restart |
Смотрим что у нас получилось:
# tail –f /var/log/httpd-error.log [Mon Aug 10 02:42:21 2009] [notice] Apache/2.2.11 (FreeBSD) mod_ssl/2.2.11 OpenSSL/0.9.8e DAV/2 PHP/5.2.10 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.8.9 configured -- resuming normal operations |
На этом все… Основная настройка закончена. "Косметические" заморочки не описываю. У кого есть время – в гугле информации предостаточно.
Последние комментарии
21 неделя 6 дней назад
46 недель 20 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад