Как да инсталирате стека 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. Сега имате множество възможности за избор какво да правите по-нататък. Вие сте инсталирали платформа, която ще ви позволи да инсталирате повечето видове уебсайтове и уеб софтуер върху нея.


Как да инсталирате Tiny Tiny RSS Reader на FreeBSD 11 FAMP VPS

Как да инсталирате Tiny Tiny RSS Reader на FreeBSD 11 FAMP VPS

Използване на различна система? Tiny Tiny RSS Reader е безплатен четец и агрегатор с отворен код, самостоятелно хостван уеб базиран новинарски канал (RSS/Atom), предназначен да

Как да инсталирате Wiki.js на FreeBSD 11

Как да инсталирате Wiki.js на FreeBSD 11

Използване на различна система? Wiki.js е безплатно и модерно уики приложение с отворен код, изградено на Node.js, MongoDB, Git и Markdown. Изходният код на Wiki.js е публичен

Как да инсталирате Pagekit 1.0 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Pagekit 1.0 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Pagekit 1.0 CMS е красива, модулна, разширяема и лека, безплатна система за управление на съдържанието (CMS) с отворен код с

Как да инсталирате MODX Revolution на FreeBSD 11 FAMP VPS

Как да инсталирате MODX Revolution на FreeBSD 11 FAMP VPS

Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема система за управление на съдържанието (CMS) от корпоративен клас, написана на PHP. То и

Настройка на OpenBSD 5.5 64-битов

Настройка на OpenBSD 5.5 64-битов

Тази статия ви превежда през настройката на OpenBSD 5.5 (64-битов) на KVM с Vultr VPS. Стъпка 1. Влезте в контролния панел на Vultr. Стъпка 2. Щракнете върху РАЗГРАЖДАНЕ

Как да инсталирате osTicket на FreeBSD 12

Как да инсталирате osTicket на FreeBSD 12

Използване на различна система? osTicket е система за билети за поддръжка на клиенти с отворен код. Изходният код на osTicket се хоства публично на Github. В този урок

Как да инсталирате Flarum Forum на FreeBSD 12

Как да инсталирате Flarum Forum на FreeBSD 12

Използване на различна система? Flarum е безплатен софтуер за форуми от следващо поколение с отворен код, който прави онлайн дискусията забавна. Изходният код на Flarum се хоства o

Как да активирате TLS 1.3 в Nginx на FreeBSD 12

Как да активирате TLS 1.3 в Nginx на FreeBSD 12

Използване на различна система? TLS 1.3 е версия на протокола за сигурност на транспортния слой (TLS), който беше публикуван през 2018 г. като предложен стандарт в RFC 8446

Инсталирайте WordPress на OpenBSD 6.2

Инсталирайте WordPress на OpenBSD 6.2

Въведение WordPress е доминиращата система за управление на съдържанието в интернет. Той захранва всичко от блогове до сложни уебсайтове с динамично съдържание

Как да инсталирате Subrion 4.1 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Subrion 4.1 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Subrion 4.1 CMS е мощна и гъвкава система за управление на съдържанието (CMS) с отворен код, която носи интуитивно и ясно съдържание

Как да конфигурирате DJBDNS на FreeBSD

Как да конфигурирате DJBDNS на FreeBSD

Този урок ще ви покаже как да конфигурирате DNS услуга, която е лесна за поддръжка, лесна за конфигуриране и която като цяло е по-сигурна от класическия BIN

Как да инсталирате стека Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

Как да инсталирате стека Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

FEMP стек, който е сравним с LEMP стек в Linux, е колекция от софтуер с отворен код, който обикновено се инсталира заедно, за да даде възможност на FreeBS

Инсталиране на MongoDB на FreeBSD 10

Инсталиране на MongoDB на FreeBSD 10

MongoDB е NoSQL база данни от световна класа, която често се използва в по-новите уеб приложения. Той осигурява заявки с висока производителност, разделяне и репликация

Как да инсталирате Monica на FreeBSD 12

Как да инсталирате Monica на FreeBSD 12

Използване на различна система? Monica е система за управление на лични взаимоотношения с отворен код. Мислете за него като за CRM (популярен инструмент, използван от търговските екипи в th

OpenBSD като решение за електронна търговия с PrestaShop и Apache

OpenBSD като решение за електронна търговия с PrestaShop и Apache

Въведение Този урок демонстрира OpenBSD като решение за електронна търговия, използващо PrestaShop и Apache. Apache е необходим, тъй като PrestaShop има сложен UR

Инсталиране на Fork CMS на FreeBSD 12

Инсталиране на Fork CMS на FreeBSD 12

Използване на различна система? Fork е CMS с отворен код, написан на PHP. Изходният код на Forks се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате Fork CM

Как да инсталирате Directus 6.4 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Directus 6.4 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Directus 6.4 CMS е мощна и гъвкава, безплатна и с отворен код Headless Content Management System (CMS), която предоставя на разработчиците

Повишаване на сигурността за FreeBSD с помощта на IPFW и SSHGuard

Повишаване на сигурността за FreeBSD с помощта на IPFW и SSHGuard

VPS сървърите често са насочени от натрапници. Често срещан тип атака се появява в системните регистрационни файлове като стотици неоторизирани опити за влизане в ssh. Настройвам

Настройте httpd в OpenBSD

Настройте httpd в OpenBSD

Въведение OpenBSD 5.6 въведе нов демон, наречен httpd, който поддържа CGI (чрез FastCGI) и TLS. Не е необходима допълнителна работа за инсталиране на новия http

Настройте iRedMail на FreeBSD 10

Настройте iRedMail на FreeBSD 10

Този урок ще ви покаже как да инсталирате груповия софтуер iRedMail на нова инсталация на FreeBSD 10. Трябва да използвате сървър с поне един гигабайт o

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

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

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

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече