1) Ставим mysql.
#cd /usr/ports/database/mysql51-server && make install clean
После установки базы производим её инициализацию:
#mysql_install_db
#chown -R mysql:mysql /var/db/mysql
Добавляем в /etc/rc.conf строку для запуска и собственно запускаем:
#echo 'mysql_enable="YES"' >> /etc/rc.conf
#/usr/local/etc/rc.d/mysql-server start
2) Ставим Apache
#cd /usr/ports/www/apache22 && make install clean
Обязательно выбираем следующие опции, остальные – на усмотрение (кстати, perl установится автоматом, как зависимый пакет):
WITH_MYSQL=true
WITH_CGI=true
WITH_DBD=true
WITH_SSL=true
Сразу после установки сменим владельца для рабочей папки Web-сервера:
#chown -R www:www /usr/local/www
Теперь будем править конфиг апача (/usr/local/etc/apache22/httpd.conf). Изменить достаточно одну переменную, остальные можно оставить по умолчанию:
ServerName srv-test.domain.tld:80
Для возможности выполнения cgi-скриптов, нужно добавить эту возможность в конфиг (по дефолту она отключена). Приведём описание директивы для этого:
<Directory "/usr/local/www/apache22/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Теперь перейдём в каталог /usr/local/www/apache22/cgi-bin и сделаем всем файлам chmod +x для того, что бы их можно было выполнять. Да и вообще, для скриптов в этой папке права на файлы должны быть 755.
#echo 'apache22_enable="YES"' >> /etc/rc.conf
#/usr/local/etc/rc.d/apache start
3) Ставим PHP
#cd /usr/ports/lang/php5 && make install clean
Выбираем обязательно опции:
WITH_CGI=true
WITH_APACHE=true
WITH_FASTCGI=true
После установки добавляем строчку в /usr/local/etc/apache22/httpd.conf (по дефолту она добавляется, но лучше проверить 🙂 ):
LoadModule php5_module libexec/apache22/libphp5.so
а так же добавляем такое
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
и наконец, меняем все DirectoryIndex index.html на такие DirectoryIndex index.php index.html, то есть добавляем index.php, что бы php проверка запуска php скриптов осуществлялась раньше, чемhtml
После этого перечитываем конфиг апача:
#/usr/local/etc/rc.d/apache22 reload
Иногда, нужно в директиву <IfModule mime_module> добавить то же самое, что мы добавляли в<IfModule mod_php5.c>, а именно
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
После установки, рекоменду внести такие изменения в php.ini (это повысит безопасность вашего Web-сервера):
disable_functions = phpinfo, system, mail, exec
max_execution_time = 30
max_input_time = 60
memory_limit = 8M
post_max_size = 8M
upload_max_filesize = 2M
display_errors = Off
safe_mode = On
sql.safe_mode = On
safe_mode_exec_dir = /path/to/secure/dir
expose_php = Off
log_errors = On
allow_url_fopen = Off