FreeBSD предоставляет множество возможностей для организации работы в сети интернет и не только. На сегодняшний день трудно представить интернет без Unix-систем, частью семейства которого является FreeBSD. Ранее был пост с описанием настройки сети FreeBSD, теперь пришло время поговорить о том, как настроить связку Apache + PHP + MySQL.
Весь процесс установки мы разделим на следующие основные шаги:
Приступаем к установке и настройке, первым делом обновляем порты. Коллекция портов — это набор файлов (makefile, патчи, описание и т.д.), которые хранятся в директории /usr/ports, и предназначены для построения, установки приложений во FreeBSD. Для получения коллекции портов, мы воспользуемся инструментом Portsnap.
Скачиваем snapshot основного дерева портов:
#portsnap fetch
Распаковываем дерево портов, используя команду:
#portsnap extract
Обновляем порты:
#portsnap update
После того как у нас будет свежая коллекция портов, мы приступим к установке из них нужных нам приложений.
Apache – приложение, выполняющее роль веб-сервера, он надёжен, гибок в плане настроек, кроссплатформенный, кроме того является свободно распространяемым программным обеспечением. Его популярность более чем велика в сети интернет.
Определим его местонахождение в коллекции портов, для этого воспользуемся командой whereis:
#whereis apache22
Результат выполнения команды будет примерно следующим:
apache22: /usr/ports/www/apache22
Проходим в указанный каталог:
#cd /usr/ports/www/apache22
Ставим Apache:
#make all install clean
После этого должно появиться меню с опциями для Apache, появляться их будет несколько в ходе компиляции.
Здесь вы можете включить / отключить поддержку различных дополнений, которые возможно потребуется для реализации вашей задачи. Символ «x» в квадратных скобках означает, что опция включена, переключать можно клавишей «пробел». Перемещаться между опциями можно клавишами «вверх — вниз».
Если Apache скомпилировался успешно, можно прописать основные настройки в его конфигурационном файле httpd.conf.
Открываем конфигурационный файл для редактирования:
#ee /usr/local/etc/apache22/httpd.conf
Примерно на строке 148 находим строку с записью:
#ServerName www.example.com:80
Раскомментируем запись (убираем символ «#» перед строкой), далее указываем свой домен, либо ip-адрес сервера (вместо www.example.com), по которому можно будет обращаться к сайту.
Выйти из редактора с сохранением изменений можно нажав клавиши «Ctrl+C», после чего ввести команду «exit».
Далее необходимо задать параметр apache22_enable в файле /etc/rc.conf:
#ee /etc/rc.conf
Вписываем:
apache22_enable=”YES”
Запускаем Apache:
#/usr/local/sbin/apachectl start
После успешного старта Apache следует проверить работу веб-сервера. Для этого открываем браузер на десктопе, с возможностью сетевого доступа к серверу, набираем адрес сервера, если сервер работает, в ответ придет тестовая страница с надписью «It works!».
Дополнительно рекомендую почитать документацию «Apache HTTP сервер».
Следующий наш шаг, это установка компилятора PHP. PHP – один из популярных сценарных языков программирования для сети Интернет (наряду с JSP, Perl, и языками используемыми в ASP.NET), благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Определяем местонахождение портов php:
#whereis php5
Результат, возвращаемый командной строкой:
php5: /usr/port/lang/php5
Ставим PHP5:
#make all install clean
Вам будет представлено меню с опциями выбора компонентов для PHP, в ходе компиляции их может быть несколько. Здесь вы можете включить дополнительные компоненты в установку PHP. Нам необходимо добавить пункт «APACHE» для связки PHP и Apache.
Затем, как PHP интерпретатор будет успешно установлен, необходимо в конфигурационный файл Apache (httpd.conf) прописать пару строк.
Открываем конфигурационный файл для редактирования:
#ee /usr/local/etc/apache22/httpd.conf
Добавляем строки:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Сохраняем сделанные изменения в конфигурационном файле, перезапускаем Apache:
#/usr/local/sbin/apachectl restart
Проверим, PHP скрипты должны отрабатываться интерпретатором. Попробуем создать тестовый файл-скрипт, и обратимся к нему через браузер. Наша публичная директория веб-сервера находиться по адресу /usr/local/www/apache22/data/, разместим в ней файл index.php:
#ee /usr/local/www/apache22/data/index.php
Впишем туда код:
<?php phpinfo(); ?>
Обращаемся к скрипту через браузер (набираем адрес_веб-сервера/index.php). Если всё работает, то результат работы функции phpinfo() будет показан в браузере, в виде таблицы с параметрами PHP.
Современный веб-сервер трудно представить без системы управления базами данных, таковой является MySQL.
MySQL – свободная реляционная СУБД, широко применяется различными приложениями для хранения данных. Одна из популярных систем хранения баз данных в сети интернет, так же широко используется различными движками сайтов.
Находим MySQL в дереве портов FreeBSD:
#whereis mysql55-server
Переходим в директорию, где находятся файлы, для установки MySQL:
#cd /usr/ports/databases/mysql55-server
Ставим MySQL сервер:
#make all install clean
После установки проверяем наличие записей параметров MySQL в информации выводимой функцией phpinfo().
PHP-Extensions — это расширения, которые устанавливаются для добавления функционала PHP. В него так же входят механизмы для работы с MySQL сервером, поэтому дополнение может быть весьма полезным.
Находим местонахождение PHP-extensions:
#whereis php5-extensions
Переходим в директорию портов:
#cd /usr/ports/lang/php5-extensions
Ставим расширения:
#make all install clean
Появиться конфигурационное меню, в котором следует выбрать поля MySQL и MySQLI, после чего на этапе компиляции так же будет показано несколько окон меню, там можно оставить всё как есть.
После успешной установки в «phpinfo» также появятся записи mysql и mysqli:
Итак, мы завершили установку связки Apache + PHP + MySQL. Стоит заметить, что здесь мы рассмотрели лишь «базовую» установку приложений. Как известно всё это дело так же можно настраивать под конкретные задачи, но в данном посту мы этого делать не будем. Вообщем, до скорого!