Доброго всем времени суток.Проблема такая: ставлю Apache, потом PHP c клиентом Оракла. При попытке через броузер открыть файл *.php Арасhе не вызывает интерпретатор ПХП для разборки этого файла, а нагло суёт его клиенту (в броузер).
Последовательность установки такая:
1. Чистая FreeBSD 6.2.
2. С ftp://ftp.freebsd.org качаю и устанавливаю следущее:
- libiconv-1.9.2_2
- libxml2-2.6.30
- oracle8-client-0.1.1_1
- perl-5.8.8
- pkg-config-0.22
- openssl-0.9.8e_1.tbz
3. С http://httpd.apache.org качаю исходники Араche 2.2.6
4. С http://www.php.net качаю исходники php-5.2.4
5. По материалам статьи http://www.opennet.me/openforum/vsluhforumID8/4334.html совершаю следующее шаманство:
setenv LDFLAGS "-lpthread -L/usr/local/oracle8-client/lib -lclntst8 -lcompat -lm"
6. Компилирую Апач вот так:
./configure --enable-MODULE=shared --enable-ssl --disable-actions --disable-alias --disable-asis --disable-auth --disable-autoindex --disable-access --disable-cgid --disable-charset-lite --disable-env --disable-imagemap --disable-include --disable-log-config --disable-negotiation --disable-setenvif --disable-status --disable-userdir --enable-so
7. Компилирую ПХП вот так:
./configure --prefix=/usr/php524 --with-regex=php --disable-all --enable-libxml --with-libxml-dir=/usr/locall --with-apxs2=/usr/local/apache2/bin/apxs --disable-ipv6 --with-zlib --enable-zip --with-oci8=/usr/local/oracle8-client
При этом ещё исправляю файл
cd ext/oci8
EDIT oci8_lob.c, near line 340
add compiler commands to make text:
===================================
if (is_clob) {
#ifdef OCI_NLS_CHARSET_MAXBYTESZ
PHP_OCI_CALL_RETURN(connection->errcode,
OCINlsNumericInfoGet, (connection->env, connection->err, &bytes_per_char,
OCI_NLS_CHARSET_MAXBYTESZ));
if (connection->errcode != OCI_SUCCESS) {
php_oci_error(connection->err, connection->errcode TSRMLS_CC);
PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
return 1;
}
#else
bytes_per_char = 4;
#endif
} else {
/* BLOBs don't have encoding, so bytes_per_char == 1 */
}
===================================
added lines:
#ifdef OCI_NLS_CHARSET_MAXBYTESZ
#else
bytes_per_char = 4;
#endif
===================================
8. Компиляция ошибок не выдаёт, модуль libphp5.so появляется в ..../apache2/modules, в httpd.conf прописывается:
LoadModule php5_module modules/libphp5.so
туда же я прописываю ручками:
AddType application/x-httpd-php5 .php
AddType application/x-httpd-php5-source .phps
AddHandler application/x-httpd-php5 .php .php5 .php4 .php3 .phtml
DirectoryIndex insex.html index.php
9. запускаю Апач, он стартует с одним предупреждением:
[Wed Oct 24 22:55:42 2007] [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter
10. При попытке открыть *.html файл всё классно, а при попытке открыть *.php - увы, только передача содержимого файла на клиента.
Конфигурация Апача:
# /usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_filter.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_cgi.c
mod_dir.c
mod_so.c
При попытке поставить Апач из портов - ситуация такая же (пытался ещё 2.0.61 поставить).
Вопросы такие:
1. Если кто сталкивался с такой проблемой (апач вместо парсинга пхп-файла передаёт его на клиента) - напишите плииииз...
2. Если кто знает, как вкомпилить ПХП 5 в Апач 2.2.6 статически напишите пожалуйста.
RTFM читал, ответов не нашёл....