Hoe installeer ik Nginx, MySQL en PHP (FEMP) Stack op FreeBSD 12.0

Een FEMP-stack, vergelijkbaar met een LEMP-stack op Linux, is een verzameling open-source software die doorgaans samen wordt geïnstalleerd om een ​​FreeBSD-server in staat te stellen dynamische websites en webapplicaties te hosten. FEMP is een acroniem dat staat voor FreeBSD, Nginx, MySQL en PHP.

In deze gids zullen we elementen van een FEMP-stack implementeren op een FreeBSD 12.0 Vultr-instantie met behulp van pkgde FreeBSD-pakketbeheerder.

Vereisten

Voordat je aan deze handleiding begint, heb je het volgende nodig:

  • Een FreeBSD 12.0 VPS.
  • Een gebruiker met rootrechten of sudogebruiker om configuratiewijzigingen aan te brengen.
  • Basiskennis van het FreeBSD-systeem en de opdrachtregelinterface wordt aanbevolen.

Voordat je begint

Controleer de FreeBSD-versie.

uname -ro
# FreeBSD 12.0-RELEASE-p6

Zorg ervoor dat uw FreeBSD-systeem up-to-date is.

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

Installeer de benodigde pakketten.

pkg install -y sudo vim bash curl

Maak een nieuw gebruikersaccount aan met uw favoriete gebruikersnaam. We gebruiken 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!

Voer de visudoopdracht uit en maak een commentaar op de %wheel ALL=(ALL) ALLregel, zodat leden van de wheelgroep elke opdracht kunnen uitvoeren.

visudo

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

Schakel nu over naar uw nieuw aangemaakte gebruiker met su:

su - johndoe

OPMERKING: vervang johndoedoor uw gebruikersnaam.

Stel de tijdzone in:

sudo tzsetup

Hoofdlijn Nginx installeren

U kunt Nginx installeren met behulp van FreeBSD package manager, pkg. Met een pakketbeheerder kunt u de meeste software moeiteloos installeren vanuit een repository die wordt beheerd door FreeBSD. U kunt meer te leren over hoe te gebruiken pkghier .

Voer de volgende opdracht uit om de nieuwste hoofdlijn Nginx te installeren:

sudo pkg install -y nginx-devel

Controleer de versie:

nginx -v
# nginx version: nginx/1.17.1

Deze opdracht installeert de nieuwste hoofdlijnversie, die betrouwbaar kan worden gebruikt op een productieserver. Als je de nieuwste stabiele release wilt installeren, gebruik dan gewoon het nginxpakket in plaats van nginx-devel.

Schakel nu Nginx in en start het:

sudo sysrc nginx_enable=yes
sudo service nginx start

Om te controleren of Nginx is gestart, kunt u de volgende opdracht uitvoeren:

sudo service nginx status

Als resultaat ziet u iets dat lijkt op het volgende:

# Output
nginx is running as pid 17607.

U kunt controleren of Nginx is geïnstalleerd en zonder fouten werkt door naar het openbare IP-adres van uw server in uw webbrowser te gaan. Navigeer naar your_server_IP. U ziet de standaard "Welkom bij nginx!" bladzijde.

MySQL installeren

Nogmaals, u kunt gebruiken pkgom uw software te verkrijgen en te installeren.

Installeer MySQL met pkg:

sudo pkg install -y mysql80-client mysql80-server

Controleer de versie:

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

Schakel nu MySQL in en start het:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Om te controleren of MySQL is gestart, kunt u de volgende opdracht uitvoeren:

sudo service mysql-server status

Je ziet iets dat lijkt op het volgende:

# Output
mysql is running as pid 19066.

Als een goede gewoonte moet u het mysql_secure_installationbeveiligingsscript uitvoeren dat enkele onveilige standaardwaarden verwijdert en de toegang tot uw databasesysteem enigszins beperkt.

sudo mysql_secure_installation

U wordt gevraagd om een ​​wachtwoord in te stellen, gevolgd door enkele andere vragen. Voer een sterk wachtwoord in en druk voor de rest van de vragen op ENTERom de standaardinstellingen te selecteren.

PHP 7.3 installeren

Voer deze opdracht uit om PHP te installeren 7.3met pkg:

sudo pkg install -y php73

Controleer de versie.

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

Soft-link php.ini-productionnaar php.ini.

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

Schakel nu PHP-FPM in en start het:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Om te controleren of PHP-FPM is gestart, kunt u de volgende opdracht uitvoeren:

sudo service php-fpm status

Als resultaat zie je iets soortgelijks:

# Output
php_fpm is running as pid 23005.

PHP-modules installeren (optioneel)

Om de functionaliteit van PHP te verbeteren, kunt u optioneel enkele extra modules installeren.

Om te zien wat momenteel in PHP-modules is gecompileerd, kunt u dit uitvoeren:

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

# [Zend Modules]

Om naar beschikbare PHP-modules te zoeken, kunt u deze opdracht gebruiken:

pkg search ^php73-*

De resultaten zijn meestal PHP 7.3-modules die u kunt installeren:

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

Als u na onderzoek besluit dat u een pakket moet installeren, kunt u dit doen met de pkg installopdracht. De meeste PHP-webapplicaties hebben extra modules nodig, dus het is goed om te weten hoe u ernaar moet zoeken.

Nginx configureren om de PHP-module te gebruiken

Voordat u PHP gebruikt, moet u het configureren om met Nginx te werken.

Voer sudo vim /usr/local/etc/nginx/test.confhet bestand uit en vul het met de volgende inhoud:

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

}

Sla het bestand op en sluit af met :+ W+Q

Nu moeten we opnemen test.confin het hoofdbestand nginx.conf. Het belangrijkste configuratiebestand voor Nginx leeft onder /usr/local/etc/nginxals nginx.conf.

Ren sudo vim /usr/local/etc/nginx/nginx.confom het hoofdconfiguratiebestand in Vim te openen en voeg de volgende regel toe aan het http {}blok.

include test.conf;

Test Nginx-configuratie:

sudo nginx -t

Omdat u configuratiewijzigingen hebt aangebracht in Nginx, moet u de service opnieuw laden om deze toe te passen. Anders werkt Nginx nog steeds met de eerdere configuratie.

sudo service nginx reload

PHP-verwerking testen

Om te testen of uw systeem correct is geconfigureerd voor PHP, kunt u een zeer eenvoudig PHP-script maken. Je noemt dit script info.php. Standaard is de rootingesteld op /usr/local/www/nginx-dist. U kunt het info.phpbestand op die locatie maken:

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

Voeg deze code toe aan dat bestand:

<?php phpinfo(); ?>

Navigeer naar http://your_server_IP/ìnfo.phpen je ziet de volgende pagina:

Hoe installeer ik Nginx, MySQL en PHP (FEMP) Stack op FreeBSD 12.0

Na installatie en configuratie moet u het info.phpbestand verwijderen om te voorkomen dat informatie over de server openbaar wordt gemaakt.

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

Gevolgtrekking

Gefeliciteerd, je hebt met succes een FEMP-stack op je FreeBSD 12.0 VPS geïnstalleerd. Je hebt nu meerdere keuzes voor wat je vervolgens moet doen. Je hebt een platform geïnstalleerd waarmee je de meeste soorten websites en websoftware erop kunt installeren.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.