четверг, 3 марта 2011 г.

Настройка web сервера на базе Apache 2.2, php 5.3 и php5-extensions 1.4

Цель: поднять веб сервер в локальной сети для веб интерфейсов другого ПО
Инструменты: FreeBSD 8.1, Apache 2.2, php5, php5-extensions 1.4


Решение:
0 Обновление системы
Если FreeBSD свежеустановленная, то необходимо обновить дерево портов следующим образом:
#portsnap fetch extract
Если обновление уже проводилось, то достаточно выполнить:
#portsnap fetch update
1 Установка Apache 2.2
#cd /usr/ports/www/apache22
#make install clean
IPV6
AUTH_BASIC
AUTH_DIGEST
AUTHN_FILE
AUTHN_DBM
AUTHN_ANON
AUTHN_DEFAULT
AUTHN_ALIAS
AUTHZ_HOST
AUTHZ_GROUPFILE
AUTHZ_USER
AUTHZ_DBM
AUTHZ_OWNER
AUTHZ_DEFAULT
CACHE
DISK_CACHE
FILE_CACHE
DAV
DAV_FS
ACTIONS
ALIAS
ASIS
AUTOINDEX
CERN_META
CGI
CHARSET_LITE
DEFLATE
DIR
DUMPIO
ENV
EXPIRES
HEADERS
IMAGEMAP
INCLUDE
INFO
LOG_CONFIG
LOGIO
MIME
MIME_MAGIC
NEGOTIATION
REWRITE
SETENVIF
SPELING
STATUS
UNIQUE_ID
USERDIR
USERTRACK
VHOST_ALIAS
FILTER
VERSION
PATCH_PROXY_CONNECT
SSL
REQTIMEOUT
Добавление в автозапуск:
#ee /etc/rc.conf
apache22_enable="YES"
Запуск:
#/usr/local/sbin/apachectl start
Возможные ошибки в работе Apache 2.2 под FreeBSD 8.1:
если выдает ошибку:
[Wed Nov 17 00:27:11 2010] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
то:
#ee /boot/defaults/loader.conf
accf_data_load="YES" # Wait for data accept filter
accf_http_load="YES" # Wait for full HTTP request accept filter
Подгружаем модуль, чтобы не перезагружаться
#kldload accf_http.ko
если выдает:
    httpd: apr_sockaddr_info_get() failed for
то:
#ee /usr/local/etc/apache22/httpd.conf
ServerName apachetest.com:80
если после этого команду запуска съедает но в процессах нет, читаем:
#tail /var/log/httpd-error.log
если там:
[alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of
то:
#ee /usr/local/etc/apache22/httpd.conf
и закомментировать строку
#LoadModule unique_id_module libexec/apache22/mod_unique_id.so
если:
Configuration Failed
то:
#ee /etc/hosts
127.0.0.1               apachetest.com
если:
[warn] Init: Session Cache is not configured [hint: SSLSessionCache]
то:
#ee /usr/local/etc/apache22/httpd.conf
#LoadModule ssl_module libexec/apache22/mod_ssl.so
 2 Установка php 5
#cd /usr/ports/lang/php5
#make install clean
CLI
CGI
APACHE
SUHOSIN
Проверка, включен ли модуль php5 в конфиге Apache22
#ee /usr/local/etc/apache22/httpd.conf
LoadModule php5_module        libexec/apache22/libphp5.so
#service apache22 restart
Performing sanity check on apache22 configuration:
Syntax OK
Stopping apache22.
Waiting for PIDS: .
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22
3 Установка php5-extensions
#cd /usr/ports/lang/php5-extensions
#make instal clean
BCMATH
CTYPE
CURL
DOM
FILEINFO
FILTER
FTP
GD
GETTEXT
HASH
ICONV
IMAP
JSON
MBSTRING
MCRYPT
MYSQL
OPENSSL
PDF
PDO
PDO_SQLITE
POSIX
SESSION
SIMPLEXML
SOCKETS
SQLITE
TOKENIZER
XML
XMLREADER
XMLRPC
XMLWRITER
XSL
ZIP
ZLIB
Необходимо добавить в конфиг Apache22 следующее:
#ee /usr/local/etc/apache22/httpd.conf
<IfModule mod_php5.c>
 DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
</IfModule>
Перезапуск Apache22
#service apache22 restart

Комментариев нет:

Отправить комментарий