Установка веб-сервера на FreeBSD (т.н. FAMP - Freebsd, Apache, MySQL, PHP)

В этой статье описаны основные шаги, которые необходимо выполнить, чтобы настроить веб-сервер на FreeBSD.

Данная статья предполагает, что все комманды выполняются в консоли FreeBSD, которая имеет доступ в интернет. Все комманды запускаются от пользователя root.

------------------ I. Настройка FreeBSD -----------------

Текущая система
zg# uname -ri
7.2-RELEASE GENERIC

Синхронизируем время
zg# ntpdate ntp.ru

Обновляем порты
zg# csup -h cvsup6.ru.freebsd.org /usr/share/examples/cvsup/ports-supfile

------------------ II. Установка MySQL -----------------

Ставим MySQL из пакета
zg# pkg_add -r mysql51-server

Обновляем системные пути
zg# rehash

Устанавливаем начальные базы данных, необходимые для работы MySQL
zg# mysql_install_db --user=mysql

Устанавливаем конфиг
zg# cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf

Включаем демона MySQL
zg# echo 'mysql_enable="YES"' >> /etc/rc.conf

Стартуем MySQL
zg# /usr/local/etc/rc.d/mysql-server start

------------------ III. Установка Apache -----------------

Переходим в порт апача
zg# cd /usr/ports/www/apache22

Ставим порт в "тихом" режиме
zg# make BATCH=yes install clean

Включаем демон, но пока не стартуем! Прежде надо собрать пхп.
zg# echo 'apache22_enable="YES"' >> /etc/rc.conf

------------------ IV. Установка PHP -----------------

Переходим в порт пхп
zg# cd /usr/ports/lang/php5/

Устанавливаем порт с запросом опций, чтобы отметить в списке Apache (см. скриншот)
zg# make config install clean

Переходим в порт пхп-модулей
zg# cd /usr/ports/lang/php5-extensions/

Запускаем выбор опций
zg# make config

Для нормальной работы веб-сервера, я бы порекомендовал следующие модули:
GD          GD library support
DOM         DOM support
ICONV       iconv support
MBSTRING    multibyte string support
MYSQL       MySQL database support
PCRE        Perl Compatible Regular Expression support
SIMPLEXML   simplexml support
SESSION     session support
XML         XML support

Также желательно отключить модуль dba, поскольку он часто мешает нормальной
сборке.

Устанавливаем порт в "тихом" режиме
zg# make BATCH=yes install clean

Устанавливаем конфиг пхп
zg# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

------------------ IV. Настройка Apache -----------------

Создаём виртуальный хост
zg# ee /usr/local/etc/apache22/Includes/0-virtualhost.conf

<VirtualHost *:80>
    <IfModule mod_php5.c>
        AddType application/x-httpd-php .php
        DirectoryIndex index.php index.html index.htm
    </IfModule>
    ServerAdmin some@admin
    DocumentRoot "/usr/local/www/default/docs"
    <Directory "/usr/local/www/default/docs">
         AllowOverride All
         Order Deny,Allow
         Allow from all
    </Directory>
    ServerName localhost
</VirtualHost>

Создаём папку, в которой будет находится хост
zg# mkdir -p /usr/local/www/default/docs

Создаём индексный файл
zg# echo '<?php phpinfo()?>' > /usr/local/www/default/docs/index.php

Меняем владельца для папки хоста
zg# chown -R www:www /usr/local/www/default/docs

Обновляем системные пути
zg# rehash

Проверяем конфиг апача
zg# apachectl configtest
Syntax OK

Запускаем апач! Если всё сделано правильно, то сервер должен заработать.
zg# /usr/local/etc/rc.d/apache22 start

Дата публикации: 6 сентября 2009 года.

Дополнительно

Опции конфигурации для PHP

Опции конфигурации для PHP


Работоспособный PHP

Работоспособный PHP