Инструкция по настройке полноценного WEB-сервер на основе FreeBSD 11. В комплекте у нас MySQL 5.5, PHP-FPM 5.6.27 и Nginx. Никаких невероятных откровений по тюнингу и быстродействию Вы здесь не найдёте. Наша цель получить готовый WEB-сервер с полным набором приложений максимально простым путём. Поехали.
Установка MySQL 5.5
- Устанавливаем MySQL 5.5 из портов
#cd /usr/ports/databases/mysql55-server #make config-recursive install clean
Параметр config-recursive позволяет сразу выбрать составляющие всех подтянутых портов, чтобы после их выбора Вам осталось только ждать окончания установки.
- Добавляем в автозапуск
#nano /etc/rc.conf mysql_enable="YES"
- Запускаем MySQL сервер:
#service mysql-server start
- Проверяем статус MySQL
#service mysql-server status
Если всё хорошо, увидим что-то вроде
mysql is running as pid 83804.
pid может быть любой.
- Запускаем первоначальную настройку MySQL для удаления тестовых БД и задания пароля:
#mysql_secure_installation
- Проверяем работает ли указанный пароль:
#mysql -u root -p
Вводим пароль и видим, что в начале строки появилось
mysql>
MySQL работает! Идём дальше!
Установка PHP-FPM 5.6
- Устанавливаем PHP из портов
#cd /usr/ports/lang/php56 #make install clean
Обязательно ставим галочку Build FPM version. Ждём окончания установки.
- Ставим все расширения, которые могут нам понадобиться:
#cd /usr/ports/lang/php56-extensions #make config-recursive install clean
Обязательно в расширениях выберите MySQL!
- Добавляем PHP-FPM в автозагрузку FreeBSD:
#nano /etc/rc.conf php_fpm_enable="YES"
- Делаем небольшие правки конфигурационного файла PHP-FPM
#nano /usr/local/etc/php-fpm.conf ;listen = 127.0.0.1:9000 listen = /tmp/php-fpm.sock listen.owner = www listen.group = www listen.mode = 0660
Проверим, не ошиблись ли мы во время правки файла
php-fpm -t
Должны увидеть
[05-Nov-2016 14:54:06] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful
- Запускаем PHP-FPM:
service php-fpm start
и смотрим статус процесса
service php-fpm status
Уже 2 шага позади. Двигаемся дальше!
Установка Nginx
- Ничего не меняется, идём в порты и ставим
#cd /usr/ports/www/nginx #make install clean
- Сразу добавим Nginx в автозагрузку:
#nano /etc/rc.conf nginx_enable="YES"
- Правим nginx.conf. Для тестов сильно править стандартный конфиг мы не будем. Просто отметим места, которые НЕОБХОДИМЫ для запуска Nginx в связке с PHP-FPM. Тюнинг Nginx — отдельная тема! Отметим здесь следующие моменты: в секции localtion добавим index.php. Далее блок, отвечающий за PHP: здесь мы дописываем путь root как у location, к fastcgi_pass дописываем unix:/tmp/php-fpm.sock (который мы указали при настройке PHP-FPM в php-fpm.conf), остальное просто примите на веру!
server { location / { root /usr/local/www/nginx; index index.php index.html index.htm; } location ~ \.php$ { root /usr/local/www/nginx; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_param SCRIPT_NAME /index.php; include fastcgi_params; } }
- Проверяем правильность заполнения конфига:
#nginx -t
Должны увидеть:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
- В папке, которая у нас указана как корень сервера, создаём файл index.php, файл index.html удаляем. Содержимое index.php приведено ниже.
#rm /usr/local/www/nginx/index.html #nano /usr/local/www/nginx/index.php <?php phpinfo(); ?>
Этот файл, при запросе к нему, отдаст Вам всю информацию по серверу.
- Запускаем Nginx, проверяем статус
#service nginx start #service nginx status
- Запросим эту страницу через браузер, указав IP адрес сервера FreeBSD, например 10.10.10.100. Увидим страницу с фиолетовым заголовком, в котором будет красоваться
PHP Version 5.6.27. С Nginx закончили!
На этом всё. Полноценный WEB-сервер работает!