Jak zainstalować stos Nginx, MySQL i PHP (FEMP) na FreeBSD 12.0

Stos FEMP, który jest porównywalny ze stosem LEMP w systemie Linux, to zbiór oprogramowania typu open source, które jest zwykle instalowane razem, aby umożliwić serwerowi FreeBSD hostowanie dynamicznych witryn i aplikacji internetowych. FEMP to akronim oznaczający FreeBSD, Nginx, MySQL i PHP.

W tym przewodniku będziemy wdrażać elementy stosu FEMP na instancji FreeBSD 12.0 Vultr przy użyciu pkgmenedżera pakietów FreeBSD.

Wymagania

Przed rozpoczęciem tego przewodnika potrzebujesz:

  • FreeBSD 12.0 VPS.
  • Użytkownik z uprawnieniami administratora lub sudoużytkownik, aby dokonać zmian w konfiguracji.
  • Zalecana jest podstawowa znajomość systemu FreeBSD i interfejsu wiersza poleceń.

Zanim zaczniesz

Sprawdź wersję FreeBSD.

uname -ro
# FreeBSD 12.0-RELEASE-p6

Upewnij się, że twój system FreeBSD jest aktualny.

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

Zainstaluj niezbędne pakiety.

pkg install -y sudo vim bash curl

Utwórz nowe konto użytkownika z preferowaną nazwą użytkownika. Używamy 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!

Uruchom visudopolecenie i usuń komentarz z %wheel ALL=(ALL) ALLwiersza, aby umożliwić członkom wheelgrupy wykonanie dowolnego polecenia.

visudo

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

Teraz przejdź do nowo utworzonego użytkownika za pomocą su:

su - johndoe

UWAGA: Zamień na johndoeswoją nazwę użytkownika.

Ustaw strefę czasową:

sudo tzsetup

Instalowanie głównego Nginx

Można zainstalować Nginx użyciu menedżera pakietów FreeBSD, pkg. Menedżer pakietów pozwala bezproblemowo zainstalować większość oprogramowania z repozytorium obsługiwanego przez FreeBSD. Możesz dowiedzieć się więcej o tym, jak korzystać z pkgtego miejsca .

Aby zainstalować najnowszą linię główną Nginx, wydaj następujące polecenie:

sudo pkg install -y nginx-devel

Sprawdź wersję:

nginx -v
# nginx version: nginx/1.17.1

To polecenie zainstaluje najnowszą wersję Mainline, której można niezawodnie używać na serwerze produkcyjnym. Jeśli chcesz zainstalować najnowszą stabilną wersję, po prostu użyj nginxpakietu zamiast nginx-devel.

Teraz włącz i uruchom Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Aby sprawdzić, czy Nginx się uruchomił, możesz uruchomić następującą komendę:

sudo service nginx status

W rezultacie zobaczysz coś podobnego do następującego:

# Output
nginx is running as pid 17607.

Możesz sprawdzić, czy Nginx został zainstalowany i działa bez błędów, odwiedzając publiczny adres IP serwera w przeglądarce internetowej. Przejdź do your_server_IP. Zobaczysz domyślne „Witamy w nginx!” strona.

Instalowanie MySQL

Ponownie możesz wykorzystać, pkgaby uzyskać i zainstalować oprogramowanie.

Zainstaluj MySQL przy użyciu pkg:

sudo pkg install -y mysql80-client mysql80-server

Sprawdź wersję:

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

Teraz włącz i uruchom MySQL:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Aby sprawdzić, czy MySQL został uruchomiony, możesz uruchomić następującą komendę:

sudo service mysql-server status

Zobaczysz coś podobnego do następującego:

# Output
mysql is running as pid 19066.

Jako dobrą praktykę powinieneś uruchomić mysql_secure_installationskrypt bezpieczeństwa, który usunie niektóre niepewne wartości domyślne i nieznacznie ograniczy dostęp do systemu bazy danych.

sudo mysql_secure_installation

Zostaniesz poproszony o ustawienie hasła, a następnie kilka innych pytań. Wprowadź silne hasło, a następnie, aby ENTERprzejść do pozostałych pytań, naciśnij, aby wybrać ustawienia domyślne.

Instalowanie PHP 7.3

Aby zainstalować PHP 7.3z pkguruchom polecenie:

sudo pkg install -y php73

Sprawdź wersję.

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

Miękki link php.ini-productiondo php.ini.

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

Teraz włącz i uruchom PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Aby sprawdzić, czy PHP-FPM został uruchomiony, możesz uruchomić następującą komendę:

sudo service php-fpm status

W rezultacie zobaczysz coś podobnego:

# Output
php_fpm is running as pid 23005.

Instalowanie modułów PHP (opcjonalnie)

Aby zwiększyć funkcjonalność PHP, możesz opcjonalnie zainstalować dodatkowe moduły.

Aby zobaczyć aktualnie skompilowane w modułach PHP, możesz uruchomić to:

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard

# [Zend Modules]

Aby wyszukać dostępne moduły PHP, możesz użyć tego polecenia:

pkg search ^php73-*

Rezultatem będą głównie moduły PHP 7.3, które możesz zainstalować:

# 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
# . . .

Jeśli po zbadaniu zdecydujesz, że musisz zainstalować pakiet, możesz to zrobić za pomocą pkg installpolecenia. Większość aplikacji internetowych PHP będzie wymagało dodatkowych modułów, więc dobrze jest wiedzieć, jak ich szukać.

Konfigurowanie Nginx do korzystania z modułu PHP

Przed użyciem PHP musisz go skonfigurować do pracy z Nginx.

Uruchom sudo vim /usr/local/etc/nginx/test.confi wypełnij plik następującą zawartością:

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;
  }

}

Zapisz plik i wyjdź za pomocą :+ W+Q

Teraz musimy dołączyć test.confdo głównego nginx.confpliku. Główny plik konfiguracyjny dla Nginx żyje /usr/local/etc/nginxjako as nginx.conf.

Uruchom, sudo vim /usr/local/etc/nginx/nginx.confaby otworzyć główny plik konfiguracyjny w Vimie i dodaj następujący wiersz do http {}bloku.

include test.conf;

Przetestuj konfigurację Nginx:

sudo nginx -t

Ponieważ dokonałeś zmian w konfiguracji w Nginx, musisz ponownie załadować usługę, aby te zostały zastosowane. W przeciwnym razie Nginx nadal będzie działał z wcześniejszą konfiguracją.

sudo service nginx reload

Testowanie przetwarzania PHP

Aby sprawdzić, czy Twój system jest poprawnie skonfigurowany do obsługi PHP, możesz utworzyć bardzo prosty skrypt PHP. Nazwiesz ten skrypt info.php. Domyślnie rootjest ustawiony na /usr/local/www/nginx-dist. Możesz utworzyć info.phpplik w tej lokalizacji:

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

Dodaj ten kod do tego pliku:

<?php phpinfo(); ?>

Przejdź do, http://your_server_IP/ìnfo.phpa zobaczysz następującą stronę:

Jak zainstalować stos Nginx, MySQL i PHP (FEMP) na FreeBSD 12.0

Po instalacji i konfiguracji należy usunąć info.phpplik, aby uniknąć publicznego ujawnienia informacji o serwerze.

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

Wniosek

Gratulacje, pomyślnie zainstalowałeś stos FEMP na FreeBSD 12.0 VPS. Teraz masz wiele możliwości wyboru, co dalej. Zainstalowałeś platformę, która pozwoli ci zainstalować na niej większość rodzajów stron internetowych i oprogramowania.



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.