Установка веб-сервера из портов FreeBSD
Понедельник, 20 ноября 2006 (00:46:52)
Короткая заметка о том, как настроить под свои нужды PHP на веб-сервере Apache для использования MySQL, сессий и функций preg_ под управлением ОС FreeBSD. Решение проблем вида “Call to undefined function …”
Нет ничего сложного в установке веб-сервера на платформе FreeBSD 5.3, всё ставится из портов, проблемы возникают при установке PHP. После установки из портов Apache 1.3.33, MySQL 4.1.5-gamma и PHP 4.3.9, при попытке обратиться к базе данных, возникает ошибка Call to undefined function mysql_connect(). Это происходит из-за того, что по умолчанию, порт PHP собран без поддержки MySQL. Это легко проверить, создав в корневой директории веб-сервера файл index.php следующего содержания:
<? phpinfo(); ?>
Ошибка Call to undefined function preg_replace() и ей подобные решаются с помощью конфигурации с опцией –with-pcre-regex. Для того, чтобы PHP мог работать с MySQL, сессиями (–enable-sessions) и функциями preg_ необходимо пересобрать его из исходников следующим образом:
# tar zxvf php-4.3.9.tar.gz # cd php-4.3.9 # ./configure --enable-versioning --enable-memory-limit --with-layout=GNU--with-config-file-scan-dir=/usr/local/etc/php --disable-all --with-regex=php --disable-cli --with-apxs=/usr/local/sbin/apxs --prefix=/usr/local --with-mysql=/usr/local --with-pcre-regex --enable-sessions # make # make install
После инсталляции добавьте в mime.types:
application/x-httpd-php .php application/x-httpd-php-source .phps
И перезагрузите сервер командой apachectl restart.