Apache php5 perl - встановлення, налаштування та інтеграція

Насправді в установці і налаштуванні зв'язки немає 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 #echo 'apache22_enable="YES"' >> /etc/rc.conf

Починаємо редагувати головний конфігураційний файл/usr/local/etc/apache22/httpd.conf

За замовчуванням він готовий до використання, але я рекомендую все-таки внести деякі зміни.

Інші опції будемо змінювати вже по ходу роботи у разі потреби.

Перевіряємо, чи все нормально з файлом конфігурації і якщо все нормально, запускаємо веб-сервер.

# 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 #зробити інсталяцію чистою

Параметри для php5 5.2.10

[X] CLI Build CLI version [X] CGI Build CGI version [X] APACHE Build Apache module [ ] DEBUG Увімкнути налагодження [X] SUHOSIN Увімкнути систему захисту Suhosin (не для в'язниць) ) [X] MULTIBYTE Увімкнути багатобайтову підтримку zend [ ] IPV6 Увімкнути підтримку ipv6 [ ] MAILHEAD Увімкнути виправлення заголовка електронної пошти [ ] ПЕРЕДПРАВЛЕННЯ Увімкнути підтримку force-cgi-redirect (лише CGI) [ ] DISCARD Увімкнути підтримку шляху відхилення (тільки CGI) [X] FASTCGI Увімкнути підтримку fastcgi (лише CGI) [X] PATHINFO Увімкнути підтримку перевірки інформації про шлях (тільки CGI)

По завершенню установки перечитываем шляхи.

#повторити

Для того, щоб Apache підтримував php, необхідно зробити те, що пропонує сам PHP для завершення встановлення:

Переконайтеся, що index.php є частиною вашого DirectoryIndex. До файлу конфігурації Apache слід додати наступне: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

Приступаємо до редагування/usr/local/etc/apache22/httpd.conf Необхідно знайти модуль dir_module і додати для обробкиindex.php :

DirectoryIndex index.htm index.html index.php index.php3 index.php4 index.php5

Тепер ищем модуль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 Додатковий контроль за допомогою apache22 Syntax OK Stopping apache22. Waiting for PIDS: 47234. Додатковий контроль безпеки на 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.1 OpenSSL/0.9.8e DAV/2 PHP/5.2.10 з 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

На цьому все… Основне налаштування закінчено. "Косметичні" проблеми не описую. У кого є час – у гугле інформації достатньо.