Наверх

База знаний
Try 2 Fix
beta

FreeBSD 11: WEB-сервер своими руками. MySQL 5.5 + Nginx + PHP-FPM 5.6

Инструкция по настройке полноценного WEB-сервер на основе FreeBSD 11. В комплекте у нас MySQL 5.5, PHP-FPM 5.6.27 и Nginx. Никаких невероятных откровений по тюнингу и быстродействию Вы здесь не найдёте. Наша цель получить готовый WEB-сервер с полным набором приложений максимально простым путём. Поехали.

Установка MySQL 5.5

  1. Устанавливаем MySQL 5.5 из портов
    #cd /usr/ports/databases/mysql55-server
    #make config-recursive install clean

    Параметр config-recursive позволяет сразу выбрать составляющие всех подтянутых портов, чтобы после их выбора Вам осталось только ждать окончания установки.

  2. Добавляем в автозапуск
    #nano /etc/rc.conf
    
    mysql_enable="YES"
  3. Запускаем MySQL сервер:
    #service mysql-server start
  4. Проверяем статус MySQL
    #service mysql-server status

    Если всё хорошо, увидим что-то вроде

    mysql is running as pid 83804.

    pid может быть любой.

  5. Запускаем первоначальную настройку MySQL для удаления тестовых БД и задания пароля:
    #mysql_secure_installation
  6.  Проверяем работает ли указанный пароль:
    #mysql -u root -p

    Вводим пароль и видим, что в начале строки появилось

    mysql>

MySQL работает! Идём дальше!

Установка PHP-FPM 5.6

  1. Устанавливаем PHP из портов
    #cd /usr/ports/lang/php56 
    #make install clean

    Обязательно ставим галочку Build FPM version. Ждём окончания установки.

  2. Ставим все расширения, которые могут нам понадобиться:
    #cd /usr/ports/lang/php56-extensions
    #make config-recursive install clean

    Обязательно в расширениях выберите MySQL!

  3. Добавляем PHP-FPM в автозагрузку FreeBSD:
    #nano /etc/rc.conf php_fpm_enable="YES"
  4. Делаем небольшие правки конфигурационного файла 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
  5. Запускаем PHP-FPM:
    service php-fpm start

    и смотрим статус процесса

    service php-fpm status

    Уже 2 шага позади. Двигаемся дальше!

Установка Nginx

  1. Ничего не меняется, идём в порты и ставим
    #cd /usr/ports/www/nginx
    #make install clean
  2. Сразу добавим Nginx в автозагрузку:
    #nano /etc/rc.conf
    
    nginx_enable="YES"
  3. Правим 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;
       }
    }
    
  4. Проверяем правильность заполнения конфига:
    #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
  5. В папке, которая у нас указана как корень сервера, создаём файл index.php, файл index.html удаляем. Содержимое index.php приведено ниже.
    #rm /usr/local/www/nginx/index.html
    #nano /usr/local/www/nginx/index.php
    
    <?php
       phpinfo();
    ?>

    Этот файл, при запросе к нему, отдаст Вам всю информацию по серверу.

  6. Запускаем Nginx, проверяем статус
    #service nginx start
    #service nginx status
  7. Запросим эту страницу через браузер, указав IP адрес сервера FreeBSD, например 10.10.10.100. Увидим страницу с фиолетовым заголовком, в котором будет красоваться

    PHP Version 5.6.27. С Nginx закончили!

    На этом всё. Полноценный WEB-сервер работает!

Остались вопросы?

Лоджик Флоу


Аутсорсинг / Системное администрирование / Техническая поддержка / Сопровождение 1С:Предприятие

+7 (8634) 383-490 / +7 (906) 430-7000
mail@logicflow.ru

Что-то пошло не так? Специалисты нашей компании помогут Вам разобраться с возникшими проблемами! Обращайтесь! →

Также Ваши вопросы Вы можете задать в нашей группе ВК или на нашем YouTube канале!

Эти статьи будут Вам интересны

«Синий экран смерти» BSOD 0x00000044: MULTIPLE_IRP_COMPLETE_REQUESTS

Не пытайтесь понять, что означает это загадочное MULTIPLE_IRP_COMPLETE_REQUESTS. Мы вот даже не пытались, слишком это сложно (хотя Википедия ответит на Ваши вопросы). Что мы получали: неожиданные вылеты при работе в Windows с "синим экраном смерти" с кодом 0x00000044. Вариантов решения проблемы мы сами нагуглили достаточно много и эти варианты были очень уж разными. Рассказываем, что именно помогло решить эту проблему в нашем конкретном случае.

Получение доступа к операционной системе навигатора (Windows CE 6.0)

Эмуляторы для тестирования и отладки приложений Windows CE 6.0 - это, конечно, хорошо, но нет ничего лучше реального железа. Покупать каждый раз целевые устройства более чем за 1000 долларов нерентабельно (да и просто мы жадные), поэтому отладку ПО можно производить на дешёвых устройствах. Для этих целей мы приобрели GPS навигатор за 1500 рублей. В навигатор зашито программное обеспечение вендора, из-за которого ни операционной системы, ни файловой системы не видно. При подключении к ПК устройство определяется как флеш-накопитель, что не очень нам подходит. Решаем эту проблему в несколько кликов!

Памятка, которая сэкономит Вам время и деньги при работе в Интернете

Всё, что Вы увидите ниже, для многих опытных пользователей не будет откровением. Мы раздаём такие памятки людям, которые работают в сети недавно, но уже успели несколько раз вызвать специалистов, чтобы удалить рекламный баннер или навязчивые поисковые панели в браузерах. Делимся с Вами, вдруг Вы не обращали внимания на какие-то мелочи?