Наверх

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

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

Не удаётся обновить Декларант-Алко: процесс не может получить доступ к файлу.

Начиная с версии Декларант-Алко 4.30.10 у наших клиентов появилась проблема при обновлении программы через её интерфейс. Пользователь выбирает файл обновления, появляется окно со списком изменений программы, а затем появляется ошибка "Процесс не может получить доступ к файлу, так как этот файл используется другим процессом". Предложенное решение не является самым изящным, однако позволяет обойти эту проблему. Приступим.

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

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

Удалённый рабочий стол Windows CE через RemoteDSP (CERHost <-> CERDisp)

Окунувшись с головой в разработку на Compact Framework для Windows CE, стали проявляться некоторые неудобства при работе с портативными девайсами. Одним из таких неудобств оказалась необходимость постоянно держать устройство в руках. Во время отладки приложения, придётся всё время запускать Ваше ПО на устройстве, брать его, нажимать на кнопки или тачскрин. Всё это значительно замедлит Вашу работу. А если устройство и вовсе не рядом с Вами, а, например, у Вашего клиента? TeamViewer, конечно же, поставить на Windows CE нельзя. Но можно воспользоваться другой замечательной программой, которая позволит Вам удалённо управлять устройством на Windows CE, если Ваш ПК и устройство в одной локальной сети.