Как установить стек Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

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

В этом руководстве мы развернем элементы стека FEMP на экземпляре FreeBSD 12.0 Vultr, используя pkgменеджер пакетов FreeBSD.

Требования

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

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

Прежде чем вы начнете

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

uname -ro
# FreeBSD 12.0-RELEASE-p6

Убедитесь, что ваша система 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

Установка основной линии Nginx

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

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

sudo pkg install -y nginx-devel

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

nginx -v
# nginx version: nginx/1.17.1

Эта команда установит последнюю основную версию, которую можно надежно использовать на рабочем сервере. Если вы хотите установить последнюю стабильную версию, просто используйте 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!» стр.

Установка MySQL

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

Установите MySQL, используя pkg:

sudo pkg install -y mysql80-client mysql80-server

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

mysql --version
# mysql  Ver 8.0.16 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чтобы выбрать значения по умолчанию.

Установка PHP 7.3

Чтобы установить PHP 7.3с помощью pkgэтой команды:

sudo pkg install -y php73

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

php --version
# PHP 7.3.7 (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.ini-productionна php.ini.

sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Теперь включите и запустите 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 ^php73-*

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

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

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

Настройка 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;
  }

}

Сохраните файл и выйдите с помощью :+ W+Q

Теперь нам нужно включить 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

Тестирование обработки 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/ìnfo.phpи вы увидите следующую страницу:

Как установить стек Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

После установки и настройки вы должны удалить info.phpфайл, чтобы избежать разглашения информации о сервере.

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

Вывод

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



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

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

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше