Uno stack FEMP, che è paragonabile a uno stack LEMP su Linux, è una raccolta di software open source che viene in genere installata insieme per consentire a un server FreeBSD di ospitare siti Web e applicazioni Web dinamici. FEMP è un acronimo che sta per FreeBSD, Nginx, MySQL e PHP.
In questa guida, distribuiremo elementi di uno stack FEMP su un'istanza di FreeBSD 12.0 Vultr usando pkg
, il gestore pacchetti di FreeBSD.
Requisiti
Prima di iniziare questa guida, è necessario quanto segue:
- Un FreeBSD 12.0 VPS.
- Un utente con privilegi di root o
sudo
utente per apportare modifiche alla configurazione.
- Si consiglia una conoscenza di base del sistema FreeBSD e dell'interfaccia della riga di comando.
Prima di iniziare
Controlla la versione di FreeBSD.
uname -ro
# FreeBSD 12.0-RELEASE-p6
Assicurati che il tuo sistema FreeBSD sia aggiornato.
freebsd-update fetch install
pkg update && pkg upgrade -y
Installa i pacchetti necessari.
pkg install -y sudo vim bash curl
Crea un nuovo account utente con il tuo nome utente preferito. Usiamo 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!
Esegui il visudo
comando e decommenta la %wheel ALL=(ALL) ALL
riga per consentire ai membri del wheel
gruppo di eseguire qualsiasi comando.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Ora passa al nuovo utente creato con su
:
su - johndoe
NOTA: sostituisci johndoe
con il tuo nome utente.
Imposta il fuso orario:
sudo tzsetup
Installazione di mainline Nginx
È possibile installare Nginx utilizzando gestore di pacchetti di FreeBSD, pkg
. Un gestore di pacchetti ti consente di installare la maggior parte del software senza sforzo da un repository gestito da FreeBSD. Puoi saperne di più su come utilizzare pkg
qui .
Per installare l'ultima linea principale Nginx, emettere il seguente comando:
sudo pkg install -y nginx-devel
Controlla la versione:
nginx -v
# nginx version: nginx/1.17.1
Questo comando installa l'ultima versione di mainline, che può essere utilizzata in modo affidabile su un server di produzione. Se si desidera installare l'ultima versione stabile, utilizzare semplicemente il nginx
pacchetto anziché nginx-devel
.
Ora abilita e avvia Nginx:
sudo sysrc nginx_enable=yes
sudo service nginx start
Per verificare che Nginx sia stato avviato, è possibile eseguire il comando seguente:
sudo service nginx status
Di conseguenza, vedrai qualcosa di simile al seguente:
# Output
nginx is running as pid 17607.
Puoi verificare che Nginx sia stato installato e funzioni senza errori visitando l'indirizzo IP pubblico del tuo server nel tuo browser web. Vai a your_server_IP
. Vedrai l'impostazione predefinita "Benvenuto in nginx!" pagina.
Installazione di MySQL
Ancora una volta, è possibile utilizzare pkg
per ottenere e installare il software.
Installa MySQL usando pkg
:
sudo pkg install -y mysql80-client mysql80-server
Controlla la versione:
mysql --version
# mysql Ver 8.0.16 for FreeBSD12.0 on amd64 (Source distribution)
Ora abilita e avvia MySQL:
sudo sysrc mysql_enable=yes
sudo service mysql-server start
Per verificare che MySQL sia stato avviato, è possibile eseguire il comando seguente:
sudo service mysql-server status
Vedrai qualcosa di simile al seguente:
# Output
mysql is running as pid 19066.
Come buona pratica, è necessario eseguire lo mysql_secure_installation
script di sicurezza che rimuoverà alcune impostazioni predefinite non sicure e limiterà leggermente l'accesso al sistema di database.
sudo mysql_secure_installation
Ti verrà chiesto di impostare una password, seguita da alcune altre domande. Immettere una password complessa e quindi per il resto delle domande premere ENTERper selezionare le impostazioni predefinite.
Installazione di PHP 7.3
Per installare PHP 7.3
con pkg
, esegui questo comando:
sudo pkg install -y php73
Controlla la versione
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-production
a php.ini
.
sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Ora abilita e avvia PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start
Per verificare che PHP-FPM sia stato avviato, è possibile eseguire il comando seguente:
sudo service php-fpm status
Di conseguenza, vedrai qualcosa di simile:
# Output
php_fpm is running as pid 23005.
Installazione dei moduli PHP (opzionale)
Per migliorare la funzionalità di PHP, puoi facoltativamente installare alcuni moduli aggiuntivi.
Per vedere attualmente compilato nei moduli PHP, puoi eseguire questo:
php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]
Per cercare i moduli PHP disponibili, puoi usare questo comando:
pkg search ^php73-*
I risultati saranno principalmente moduli PHP 7.3 che è possibile installare:
# 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
# . . .
Se, dopo aver effettuato la ricerca, si decide di installare un pacchetto, è possibile farlo utilizzando il pkg install
comando La maggior parte delle applicazioni Web PHP richiederà moduli aggiuntivi, quindi è bene sapere come cercarli.
Configurare Nginx per usare il modulo PHP
Prima di usare PHP, è necessario configurarlo per funzionare con Nginx.
Esegui sudo vim /usr/local/etc/nginx/test.conf
e popola il file con il seguente contenuto:
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;
}
}
Salvare il file e uscire con :+ W+Q
Ora dobbiamo includere test.conf
nel nginx.conf
file principale . Il file di configurazione principale per Nginx si trova sotto /usr/local/etc/nginx
as nginx.conf
.
Eseguire sudo vim /usr/local/etc/nginx/nginx.conf
per aprire il file di configurazione principale in Vim e aggiungere la seguente riga al http {}
blocco.
include test.conf;
Test della configurazione di Nginx:
sudo nginx -t
Poiché hai apportato modifiche alla configurazione in Nginx, devi ricaricare il servizio per poterle applicare. Altrimenti, Nginx continuerà a funzionare con la configurazione precedente.
sudo service nginx reload
Test dell'elaborazione PHP
Per verificare che il tuo sistema sia configurato correttamente per PHP, puoi creare uno script PHP molto semplice. Chiamerai questo script info.php
. Per impostazione predefinita, root
è impostato su /usr/local/www/nginx-dist
. È possibile creare il info.php
file in quella posizione:
sudo vim /usr/local/www/nginx-dist/info.php
Aggiungi questo codice a quel file:
<?php phpinfo(); ?>
Vai a http://your_server_IP/ìnfo.php
e vedrai la seguente pagina:
Dopo l'installazione e la configurazione, è necessario rimuovere il info.php
file per evitare di rivelare al pubblico le informazioni sul server.
sudo rm /usr/local/www/nginx-dist/info.php
Conclusione
Congratulazioni, hai installato con successo uno stack FEMP sul tuo FreeBSD 12.0 VPS. Ora hai più scelte su cosa fare dopo. Hai installato una piattaforma che ti permetterà di installare la maggior parte dei siti Web e dei software Web.