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

Вступление

Стек FAMP, сравнимый со стеком LAMP в Linux, представляет собой набор программного обеспечения с открытым исходным кодом, который обычно устанавливается вместе, чтобы позволить серверу FreeBSD размещать динамические веб-сайты и веб-приложения. FAMP - это сокращение, обозначающее F reeBSD (операционная система), A pache (сервер HTTP), M ySQL (сервер базы данных) и P HP (язык программирования для обработки динамического содержимого PHP).

В этом руководстве мы развернем элементы стека FAMP на экземпляре 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

Шаг 1 - Установка Apache

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

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

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

sudo pkg install -y apache24

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

httpd -v
# Server version: Apache/2.4.39 (FreeBSD)

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

sudo sysrc apache24_enable=yes
sudo service apache24 start

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

sudo service apache24 status

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

# Output
apache24 is running as pid 17772.

Вы можете проверить, что Apache был установлен и работает без ошибок, посетив общедоступный IP-адрес вашего сервера в веб-браузере. Перейдите к http://your_server_IP. По умолчанию вы увидите страницу Apache « Это работает! ».

Шаг 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.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 19171.

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

sudo mysql_secure_installation

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

Шаг 3 - Установка PHP 7.3

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

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

Чтобы установить PHP 7.3 с pkg, запустите эту команду:

sudo pkg install -y php73 php73-mysqli mod_php73

Это устанавливает php73, mod_php73и php73-mysqliпакеты.

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

php --version
# PHP 7.3.7 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

Скопируйте пример файла конфигурации PHP на место с помощью этой команды:

sudo cp /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 потребуются дополнительные модули, поэтому полезно знать, как их искать.

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

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

Запустите sudo vi /usr/local/etc/apache24/modules.d/001_mod-php.confи заполните файл следующим содержимым:

<IfModule dir_module>
  DirectoryIndex index.php index.html
  <FilesMatch "\.php$">
    SetHandler application/x-httpd-php
  </FilesMatch>
  <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
  </FilesMatch>
</IfModule>

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

Проверьте конфигурацию Apache.

sudo apachectl configtest

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

sudo apachectl restart

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

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

sudo vim /usr/local/www/apache24/data/info.php

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

<?php phpinfo(); ?>

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

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

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

sudo rm /usr/local/www/apache24/data/info.php

Вывод

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



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. Прочтите эту статью, чтобы узнать больше