Наверх

База знаний
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 канале!

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

Инструкция по защите Windows от уязвимостей Meltdown и Spectre

Статья обновлена 9 января 2018 в 22:22.  Добавлено видео. Год начался с отличных новостей об уязвимостях Meltdown и Spectre. Вот их список CVE-2017-5753 - Bounds check bypass CVE-2017-5715 - Branch target injection CVE-2017-5754 - Rogue data cache load Полностью защитить себя от них не получится, так как нет средств, которые полностью закрывают их, но IT гиганты уже начали латать эти дыры. Подавлюяющее большинство наших клиентов работают на Windows, поэтому мы подготовили инструкцию по защите Windows от уязвимостей Meltdown и Spectre. Это не исчерпывающее руководство, так как механизмов полного закрытия уязвимостей ещё не существует!

Запуск базы 1С:Предприятие без выбора базы, ввода логина и пароля

Стремление всё автоматизировать - самое полезное и в тоже время страшное дело. Но бывает без этого не обойтись. Ситуация простая: нужно запустить базу 1С дважды (одна копия висит в фоне, с одной работает пользователей), но делать столько дел сразу слишком сложно (да), поэтому попросили это все как-то автоматизировать. Ну раз надо - делаем!

FreeBSD 11: обновление ОС FreeBSD

Обновление любой операционной системы - обязательная операция и не важно, какая ОС у Вас стоит: Windows, Mac OS или Unix. FreeBSD тоже нуждается не только в обновлении портов, но и в обновлении системных компонентов. Рассказываем как это сделать.