Поиск по сайту:

Как настроить стек FEMP (FreeBSD, Nginx, MySQL 8 и PHP 7.4) на FreeBSD 12


На этой странице

  1. Требования
  2. Начальные шаги
  3. Шаг 1. Установка основной ветки Nginx
  4. Шаг 2. Установка MySQL 8.0
  5. Шаг 3. Установка PHP 7.4
    1. Установка модулей PHP (необязательно)

    Стек FEMP, аналогичный стеку LEMP в Linux, представляет собой набор программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы позволить серверу FreeBSD размещать динамические веб-сайты и веб-приложения. FEMP — это аббревиатура, обозначающая FreeBSD (операционная система), Nginx (HTTP-сервер, произносится как Engine-x), MySQL (сервер базы данных) и PHP (язык программирования для обработки динамического содержимого PHP).

    В этом руководстве вы хорошо настроите компоненты стека FEMP на сервере FreeBSD 12.1 с помощью pkg, менеджера пакетов FreeBSD.

    Требования

    Прежде чем приступить к работе с этим руководством, вам потребуется следующее:

    • FreeBSD 12.1.
    • Пользователь с привилегиями root или пользователь sudo для внесения изменений в конфигурацию.
    • Рекомендуется базовое знакомство с системой FreeBSD и интерфейсом командной строки.

    Начальные шаги

    Проверьте версию FreeBSD.

    uname -ro
    # FreeBSD 12.1-RELEASE

    Убедитесь, что ваша система FreeBSD обновлена.

    freebsd-update fetch install
    pkg update && pkg upgrade -y

    Установите необходимые пакеты.

    pkg install -y sudo vim bash curl

    Создайте новую учетную запись пользователя с предпочтительным именем пользователя. Мы используем johndoe.

    adduser
    # Username: johndoe
    # Full name: John Doe
    # Uid (Leave empty for default): <Enter>
    # Login group [johndoe]: <Enter>
    # Login group is johndoe. Invite johndoe into other groups? []: wheel
    # Login class [default]: <Enter>
    # Shell (sh csh tcsh nologin) [sh]: bash
    # Home directory [/home/johndoe]: <Enter>
    # Home directory permissions (Leave empty for default): <Enter>
    # Use password-based authentication? [yes]: <Enter>
    # Use an empty password? (yes/no) [no]: <Enter>
    # Use a random password? (yes/no) [no]: <Enter>
    # Enter password: your_secure_password
    # Enter password again: your_secure_password
    # Lock out the account after creation? [no]: <Enter>
    # OK? (yes/no): yes
    # Add another user? (yes/no): no
    # Goodbye!

    Запустите команду visudo и раскомментируйте строку %wheel ALL=(ALL) ALL, чтобы члены группы wheel могли выполнять любую команду.

    visudo

    # Uncomment by removing hash (#) sign
    # %wheel ALL=(ALL) ALL

    Теперь переключитесь на только что созданного пользователя с помощью su:

    su - johndoe

    ПРИМЕЧАНИЕ. Замените johndoe своим именем пользователя.

    Настройте часовой пояс:

    sudo tzsetup

    Шаг 1 — Установка основного Nginx

    Веб-сервер Nginx в настоящее время является одним из самых популярных веб-серверов в мире. Это отличный выбор для размещения веб-сайта.

    Вы можете установить Nginx с помощью менеджера пакетов FreeBSD, pkg. Менеджер пакетов позволяет без особых усилий устанавливать большинство программ из репозитория, поддерживаемого FreeBSD. Вы можете узнать больше о том, как использовать pkg здесь.

    Чтобы установить последнюю основную ветку Nginx, введите следующую команду:

    sudo pkg install -y nginx-devel

    Проверьте версию:

    nginx -v
    # nginx version: nginx/1.17.7

    Эта команда установит последнюю основную версию, которую можно надежно использовать на рабочем сервере. Если вы хотите установить последнюю стабильную версию, просто используйте пакет nginx вместо nginx-devel.

    Теперь включите и запустите Nginx:

    sudo sysrc nginx_enable=yes
    sudo service nginx start

    Чтобы убедиться, что Nginx запущен, вы можете запустить следующую команду:

    sudo service nginx status

    В результате вы увидите что-то похожее на:

    # Output
    nginx is running as pid 17607.

    Вы можете убедиться, что Nginx был установлен и работает без ошибок, посетив общедоступный IP-адрес вашего сервера в веб-браузере. Перейдите к your_server_IP. Вы увидите стандартную страницу \Добро пожаловать в nginx!\.

    Шаг 2 — Установка MySQL 8.0

    Теперь, когда ваш веб-сервер запущен и работает, пришло время установить MySQL, систему управления реляционными базами данных. Сервер MySQL организует и предоставит доступ к базам данных, где ваш сервер может хранить информацию.

    Опять же, вы можете использовать pkg для получения и установки программного обеспечения.

    Чтобы установить MySQL 8.0 с помощью pkg, используйте эту команду:

    sudo pkg install -y mysql80-client mysql80-server

    Эта команда установит последнюю версию клиента и сервера MySQL, в настоящее время это 8.x.x.

    Проверьте версию:

    mysql --version
    # mysql  Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)

    Теперь включите и запустите MySQL:

    sudo sysrc mysql_enable=yes
    sudo service mysql-server start

    Чтобы убедиться, что MySQL запущен, вы можете запустить следующую команду:

    sudo service mysql-server status

    Вы увидите что-то похожее на следующее:

    # Output
    mysql is running as pid 19066.

    В качестве хорошей практики вы можете запустить сценарий безопасности mysql_secure_installation, который удалит некоторые небезопасные значения по умолчанию и немного ограничит доступ к вашей системе баз данных.

    sudo mysql_secure_installation

    Вам будет предложено установить пароль, а затем некоторые другие вопросы. Введите надежный пароль, а затем для остальных вопросов нажмите ENTER, чтобы выбрать значения по умолчанию.

    Шаг 3 — Установка PHP 7.4

    PHP — это серверный язык сценариев, предназначенный для веб-разработки. PHP является незаменимым компонентом стека FEMP. Кроме того, вместо PHP обычно используются Python или Perl. Однако чаще всего используется PHP как наиболее популярный вариант. Вместе с базой данных это обеспечит динамическое поведение ваших веб-сайтов или приложений.

    Еще раз используйте систему pkg для установки компонентов PHP.

    Чтобы установить PHP 7.4 с помощью pkg, выполните следующую команду:

    sudo pkg install -y php74

    Проверьте версию PHP:

    php --version
    # PHP 7.4.0 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
    # Copyright (c) 1997-2018 The PHP Group
    # Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

    Эта команда установит последнюю версию PHP, 7.4.

    Теперь включите и запустите PHP-FPM:

    sudo sysrc php_fpm_enable=yes
    sudo service php-fpm start

    Чтобы убедиться, что PHP-FPM запущен, вы можете запустить следующую команду:

    sudo service php-fpm status

    В результате вы увидите что-то похожее на:

    # Output
    php_fpm is running as pid 23005.

    Установка модулей PHP (необязательно)

    Для расширения функциональности PHP вы можете дополнительно установить некоторые дополнительные модули.

    Чтобы увидеть в настоящее время скомпилированные модули PHP, вы можете запустить это:

    php -m

    # [PHP Modules]
    # Core # date
    # libxml
    # mysqlnd
    # pcre
    # Reflection
    # SPL
    # standard
    # [Zend Modules]

    Для поиска доступных модулей PHP вы можете использовать эту команду:

    pkg search ^php74-*

    Результатом будут в основном модули PHP 7.4, которые вы можете установить:

    # Output
    # php74-7.4.7                    PHP Scripting Language
    # php74-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
    # php74-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
    # php74-aphpunit-1.8             Testing framework for unit tests
    # php74-bcmath-7.4.7             The bcmath shared extension for php
    # php74-brotli-0.7.0             Brotli extension for PHP
    # php74-bsdconv-11.5.0           PHP wrapper for bsdconv
    # php74-bz2-7.4.7                The bz2 shared extension for php
    # php74-calendar-7.4.7           The calendar shared extension for php
    # php74-composer-1.8.6           Dependency Manager for PHP
    # php74-ctype-7.4.7              The ctype shared extension for php
    # php74-curl-7.4.7               The curl shared extension for php
    # . . .

    Если после изучения вы решите, что вам нужно установить пакет, вы можете сделать это с помощью команды pkg install. Большинству веб-приложений PHP потребуются дополнительные модули, поэтому полезно знать, как их искать.

    Шаг 4 — Настройка Nginx для использования модуля PHP

    Перед использованием PHP необходимо настроить его для работы с Nginx.

    Запустите sudo vim /usr/local/etc/nginx/test.conf и заполните файл следующим содержимым:

    server {
    
      listen 80;
      server_name SERVER_IP; # Replace with your IP or hostname
      root /usr/local/www/nginx-dist;
      index index.php index.html index.htm;
    
      location / {
        try_files $uri $uri/ =404;
      }
    
      location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
      }
    
    }
    

    Сохраните файл и выйдите из vim.

    Теперь нам нужно включить test.conf в основной файл nginx.conf. Основной файл конфигурации для Nginx находится в папке /usr/local/etc/nginx как nginx.conf.

    Запустите sudo vim /usr/local/etc/nginx/nginx.conf, чтобы открыть основной файл конфигурации в Vim, и добавьте следующую строку в блок http {}.

    include test.conf;

    Тестовая конфигурация Nginx:

    sudo nginx -t

    Поскольку вы внесли изменения в конфигурацию Nginx, вам необходимо перезагрузить службу, чтобы применить их. В противном случае Nginx по-прежнему будет работать с более ранней конфигурацией:

    sudo service nginx reload

    Шаг 5 — Тестирование обработки PHP

    Чтобы проверить правильность настройки вашей системы для PHP, вы можете создать очень простой PHP-скрипт. Вы назовете этот скрипт info.php. По умолчанию для root установлено значение /usr/local/www/nginx-dist. Вы можете создать файл info.php в этом месте, набрав:

    sudo vim /usr/local/www/nginx-dist/info.php

    И добавьте этот код в этот файл:

    <?php phpinfo(); ?>

    Перейдите к http://your_server_IP/info.php, и вы увидите следующую страницу:

    После установки и настройки стека FEMP необходимо удалить файл info.php, чтобы не раскрывать информацию о сервере в открытом доступе:

    sudo rm /usr/local/www/nginx-dist/info.php

    Заключение

    Поздравляем, вы успешно установили стек FEMP на свой VPS FreeBSD 12.1. Теперь у вас есть несколько вариантов, что делать дальше. Вы установили платформу, которая позволит вам устанавливать поверх нее большинство видов веб-сайтов и веб-приложений.