Установка Apache + PHP + MySQL на FreeBSD

Предположим что мы желаем развернуть платформу FAMP для веб сайтов различных, веб морд и прочего на нашем сервере с FreeBSD.
Использовать будем следующие версии ПО:

Apache будем использовать из ветки 2.2.x;

MySQL будем использовать из ветки 5.1.x;

PHP будем использовать из ветки 5.3.x;
Устанавливаем и настраиваем Apache
cd /usr/ports/www/apache22
make install clean

Options оставляем по умолчанию. Если что то из выключенных Options понадобится, всегда можно позже пересобрать, и включить нужные, запустив make config. Проверяем работает ли apache:
/usr/local/sbin/apachectl start

Заходим по адресу http://ip_сервера/ , если видим надписть It Works!, значит все в порядке, apache установился и работает.
Если же надпись отсутствует, читаем /var/log/httpd-error.log и пилим до победного.
Добавляем apache в автозапуск:
echo 'apache22_enable="YES"' >> /etc/rc.conf

Настраиваем ротацию логов для apache, добавляем в /etc/newsyslog.conf:
/var/log/httpd-access.log 644 7 * $D0 B /var/run/httpd.pid 30
/var/log/httpd-error.log 644 7 * $D0 B /var/run/httpd.pid 30

Подробнее о ротации логов apache смотрите в статье Apache - rotating log files.
устанавливаем и настраиваем MySQL

Сервер MySQL у нас будет по умолчанию работать в кодировке UTF8. Так удобнее для большинства web приложений. Устанавливаем собственно MySQL сервер:
cd /usr/ports/databases/mysql51-server
make BUILD_OPTIMIZED=yes WITH_OPENSSL=yes WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci WITH_XCHARSET=all
make install clean

Смотри куда класть конфиг:
mysqladmin

В выводе будут примерно такие строчки (среди прочих), что послужит нам руководством к действию:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf /usr/local/etc/mysql/my.cnf ~/.my.cnf

Копируем конфиг по умолчанию:
cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf

Добавляем UTF8 для клиентов по умолчанию:
[mysqld]
init-connect="SET NAMES utf8"
skip-character-set-client-handshake

Проверяем, установки кодировок по умолчанию:
mysql
mysql> show variables like "char%";

Мы должны увидеть что то вроде:
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
Устанавливаем пароль для администратора mysql

/usr/local/bin/mysqladmin -u root password 'сложный пароль'

Устанавливаем запуск mysql по умолчанию:
echo mysql_enable="YES" >> /etc/rc.conf

Запускаем mysql:
/usr/local/etc/rc.d/mysql-server start
Устанавливаем и настраиваем PHP

Устанавливаем собственно PHP:
cd /usr/ports/lang/php5
make install clean

Options оставляем по умолчанию. Если что то из выключенных Options понадобится, всегда можно позже пересобрать, и включить нужные, запустив make config.
Устанавливаем нужные нам расширения PHP:
cd /usr/ports/lang/php5-extensions && make config && make install clean

И отдельно устанавливаем расширение PHP для mysql:
cd /usr/ports/databases/php5-mysql && make install clean
cd /usr/ports/databases/php5-pdo_mysql && make install clean

Поскольку у нас PHP 5.3.x в Options включаем поддержку mysqlnd (MySQL native driver). Это обеспечит лучшую производительность при работе с MySQL.
Проверяем наличие в usr/local/etc/apache22/httpd.conf строчки:
LoadModule php5_module libexec/apache22/libphp5.so

И создаем файл /usr/local/etc/apache22/Includes/70_mod_php.conf следующего содержания:
<IfModule mime_module>
AddType application/x-httpd-php .php .php5 .phtml
AddType application/x-httpd-php-source .phps
</IfModule>

DirectoryIndex index.php index.phtml

Этот файл понадобится для опознания php приложений веб сервером по расширению файлов.

После чего копируем файл с примером настроек php в файл php.ini:
cp /usr/local/etc/php.ini-production /usr/local/etc/php/php.ini

Файл php.ini редактируем по своему вкусу.

После чего перезапускаем apache:
/usr/local/sbin/apachectl restart

http://jakshi.org.ua/dokuwiki/установка_apache_php_mysql

Обновлено: 12.03.2015